Bagikan melalui


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