Bagikan melalui


Data Unicode

Jenis data SQL Unicode disediakan untuk menjelaskan data yang berada di Unicode secara asli pada DBMS. Jenis data C Unicode disediakan untuk memungkinkan aplikasi mengikat data ke buffer Unicode. Driver Manager dapat mengonversi data dari jenis Unicode C (SQL_C_WCHAR) untuk membuatnya berfungsi dengan driver ANSI.

ODBC 3.0 atau 2.aplikasi x akan selalu mengikat ke jenis data ANSI. Untuk performa optimal, aplikasi ODBC 3.5 (atau lebih tinggi) harus mengikat ke jenis C data ANSI jika jenis kolom SQL adalah ANSI, dan harus mengikat ke jenis data Unicode C jika jenis kolom SQL adalah Unicode.

Indikator jenis SQL Unicode adalah SQL_WCHAR, SQL_WVARCHAR, dan SQL_WLONGVARCHAR. SQL_WCHAR data memiliki panjang string tetap, sementara SQL_WVARCHAR memiliki panjang variabel dengan maksimum yang dinyatakan dan SQL_WLONGVARCHAR memiliki panjang variabel dengan maksimum yang bergantung pada sumber data.

Indikator jenis C Unicode SQL_C_WCHAR. Ini adalah default untuk setiap indikator jenis SQL Unicode. Semua jenis SQL dapat dikonversi ke SQL_C_WCHAR, dan SQL_C_WCHAR dapat dikonversi ke semua jenis SQL. Aplikasi dapat mengambil data dengan salah satu dari tiga cara:

  • Ambil data sebagai SQL_C_CHAR.

  • Ambil data sebagai SQL_C_WCHAR.

  • Deklarasikan data sebagai SQL_C_TCHAR. Ini adalah makro yang menyisipkan SQL_C_WCHAR jika aplikasi dikompilasi sebagai aplikasi Unicode atau menyisipkan SQL_C_CHAR jika dikompilasi sebagai aplikasi ANSI.

SQL_C_TCHAR dideklarasikan dalam fungsi sebagai berikut:

SQLBindParameter(StatementHandle, 1, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_WCHAR, NameLen, 0, Name, 0, &Name)  

Ketika aplikasi dikompilasi sebagai aplikasi Unicode, argumen ValueType akan diubah dari SQL_C_TCHAR menjadi SQL_C_WCHAR. Ketika aplikasi dikompilasi sebagai aplikasi ANSI, argumen ValueType akan diubah menjadi SQL_C_CHAR.

Driver Unicode masih harus mendukung jenis data ANSI, termasuk SQL_CHAR. Jika aplikasi yang bekerja dengan driver Unicode mengikat ke SQL_CHAR, Driver Manager tidak akan memetakan data SQL_CHAR ke SQL_WCHAR. Driver Unicode harus menerima data SQL_CHAR.

Driver Manager menyimpan nama driver dan DSN di Unicode dan memetakannya ke ANSI sesuai kebutuhan. Jika karakter Unicode tidak dapat dipetakan ke karakter ANSI (seperti yang dapat terjadi jika karakter dari halaman kode yang bukan halaman kode asli komputer digunakan dalam nama driver dan DSN), karakter yang tidak dapat dikonversi diwakili oleh karakter default yang disediakan oleh sistem.