Aracılığıyla paylaş


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
  1. varsayılan ODBC aktarım türü SQL_C_CHAR olduğundan ANSI DECIMAL ve NUMERIC ile eşleniyorCString.

  2. 255 karakteri aşan karakter verileri, ile eşlendiğinde CStringvarsayılan olarak kesilir. kesme uzunluğunu, nMaxLength bağımsız değişkenini RFX_Textaçıkça ayarlayarak genişletebilirsiniz.

  3. 255 karakteri aşan ikili veriler, ile eşlendiğinde CByteArrayvarsayılan olarak kesilir. kesme uzunluğunu, nMaxLength bağımsız değişkenini RFX_Binaryaçı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::Updateiki veya daha fazla uzun değişken uzunluklu alanı güncelleştirirseniz bir oluşturulur. Bu nedenle, ile CRecordset::Updateaynı anda birden çok uzun sütunu güncelleştirmayın. ODBC API'siyle SQLPutDataaynı 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::RequeryASSERT 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.

Ayrıca bkz.

SQL
SQL: Doğrudan SQL Çağrıları Yapma (ODBC)