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.
Aplikasi meneruskan panjang byte buffer data ke driver dalam argumen, bernama BufferLength atau nama serupa. Misalnya, dalam panggilan berikut ke SQLBindCol, aplikasi menentukan panjang buffer ValuePtr (sizeof(ValuePtr)):
SQLCHAR ValuePtr[50];
SQLINTEGER ValueLenOrInd;
SQLBindCol(hstmt, 1, SQL_C_CHAR, ValuePtr, sizeof(ValuePtr), &ValueLenOrInd);
Driver akan selalu mengembalikan jumlah byte, bukan jumlah karakter, dalam argumen panjang buffer dari fungsi apa pun yang memiliki argumen string output.
Panjang buffer data hanya diperlukan untuk buffer output; driver menggunakannya untuk menghindari penulisan melewati akhir buffer. Namun, driver memeriksa panjang buffer data hanya ketika buffer berisi data panjang variabel, seperti karakter atau data biner. Jika buffer berisi data panjang tetap, seperti bilangan bulat atau struktur tanggal, driver mengabaikan panjang buffer data dan mengasumsikan buffer cukup besar untuk menyimpan data; artinya, tidak pernah memotong data panjang tetap. Oleh karena itu penting bagi aplikasi untuk mengalokasikan buffer yang cukup besar untuk data panjang tetap.
Ketika pemotongan string output non-data terjadi (seperti nama kursor yang dikembalikan untuk SQLGetCursorName), panjang yang dikembalikan dalam argumen panjang buffer adalah panjang karakter maksimum yang mungkin.
Panjang buffer data tidak diperlukan untuk buffer input karena driver tidak menulis ke buffer ini.
Bagian ini berisi topik berikut.