C ke SQL: Karakter

Pengidentifikasi untuk karakter tipe data ODBC C adalah:

SQL_C_CHAR

SQL_C_WCHAR

Tabel berikut ini memperlihatkan odbc SQL jenis data 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 SQL Unicode, 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 > .
t/a

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
Panjang karakter data <= Panjang kolom.

Panjang karakter data > Panjang kolom.
t/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 digit keseluruhan (dibandingkan dengan pecahan) [e]

Nilai data bukan numerik-literal
t/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
t/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
t/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
t/a

22001

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

Nilai data adalah ODBC-timestamp-literal yang valid; porsi 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
t/a

t/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
t/a

t/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 yang valid, ODBC-time-literal, atau ODBC-timestamp-literal
t/a

22008

t/a

t/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 terpotong

Nilai data bukan literal interval yang valid
t/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] Driver/sumber data secara efektif menunggu hingga seluruh string diterima (bahkan jika data karakter dikirim dalam potongan-potongan oleh panggilan ke SQLPutData) sebelum mencoba melakukan konversi.

Saat data karakter C dikonversi menjadi numerik, tanggal, waktu, atau tanda waktu SQL data, kosong di depan dan di belakang 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 ke byte individual dan mengabaikan byte penghentian null. 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.