C ke SQL: Karakter

Pengidentifikasi untuk tipe data ODBC C karakter adalah:

SQL_C_CHAR

SQL_C_WCHAR

Tabel berikut ini memperlihatkan tipe data ODBC SQL tempat data karakter C dapat dikonversi. Untuk penjelasan tentang kolom dan istilah dalam tabel, lihat Mengonversi Data dari C ke Jenis Data SQL.

Catatan

Ketika data karakter C dikonversi ke data Unicode SQL, panjang data Unicode harus berupa angka genap.

Pengidentifikasi jenis SQL Uji SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
Panjang byte data <= Panjang kolom.

Panjang byte panjang Kolom data > .
n/a

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
Panjang karakter data <= Panjang kolom.

Panjang karakter panjang Kolom data > .
n/a

22001
SQL_DECIMAL

SQL_NUMERIC

SQL_TINYINT

SQL_SMALLINT

SQL_INTEGER SQL_BIGINT
Data dikonversi tanpa pemotongan

Data dikonversi dengan pemotongan digit pecahan[e]

Konversi data akan mengakibatkan hilangnya seluruh digit (dibandingkan dengan pecahan) digit[e]

Nilai data bukan numerik-literal
n/a

22001

22001

22018
SQL_REAL

SQL_FLOAT

SQL_DOUBLE
Data berada dalam rentang jenis data tempat angka sedang dikonversi

Data berada di luar rentang jenis data tempat angka sedang dikonversi

Nilai data bukan numerik-literal
n/a

22003

22018
SQL_BIT Data adalah 0 atau 1

Data lebih besar dari 0, kurang dari 2, dan tidak sama dengan 1

Data kurang dari 0 atau lebih besar dari atau sama dengan 2

Data bukan numerik-literal
n/a

22001

22003

22018
SQL_BINARY

SQL_VARBINARY

SQL_LONGVARBINARY
(Panjang byte data) / 2 <= panjang byte kolom

(Panjang byte data) / panjang byte kolom 2 >

Nilai data bukan nilai heksadesimal
n/a

22001

22018
SQL_TYPE_DATE Nilai data adalah ODBC-date-literal yang valid

Nilai data adalah ODBC-timestamp-literal yang valid; bagian waktu adalah nol

Nilai data adalah ODBC-timestamp-literal yang valid; bagian waktu bukan nol[a]

Nilai data bukan ODBC-date-literal atau ODBC-timestamp-literal yang valid
n/a

n/a

22008

22018
SQL_TYPE_TIME Nilai data adalah ODBC-time-literal yang valid

Nilai data adalah ODBC-timestamp-literal yang valid; bagian detik pecahan adalah nol[b]

Nilai data adalah ODBC-timestamp-literal yang valid; bagian detik pecahan bukan nol[b]

Nilai data bukan ODBC-time-literal atau ODBC-timestamp-literal yang valid
n/a

n/a

22008

22018
SQL_TYPE_TIMESTAMP Nilai data adalah ODBC-timestamp-literal yang valid; bagian detik pecahan tidak terpotong

Nilai data adalah ODBC-timestamp-literal yang valid; bagian detik pecahan terpotong

Nilai data adalah ODBC-date-literal[c] yang valid

Nilai data adalah ODBC-time-literal[d] yang valid

Nilai data bukan ODBC-date-literal, ODBC-time-literal, atau ODBC-timestamp-literal yang valid
n/a

22008

n/a

n/a

22018
Semua jenis interval SQL Nilai data adalah nilai interval yang valid; tidak ada pemotongan yang terjadi

Nilai data adalah nilai interval yang valid; nilai di salah satu bidang dipotong

Nilai data bukan literal interval yang valid
n/a

22015

22018

[a] Bagian waktu tanda waktu terpotong.

[b] Bagian tanggal tanda waktu diabaikan.

[c] Bagian waktu tanda waktu diatur ke nol.

[d] Bagian tanggal tanda waktu diatur ke tanggal saat ini.

[e] Sumber driver/data secara efektif menunggu hingga seluruh string diterima (bahkan jika data karakter dikirim dalam potongan-potongan oleh panggilan ke SQLPutData) sebelum mencoba melakukan konversi.

Ketika data karakter C dikonversi ke data SQL numerik, tanggal, waktu, atau tanda waktu, kosong di depan dan berikutnya diabaikan.

Ketika data karakter C dikonversi menjadi data SQL biner, masing-masing dua byte data karakter dikonversi menjadi satu byte (8 bit) data biner. Setiap dua byte data karakter mewakili angka dalam bentuk heksadesimal. Misalnya, "01" dikonversi ke 00000001 biner dan "FF" dikonversi ke 11111111 biner.

Driver selalu mengonversi pasangan digit heksadesimal menjadi byte individual dan mengabaikan byte null-termination. Karena itu, jika panjang string karakter ganjil, byte terakhir dari string (tidak termasuk byte penghentian null, jika ada) tidak dikonversi.

Catatan

Pengembang aplikasi tidak disarankan untuk mengikat data karakter C ke jenis data SQL biner. Konversi ini biasanya tidak efisien dan lambat.