Bagikan melalui


Fungsi SQLDataSourceToDriver

SQLDataSourceToDriver mendukung terjemahan untuk driver ODBC. Fungsi ini tidak dipanggil oleh aplikasi berkemampuan ODBC; aplikasi meminta terjemahan melalui SQLSetConnectAttr. Driver yang terkait dengan ConnectionHandle yang ditentukan dalam SQLSetConnectAttr memanggil DLL yang ditentukan untuk melakukan terjemahan semua data yang mengalir dari sumber data ke driver. DLL terjemahan default dapat ditentukan dalam file inisialisasi ODBC.

Sintaks

  
BOOL SQLDataSourceToDriver(  
     UDWORD     fOption,  
     SWORD      fSqlType,  
     PTR        rgbValueIn,  
     SDWORD     cbValueIn,  
     PTR        rgbValueOut,  
     SDWORD     cbValueOutMax,  
     SDWORD *   pcbValueOut,  
     UCHAR *    szErrorMsg,  
     SWORD      cbErrorMsgMax,  
     SWORD *    pcbErrorMsg);  

Argumen

fOption
[Input] Nilai opsi.

fSqlType
[Input] Jenis data SQL. Argumen ini memberi tahu driver cara mengonversi rgbValueIn menjadi formulir yang dapat diterima oleh aplikasi. Untuk daftar jenis data SQL yang valid, lihat bagian Jenis Data SQL di Lampiran D: Jenis Data.

rgbValueIn
[Input] Nilai yang akan diterjemahkan.

cbValueIn
[Input] Panjang rgbValueIn.

rgbValueOut
[Output] Hasil terjemahan.

Catatan

DLL terjemahan tidak menghentikan nilai ini secara null.

cbValueOutMax
[Input] Panjang rgbValueOut.

pcbValueOut
[Output] Jumlah total byte (tidak termasuk byte penghentian null) yang tersedia untuk dikembalikan dalam rgbValueOut.

Untuk data karakter atau biner, jika ini lebih besar dari atau sama dengan cbValueOutMax, data dalam rgbValueOut dipotong menjadi byte cbValueOutMax .

Untuk semua jenis data lainnya, nilai cbValueOutMax diabaikan dan DLL terjemahan mengasumsikan bahwa ukuran rgbValueOut adalah ukuran jenis data C default dari jenis data SQL yang ditentukan dengan fSqlType.

Argumen pcbValueOut dapat berupa penunjuk null.

szErrorMsg
[Output] Penunjuk ke penyimpanan untuk pesan kesalahan. Ini adalah string kosong kecuali terjemahan gagal.

cbErrorMsgMax
[Input] Panjang szErrorMsg.

pcbErrorMsg
[Output] Pointer ke jumlah total byte (tidak termasuk byte null-termination) yang tersedia untuk dikembalikan di szErrorMsg. Jika ini lebih besar dari atau sama dengan cbErrorMsg, data dalam szErrorMsg dipotong menjadi cbErrorMsgMax dikurangi karakter penghentian null. Argumen pcbErrorMsg dapat berupa penunjuk null.

Kembali

TRUE jika terjemahan berhasil, FALSE jika terjemahan gagal.

Komentar

Driver memanggil SQLDataSourceToDriver untuk menerjemahkan alldata (data kumpulan hasil, nama tabel, jumlah baris, pesan kesalahan, dan sebagainya) yang meneruskan dari sumber data ke driver. DLL terjemahan mungkin tidak menerjemahkan beberapa data, tergantung pada jenis data dan tujuan DLL terjemahan; misalnya, DLL yang menerjemahkan data karakter dari satu halaman kode ke halaman kode lainnya mengabaikan semua data numerik dan biner.

Nilai fOption diatur ke nilai vParam yang ditentukan dengan memanggil SQLSetConnectAttr dengan atribut SQL_ATTR_TRANSLATE_OPTION. Ini adalah nilai 32-bit yang memiliki arti khusus untuk DLL terjemahan tertentu. Misalnya, ini dapat menentukan terjemahan set karakter tertentu.

Jika buffer yang sama ditentukan untuk rgbValueIn dan rgbValueOut, terjemahan data dalam buffer akan dilakukan di tempat.

Meskipun cbValueIn, cbValueOutMax, dan pcbValueOut berjenis SDWORD, SQLDataSourceToDriver tidak selalu mendukung pointer besar.

Jika SQLDataSourceToDriver mengembalikan FALSE, pemotongan data mungkin telah terjadi selama terjemahan. Jika pcbValueOut (jumlah byte yang tersedia untuk dikembalikan dalam buffer output) lebih besar dari cbValueOutMax (panjang buffer output), maka pemotongan terjadi. Pengandar harus menentukan apakah pemotongan dapat diterima. Jika pemotongan tidak terjadi, SQLDataSourceToDriver mengembalikan FALSE karena kesalahan lain. Dalam kedua kasus, pesan kesalahan tertentu dikembalikan dalam szErrorMsg.

Untuk informasi selengkapnya tentang menerjemahkan data, lihat DLL Terjemahan.

Untuk informasi tentang Lihat
Menerjemahkan data yang dikirim ke sumber data SQLDriverToDataSource
Mengembalikan pengaturan atribut koneksi SQLGetConnectAttr
Mengatur atribut koneksi SQLSetConnectAttr