注意
此資訊適用於 MFC ODBC 類別。 如果您使用的是 MFC DAO 類別,請參閱 DAO 說明中的「Microsoft 資料庫引擎 SQL 與 ANSI SQL 之比較」主題。
下表會將 ANSI SQL 資料類型對應至C++數據類型。 這會增強 ODBC 程式設計人員參考檔附錄 D 中提供的 C 語言資訊。 精靈會為您管理大部分的數據類型對應。 如果您不使用精靈,您可以使用對應資訊來協助您手動撰寫字段交換程序代碼。
對應至C++數據類型的ANSI SQL 資料類型
| ANSI SQL 資料類型 | C++ 資料型別 |
|---|---|
| 字元 | CString |
| 十進制 |
CString 1 |
| SMALLINT | int |
| 真正 | float |
| 整數 | long |
| 浮 | double |
| 雙倍 | double |
| 數值 |
CString 1 |
| VARCHAR | CString |
| LONGVARCHAR |
CLongBinary、 CString 2 |
| 位元 | BOOL |
| TINYINT(小整數類型) | 位元組 |
| BIGINT |
CString 1 |
| 二元的 | CByteArray |
| VARBINARY | CByteArray |
| LONGVARBINARY |
CLongBinary、 CByteArray 3 |
| 日期 |
CTime、CString |
| 時間 |
CTime、CString |
| 時間戳 |
CTime、CString |
ANSI DECIMAL 和 NUMERIC 會對應至 ,
CString因為 SQL_C_CHAR 是預設的 ODBC 傳輸類型。對應至
CString時,預設會截斷超過 255 個字元的字元數據。 您可以藉由明確設定 自變數來擴充截斷長度。對應至
CByteArray時,預設會截斷超過 255 個字元的二進位數據。 您可以藉由明確設定 自變數來擴充截斷長度。
如果您未使用 ODBC 數據指標連結庫,則嘗試使用 Microsoft SQL Server ODBC 驅動程式和 MFC ODBC 資料庫類別來更新兩個或多個長可變長度字段時,可能會遇到問題。 ODBC 類型, SQL_LONGVARCHAR 和 SQL_LONGVARBINARY,對應至文字和影像 SQL Server 類型。
CDBException如果您在對 的相同呼叫CRecordset::Update上更新兩個或多個長可變長度字段,則會擲回 。 因此,請勿使用 CRecordset::Update同時更新多個長數據行。 您可以使用 ODBC API SQLPutData同時更新多個長資料行。 您也可以使用 ODBC 數據指標連結庫,但不建議針對支持數據指標且不需要數據指標連結庫的驅動程式,例如 SQL Server 驅動程式。
如果您使用 ODBC 數據指標連結庫搭配 MFC ODBC 資料庫類別和Microsoft SQL Server ODBC 驅動程式,。 請改為呼叫 CRecordset::Close 和 , CRecordset::Open 而不是 CRecordset::Requery。 另一個解決方案不是使用 ODBC 數據指標連結庫,因為 SQL Server 和 SQL Server ODBC 驅動程式會原生支援數據指標,而且不需要 ODBC 數據指標連結庫。