Bagikan melalui


Handel Pernyataan

Pernyataan paling mudah dianggap sebagai pernyataan SQL, seperti SELECT * FROM Employee. Namun, pernyataan lebih dari sekadar pernyataan SQL - pernyataan tersebut terdiri dari semua informasi yang terkait dengan pernyataan SQL tersebut, seperti kumpulan hasil apa pun yang dibuat oleh pernyataan dan parameter yang digunakan dalam eksekusi pernyataan. Pernyataan bahkan tidak perlu memiliki pernyataan SQL yang ditentukan aplikasi. Misalnya, ketika fungsi katalog seperti SQLTables dijalankan pada pernyataan, fungsi tersebut menjalankan pernyataan SQL yang telah ditentukan sebelumnya yang mengembalikan daftar nama tabel.

Setiap pernyataan diidentifikasi oleh handel pernyataan. Pernyataan dikaitkan dengan satu koneksi, dan mungkin ada beberapa pernyataan pada koneksi tersebut. Beberapa driver membatasi jumlah pernyataan aktif yang mereka dukung; opsi SQL_MAX_CONCURRENT_ACTIVITIES di SQLGetInfo menentukan berapa banyak pernyataan aktif yang didukung driver pada satu koneksi. Pernyataan didefinisikan untuk aktif jika memiliki hasil yang tertunda, di mana hasilnya adalah kumpulan hasil atau jumlah baris yang terpengaruh oleh pernyataan INSERT, UPDATE, atau DELETE , atau data sedang dikirim dengan beberapa panggilan ke SQLPutData.

Dalam sepotong kode yang mengimplementasikan ODBC (Driver Manager atau driver), handel pernyataan mengidentifikasi struktur yang berisi informasi pernyataan, seperti:

  • Status pernyataan

  • Diagnostik tingkat pernyataan saat ini

  • Alamat variabel aplikasi yang terikat ke parameter pernyataan dan kolom tataan hasil

  • Pengaturan saat ini dari setiap atribut pernyataan

Handel pernyataan digunakan di sebagian besar fungsi ODBC. Terutama, mereka digunakan dalam fungsi untuk mengikat parameter dan kolom tataan hasil (SQLBindParameter dan SQLBindCol), menyiapkan dan menjalankan pernyataan (SQLPrepare, SQLExecute, dan SQLExecDirect), ambil metadata (SQLColAttribute dan SQLDescribeCol), ambil hasil (SQLFetch), dan ambil diagnostik (SQLGetDiagField dan SQLGetDiagRec). Mereka juga digunakan dalam fungsi katalog (SQLColumns, SQLTables, dan sebagainya) dan sejumlah fungsi lainnya.

Handel pernyataan dialokasikan dengan SQLAllocHandle dan dibeberkan dengan SQLFreeHandle.