Bagikan melalui


SQLBindCol

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Sebagai aturan umum, pertimbangkan implikasi penggunaan SQLBindCol untuk menyebabkan konversi data. Konversi pengikatan adalah proses klien, jadi, misalnya, mengambil nilai floating-point yang terikat ke kolom karakter menyebabkan driver melakukan konversi float-ke-karakter secara lokal saat baris diambil. Fungsi TRANSACT-SQL CONVERT dapat digunakan untuk menempatkan biaya konversi data di server.

Instans SQL Server dapat mengembalikan beberapa set baris hasil pada satu eksekusi pernyataan. Setiap tataan hasil harus terikat secara terpisah. Untuk informasi selengkapnya tentang pengikatan untuk beberapa kumpulan hasil, lihat SQLMoreResults.

Pengembang dapat mengikat kolom ke jenis data C khusus SQL Server menggunakan nilai TargetType SQL_C_BINARY. Kolom yang terikat ke jenis khusus SQL Server tidak portabel. Jenis data ODBC C khusus SQL Server yang ditentukan cocok dengan definisi jenis untuk DB-Library, dan aplikasi porting pengembang DB-Library mungkin ingin memanfaatkan fitur ini.

Melaporkan pemotongan data adalah proses mahal untuk driver ODBC SQL Server Native Client. Anda dapat menghindari pemotongan dengan memastikan bahwa semua buffer data terikat cukup lebar untuk mengembalikan data. Untuk data karakter, lebar harus menyertakan ruang untuk terminator string saat perilaku driver default untuk penghentian string digunakan. Misalnya, mengikat kolom karakter SQL Server (5) ke array lima karakter menghasilkan pemotongan untuk setiap nilai yang diambil. Mengikat kolom yang sama ke array enam karakter menghindari pemotongan dengan menyediakan elemen karakter untuk menyimpan terminator null. SQLGetData dapat digunakan untuk mengambil karakter panjang dan data biner secara efisien tanpa pemotongan.

Untuk jenis data nilai besar, jika buffer yang disediakan pengguna tidak cukup besar untuk menahan seluruh nilai kolom, SQL_SUCCESS_WITH_INFO dikembalikan dan "data string; peringatan pemotongan kanan" dikeluarkan. Argumen StrLen_or_IndPtr akan berisi jumlah karakter/byte yang disimpan dalam buffer.

Dukungan SQLBindCol untuk Fitur Tanggal dan Waktu yang Ditingkatkan

Nilai kolom hasil jenis tanggal/waktu dikonversi seperti yang dijelaskan dalam Konversi dari SQL ke C. Perhatikan bahwa untuk mengambil kolom waktu dan datetimeoffset sebagai struktur yang sesuai (SQL_SS_TIME2_STRUCT dan SQL_SS_TIMESTAMPOFFSET_STRUCT), TargetType harus ditentukan sebagai SQL_C_DEFAULT atau SQL_C_BINARY.

Untuk informasi selengkapnya, lihat Peningkatan Tanggal dan Waktu (ODBC).

Dukungan SQLBindCol untuk UDT CLR Besar

SQLBindCol mendukung jenis yang ditentukan pengguna (UDT) CLR besar. Untuk informasi selengkapnya, lihat Jenis Yang Ditentukan Pengguna (ODBC) CLR Besar.

Lihat Juga

Fungsi SQLBindCol
Detail Implementasi ODBC API