SQL: Jenis Data SQL dan C++ (ODBC)
Catatan
Informasi ini berlaku untuk kelas MFC ODBC. Jika Anda bekerja dengan kelas MFC DAO, lihat topik "Perbandingan Microsoft Jet Database Engine SQL dan ANSI SQL" di Bantuan DAO.
Tabel berikut memetakan tipe data ANSI SQL ke jenis data C++. Ini menambah informasi bahasa C yang diberikan dalam Lampiran D dari dokumentasi Referensi Programmer ODBC. Panduan mengelola sebagian besar pemetaan tipe data untuk Anda. Jika Anda tidak menggunakan wizard, Anda bisa menggunakan informasi pemetaan untuk membantu Anda menulis kode pertukaran bidang secara manual.
Tipe Data ANSI SQL Dipetakan ke Tipe Data C++
Jenis data ANSI SQL | Jenis data C++ |
---|---|
CHAR | CString |
DECIMAL | CString 1 |
SMALLINT | int |
NYATA | float |
INTEGER | long |
FLOAT | double |
DOUBLE | double |
NUMERIK | CString 1 |
VARCHAR | CString |
LONGVARCHAR | CLongBinary , CString 2 |
BIT | BOOL |
TINYINT | BYTE |
BIGINT | CString 1 |
BINER | CByteArray |
VARBINARY | CByteArray |
LONGVARBINARY | CLongBinary , CByteArray 3 |
TANGGAL | CTime , CString |
WAKTU | CTime , CString |
STEMPEL WAKTU | CTime , CString |
ANSI DECIMAL dan NUMERIC memetakan ke
CString
karena SQL_C_CHAR adalah jenis transfer ODBC default.Data karakter di luar 255 karakter dipotong secara default saat dipetakan ke
CString
. Anda dapat memperpanjang panjang pemotongan dengan secara eksplisit mengatur argumen nMaxLength dariRFX_Text
.Data biner di luar 255 karakter dipotong secara default saat dipetakan ke
CByteArray
. Anda dapat memperpanjang panjang pemotongan dengan secara eksplisit mengatur argumen nMaxLength dariRFX_Binary
.
Jika Anda tidak menggunakan pustaka kursor ODBC, Anda mungkin mengalami masalah saat mencoba memperbarui dua atau beberapa bidang panjang variabel yang panjang menggunakan driver ODBC Microsoft SQL Server dan kelas database MFC ODBC. Jenis ODBC, SQL_LONGVARCHAR dan SQL_LONGVARBINARY, memetakan ke jenis SQL Server teks dan gambar. CDBException
A dilemparkan jika Anda memperbarui dua atau lebih bidang panjang variabel panjang pada panggilan yang sama ke CRecordset::Update
. Oleh karena itu, jangan memperbarui beberapa kolom panjang secara bersamaan dengan CRecordset::Update
. Anda dapat memperbarui beberapa kolom panjang secara bersamaan dengan ODBC API SQLPutData
. Anda juga dapat menggunakan pustaka kursor ODBC, tetapi ini tidak disarankan untuk driver, seperti driver SQL Server, yang mendukung kursor dan tidak memerlukan pustaka kursor.
Jika Anda menggunakan pustaka kursor ODBC dengan kelas database ODBC MFC dan driver ODBC Microsoft SQL Server, ASSERT mungkin terjadi bersama dengan CDBException
jika panggilan untuk CRecordset::Update
mengikuti panggilan ke CRecordset::Requery
. Sebagai gantinya, panggil CRecordset::Close
dan CRecordset::Open
bukan CRecordset::Requery
. Solusi lain adalah tidak menggunakan pustaka kursor ODBC, karena SQL Server dan driver ODBC SQL Server memberikan dukungan asli untuk kursor secara asli dan pustaka kursor ODBC tidak diperlukan.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk