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.