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 biasanya dalam C, aplikasi menyediakan sebagai argumen baik panjang dalam byte string (tidak termasuk null-terminator) atau SQL_NTS (Null-Terminated String). 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 menambahkan karakter nol di akhir data tersebut. Ini memberi aplikasi pilihan apakah akan menangani data sebagai string atau array karakter. Jika buffer aplikasi tidak cukup besar untuk menyediakan seluruh data karakter, driver memotong data tersebut hingga panjang byte buffer dikurangi jumlah byte yang diperlukan untuk karakter null-terminasi, melakukan null-terminasi pada data yang dipotong, dan menyimpannya di buffer. Oleh karena itu, aplikasi harus selalu mengalokasikan ruang ekstra untuk karakter penghenti null di buffer yang digunakan untuk mengambil data karakter. Misalnya, buffer 51 byte diperlukan untuk mengambil 50 karakter data.
Perhatian khusus harus dilakukan oleh aplikasi dan driver saat mengirim atau mengambil data karakter panjang secara bertahap dengan SQLPutData atau SQLGetData. Jika data diteruskan sebagai serangkaian string dengan terminasi null, karakter terminasi null pada string ini harus dihilangkan 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 diakhiri dengan null) untuk menyimpan data karakter, tidak ada persyaratan untuk melakukan hal 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 diakhiri null dan panjang bytenya diteruskan secara terpisah, dimungkinkan untuk menyisipkan karakter null dalam data karakter. Namun, perilaku fungsi ODBC dalam hal ini tidak terdefinisi dan bergantung pada apakah driver tersebut 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.