SQL: SQL ve C++ Veri Türleri (ODBC)
Not
Bu bilgiler MFC ODBC sınıfları için geçerlidir. MFC DAO sınıfları ile çalışıyorsanız DAO Yardımı'ndaki "Microsoft Jet Veritabanı Altyapısı SQL ve ANSI SQL Karşılaştırması" konusuna bakın.
Aşağıdaki tabloda ANSI SQL veri türleri C++ veri türleriyle eşlenmiştir. Bu, ODBC Programcı Başvurusu belgelerinin Ek D'de verilen C dil bilgilerini genişletmektedir. Sihirbazlar çoğu veri türü eşlemesini sizin için yönetir. Sihirbaz kullanmıyorsanız, alan değişim kodunu el ile yazmanıza yardımcı olması için eşleme bilgilerini kullanabilirsiniz.
C++ Veri Türlerine Eşlenen ANSI SQL Veri Türleri
ANSI SQL veri türü | C++ veri türü |
---|---|
CHAR | CString |
ON -DA -LIK | CString 1 |
SMALLINT | int |
GERÇEK | float |
TAM SAYI | long |
YÜZMEK | double |
ÇİFT | double |
SAYISAL | CString 1 |
VARCHAR | CString |
LONGVARCHAR | CLongBinary , CString 2 |
BİT | BOOL |
TINYINT | BAYT |
BIGINT | CString 1 |
İKİLİ | CByteArray |
VARBINARY | CByteArray |
LONGVARBINARY | CLongBinary , CByteArray 3 |
DATE | CTime , CString |
TIME | CTime , CString |
TIMESTAMP | CTime , CString |
varsayılan ODBC aktarım türü SQL_C_CHAR olduğundan ANSI DECIMAL ve NUMERIC ile eşleniyor
CString
.255 karakteri aşan karakter verileri, ile eşlendiğinde
CString
varsayılan olarak kesilir. kesme uzunluğunu, nMaxLength bağımsız değişkeniniRFX_Text
açıkça ayarlayarak genişletebilirsiniz.255 karakteri aşan ikili veriler, ile eşlendiğinde
CByteArray
varsayılan olarak kesilir. kesme uzunluğunu, nMaxLength bağımsız değişkeniniRFX_Binary
açıkça ayarlayarak genişletebilirsiniz.
ODBC imleç kitaplığını kullanmıyorsanız, Microsoft SQL Server ODBC sürücüsünü ve MFC ODBC veritabanı sınıflarını kullanarak iki veya daha fazla uzun değişken uzunluklu alanı güncelleştirmeye çalışırken bir sorunla karşılaşabilirsiniz. SQL_LONGVARCHAR ve SQL_LONGVARBINARY ODBC türleri, metin ve görüntü SQL Server türleriyle eşler. aynı CDBException
çağrısında CRecordset::Update
iki veya daha fazla uzun değişken uzunluklu alanı güncelleştirirseniz bir oluşturulur. Bu nedenle, ile CRecordset::Update
aynı anda birden çok uzun sütunu güncelleştirmayın. ODBC API'siyle SQLPutData
aynı anda birden çok uzun sütunu güncelleştirebilirsiniz. ODBC imleç kitaplığını da kullanabilirsiniz, ancak bu, imleçleri destekleyen ve imleç kitaplığına ihtiyaç duymayan SQL Server sürücüsü gibi sürücüler için önerilmez.
ODBC imleç kitaplığını MFC ODBC veritabanı sınıfları ve Microsoft SQL Server ODBC sürücüsüyle kullanıyorsanız, çağrısının çağrısının ardından gelmesi durumunda CRecordset::Update
ile birlikte bir CDBException
CRecordset::Requery
ASSERT oluşabilir. Bunun yerine, yerine ve CRecordset::Open
CRecordset::Requery
öğesini çağırabilirsinizCRecordset::Close
. SQL Server ve SQL Server ODBC sürücüsü imleçler için yerel olarak yerel destek sağladığından ve ODBC imleç kitaplığı gerekli olmadığından, başka bir çözüm ODBC imleç kitaplığını kullanmamaktır.