Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Parameter input yang mengacu pada data karakter panjang variabel (seperti nama kolom, parameter dinamis, dan nilai atribut string) memiliki parameter panjang terkait. Jika aplikasi mengakhiri string dengan karakter null, seperti biasa dalam C, aplikasi menyediakan sebagai argumen panjang dalam byte string (tidak termasuk null-terminator) atau SQL_NTS (String Null-Terminated). Argumen panjang non-negatif menentukan panjang aktual string terkait. Argumen panjang mungkin 0 untuk menentukan string panjang nol, yang berbeda dari nilai NULL. Nilai negatif SQL_NTS mengarahkan driver untuk menentukan panjang string dengan menemukan karakter penghentian null.
Ketika data karakter dikembalikan dari driver ke aplikasi, driver harus selalu menghentikannya. Ini memberi aplikasi pilihan apakah akan menangani data sebagai string atau array karakter. Jika buffer aplikasi tidak cukup besar untuk mengembalikan semua data karakter, driver memotongnya ke panjang byte buffer lebih sedikit jumlah byte yang diperlukan oleh karakter null-termination, menghentikan null data yang dipotong, dan menyimpannya di buffer. Oleh karena itu, aplikasi harus selalu mengalokasikan ruang ekstra untuk karakter penghentian null di buffer yang digunakan untuk mengambil data karakter. Misalnya, buffer 51 byte diperlukan untuk mengambil 50 karakter data.
Perawatan khusus harus diambil oleh aplikasi dan driver saat mengirim atau mengambil data karakter panjang di bagian dengan SQLPutData atau SQLGetData. Jika data diteruskan sebagai serangkaian string yang dihentikan null, karakter penghentian null pada string ini harus dilucuti sebelum data dapat disusun ulang.
Sejumlah pemrogram ODBC memiliki data karakter dan string C yang membingungkan. Bahwa ini telah terjadi adalah artefak menggunakan bahasa C saat menentukan fungsi ODBC. Jika driver atau aplikasi ODBC menggunakan bahasa lain - ingatlah bahwa ODBC independen bahasa - kebingungan ini cenderung tidak muncul.
Ketika string C digunakan untuk menyimpan data karakter, karakter penghentian null tidak dianggap sebagai bagian dari data dan tidak dihitung sebagai bagian dari panjang bytenya. Misalnya, data karakter "ABC" dapat dipegang sebagai string C "ABC\0" atau array karakter {'A', 'B', 'C'}. Panjang byte data adalah 3, apakah itu diperlakukan sebagai string atau array karakter atau tidak.
Meskipun aplikasi dan driver umumnya menggunakan string C (array karakter yang dihentikan null) untuk menyimpan data karakter, tidak ada persyaratan untuk melakukan ini. Di C, data karakter juga dapat diperlakukan sebagai array karakter (tanpa penghentian null) dan panjang bytenya diteruskan secara terpisah dalam buffer panjang/indikator.
Karena data karakter dapat disimpan dalam array yang tidak dihentikan null dan panjang bytenya diteruskan secara terpisah, dimungkinkan untuk menyematkan karakter null dalam data karakter. Namun, perilaku fungsi ODBC dalam hal ini tidak terdefinisi dan itu khusus driver apakah driver menangani ini dengan benar. Dengan demikian, aplikasi yang dapat dioperasikan harus selalu menangani data karakter yang dapat berisi karakter null yang disematkan sebagai data biner.