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.
SQLDataSourceToDriver mendukung terjemahan untuk driver ODBC. Fungsi ini tidak dipanggil oleh aplikasi berkemampuan ODBC; aplikasi meminta terjemahan melalui SQLSetConnectAttr. Driver yang terkait dengan ConnectionHandle
Sintaksis
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 bentuk yang dapat diterima oleh aplikasi. Untuk daftar jenis data SQL yang valid, lihat bagian Jenis Data SQL
rgbValueIn
[Input] Nilai yang akan diterjemahkan.
cbValueIn
[Input] Panjang rgbValueIn.
rgbValueOut
[Output] Hasil terjemahan.
Nota
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 cbValueOutMax byte.
Untuk semua jenis data lainnya, nilai
Argumen pcbValueOut
szErrorMsg
[Output] Penunjuk ke penyimpanan untuk pesan kesalahan. Ini adalah string kosong kecuali terjemahan gagal.
cbErrorMsgMax
[Input] Panjang szErrorMsg.
pcbErrorMsg
[Output] Penunjuk ke jumlah total byte (tidak termasuk byte penghentian null) yang tersedia untuk dikembalikan dalam szErrorMsg. Jika ini lebih besar dari atau sama dengan cbErrorMsg, data di szErrorMsg dipotong menjadi cbErrorMsgMax dikurangi karakter null-termination. Argumen pcbErrorMsg
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
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.