Bagikan melalui


C ke SQL: Numerik

Pengidentifikasi untuk jenis data ODBC C numerik adalah:

SQL_C_STINYINT

SQL_C_SLONG

SQL_C_UTINYINT

SQL_C_ULONG

SQL_C_TINYINT

SQL_C_LONG

SQL_C_SSHORT

SQL_C_FLOAT

SQL_C_USHORT

SQL_C_DOUBLE

SQL_C_SHORT

SQL_C_NUMERIC

SQL_C_SBIGINT

SQL_C_UBIGINT

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

Pengidentifikasi jenis SQL Uji SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
Jumlah digit <= Panjang byte kolom

Jumlah digit > Panjang byte kolom
n/a

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
Jumlah karakter <= Panjang karakter kolom

Jumlah karakter > Panjang karakter kolom
n/a

22001
SQL_DECIMAL[b]

SQL_NUMERIC[b]

SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]
Data dikonversi tanpa pemotongan atau dengan terpotong digit pecahan

Data dikonversi dengan pemotongan seluruh digit
n/a

22003
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
n/a

22003
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
n/a

22001

22003
SQL_INTERVAL_YEAR[a]

SQL_INTERVAL_MONTH[a]

SQL_INTERVAL_DAY[a]

SQL_INTERVAL_HOUR[a]

SQL_INTERVAL_MINUTE[a]

SQL_INTERVAL_SECOND[a]
Data tidak terpotong.

Data terpotong.
n/a

22015

[a] Konversi ini hanya didukung untuk jenis data numerik yang tepat (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_SSHORT, SQL_C_USHORT, SQL_C_SLONG, SQL_C_ULONG, atau SQL_C_NUMERIC). Mereka tidak didukung untuk perkiraan jenis data numerik (SQL_C_FLOAT atau SQL_C_DOUBLE). Jenis data C numerik yang tepat tidak dapat dikonversi ke jenis SQL interval yang presisi intervalnya bukan bidang tunggal.

[b] Untuk kasus "n/a", driver dapat secara opsional mengembalikan SQL_SUCCESS_WITH_INFO dan 01S07 ketika ada pemotongan pecahan.

Driver mengabaikan nilai panjang/indikator saat mengonversi data dari jenis data C numerik dan mengasumsikan bahwa ukuran buffer data adalah ukuran jenis data C numerik. Nilai panjang/indikator diteruskan dalam argumen StrLen_or_Ind di SQLPutData dan dalam buffer yang ditentukan dengan argumen StrLen_or_IndPtr di SQLBindParameter. Buffer data ditentukan dengan argumen DataPtr di SQLPutData dan argumen ParameterValuePtr di SQLBindParameter.