SQL ke C: Karakter
Pengidentifikasi untuk jenis data ODBC SQL karakter adalah sebagai berikut:
- SQL_CHAR
- SQL_VARCHAR
- SQL_LONGVARCHAR
- SQL_WCHAR
- SQL_WVARCHAR
- SQL_WLONGVARCHAR
Tabel berikut ini memperlihatkan tipe data ODBC C tempat data SQL karakter dapat dikonversi. Untuk penjelasan tentang kolom dan istilah dalam tabel, lihat Mengonversi Data dari SQL ke Jenis Data C.
Pengidentifikasi tipe C | Uji | TargetValuePtr | StrLen_or_IndPtr | SQLSTATE |
---|---|---|---|---|
SQL_C_CHAR | Panjang byte data <BufferLength Panjang byte data >= BufferLength |
Data Data terpotong |
Panjang data dalam byte Panjang data dalam byte |
n/a 01004 |
SQL_C_WCHAR | Panjang karakter data <BufferLength Panjang karakter data >= BufferLength |
Data Data terpotong |
Panjang data dalam karakter Panjang data dalam karakter |
n/a 01004 |
SQL_C_STINYINT SQL_C_UTINYINT SQL_C_TINYINT SQL_C_SBIGINT SQL_C_UBIGINT SQL_C_SSHORT SQL_C_USHORT SQL_C_SHORT SQL_C_SLONG SQL_C_ULONG SQL_C_LONG SQL_C_NUMERIC | Data dikonversi tanpa pemotongan[b] Data dikonversi dengan pemotongan digit pecahan[a] Konversi data akan mengakibatkan hilangnya digit keseluruhan (dibandingkan dengan pecahan) digit[a] Data bukan numerik-literal[b] |
Data Data terpotong Tidak terdefinisi Tidak terdefinisi |
Jumlah byte dari tipe data C Jumlah byte dari tipe data C Tidak terdefinisi Tidak terdefinisi |
n/a 01S07 22003 22018 |
SQL_C_FLOAT SQL_C_DOUBLE | Data berada dalam rentang jenis data yang angkanya sedang dikonversi[a] Data berada di luar rentang tipe data tempat angka sedang dikonversi[a] Data bukan numerik-literal[b] |
Data Tidak terdefinisi Tidak terdefinisi |
Ukuran tipe data C Tidak terdefinisi Tidak terdefinisi |
n/a 22003 22018 |
SQL_C_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 |
Data Data terpotong Tidak terdefinisi Tidak terdefinisi |
1[b] 1[b] Tidak terdefinisi Tidak terdefinisi |
n/a 01S07 22003 22018 |
SQL_C_BINARY | Panjang byte data <= BufferLength Panjang byte data >BufferLength |
Data Data terpotong |
Panjang data dalam byte Panjang data |
n/a 01004 |
SQL_C_TYPE_DATE | Nilai data adalah nilai tanggal yang valid[a] Nilai data adalah nilai tanda waktu yang valid; bagian waktu adalah nol[a] Nilai data adalah nilai tanda waktu yang valid; bagian waktu bukan nol[a],[c] Nilai data bukan nilai tanggal atau nilai tanda waktu yang valid[a] |
Data Data Data terpotong Tidak terdefinisi |
6[b] 6[b] 6[b] Tidak terdefinisi |
n/a n/a 01S07 22018 |
SQL_C_TYPE_TIME | Nilai data adalah nilai waktu yang valid dan nilai detik pecahan adalah 0[a] Nilai data adalah nilai tanda waktu yang valid atau nilai waktu yang valid; bagian detik pecahan adalah nol[a],[d] Nilai data adalah nilai tanda waktu yang valid; bagian detik pecahan bukan nol[a],[d],[e] Nilai data bukan nilai waktu atau nilai tanda waktu yang valid[a] |
Data Data Data terpotong Tidak terdefinisi |
6[b] 6[b] 6[b] Tidak terdefinisi |
n/a n/a 01S07 22018 |
SQL_C_TYPE_TIMESTAMP | Nilai data adalah nilai tanda waktu yang valid atau nilai waktu yang valid; bagian detik pecahan tidak terpotong[a] Nilai data adalah nilai tanda waktu yang valid atau nilai waktu yang valid; bagian detik pecahan terpotong[a] Nilai data adalah nilai tanggal yang valid[a] Nilai data adalah nilai waktu yang valid[a] Nilai data bukan nilai tanggal, nilai waktu, atau nilai tanda waktu yang valid[a] |
Data Data terpotong Data[f] Data[g] Tidak terdefinisi |
16[b] 16[b] 16[b] 16[b] Tidak terdefinisi |
n/a 01S07 n/a n/a 22018 |
Semua jenis interval C | Nilai data adalah nilai interval yang valid; tidak ada pemotongan Nilai data adalah nilai interval yang valid; pemotongan satu atau beberapa bidang berikutnya Interval data valid; presisi signifikan bidang terdepan hilang Nilai data bukan nilai interval yang valid |
Data Data terpotong Tidak terdefinisi Tidak terdefinisi |
Panjang data dalam byte Panjang data dalam byte Tidak terdefinisi Tidak terdefinisi |
n/a 01S07 22015 22018 |
[a] Nilai BufferLength diabaikan untuk konversi ini. Driver mengasumsikan bahwa ukuran *TargetValuePtr adalah ukuran jenis data C.
[b] Ini adalah ukuran jenis data C yang sesuai.
[c] Bagian waktu dari nilai tanda waktu dipotong.
[d] Bagian tanggal dari nilai tanda waktu diabaikan.
[e] Bagian detik pecahan dari tanda waktu terpotong.
[f] Bidang waktu struktur tanda waktu diatur ke nol.
[g] Bidang tanggal struktur tanda waktu diatur ke tanggal saat ini.
Spasi ekstra
Spasi awal dan akhir diabaikan saat data karakter SQL dikonversi ke salah satu jenis berikut:
- date
- numeric
- waktu
- rentang waktu
- interval data C