Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Hinweis
Diese Informationen gelten für die MFC-ODBC-Klassen. Wenn Sie mit den MFC-DAO-Klassen arbeiten, lesen Sie das Thema „Comparison of Microsoft Jet Database Engine SQL and ANSI SQL“ in der DAO-Hilfe.
Die folgende Tabelle ordnet ANSI SQL-Datentypen C++-Datentypen zu. Dadurch werden die C-Sprachinformationen in Anhang D der Referenzdokumentation des ODBC-Programmierers erweitert. Die Assistenten verwalten die meisten Datentypzuordnungen für Sie. Wenn Sie keinen Assistenten verwenden, können Sie mithilfe der Zuordnungsinformationen den Feldaustauschcode manuell schreiben.
ANSI SQL-Datentypen, die C++-Datentypen zugeordnet sind
| ANSI SQL-Datentyp | C++-Datentyp |
|---|---|
| VERKOHLEN | CString |
| DEZIMAL |
CString 1 |
| SMALLINT | int |
| WIRKLICH | float |
| GANZE ZAHL | long |
| SCHWEBEN | double |
| DOPPELT | double |
| NUMERISCH |
CString 1 |
| VARCHAR | CString |
| LONGVARCHAR |
CLongBinary, CString 2 |
| BIT | BOOL |
| TINYINT | BYTE |
| BIGINT |
CString 1 |
| BINÄR | CByteArray |
| VARBINARY | CByteArray |
| LONGVARBINARY |
CLongBinary, CByteArray 3 |
| DATUM |
CTime, CString |
| ZEIT |
CTime, CString |
| ZEITSTEMPEL |
CTime, CString |
ANSI DECIMAL und NUMERIC map to
CStringbecause SQL_C_CHAR is the default ODBC transfer type.Zeichendaten, die über 255 Zeichen hinausgehen, werden standardmäßig abgeschnitten, wenn sie zugeordnet sind
CString. Sie können die Abkürzungslänge erweitern, indem Sie das Argument "nMaxLengthRFX_Text" explizit festlegen.Binäre Daten, die über 255 Zeichen hinausgehen, werden standardmäßig abgeschnitten, wenn sie zugeordnet sind
CByteArray. Sie können die Abkürzungslänge erweitern, indem Sie das Argument "nMaxLengthRFX_Binary" explizit festlegen.
Wenn Sie die ODBC-Cursorbibliothek nicht verwenden, tritt möglicherweise ein Problem auf, wenn Sie versuchen, zwei oder mehr lange Felder mit variabler Länge mithilfe des Microsoft SQL Server ODBC-Treibers und der MFC ODBC-Datenbankklassen zu aktualisieren. Die ODBC-Typen, SQL_LONGVARCHAR und SQL_LONGVARBINARY, werden text- und image-SQL Server-Typen zugeordnet. Ein CDBException Fehler wird ausgelöst, wenn Sie zwei oder mehr lange Felder mit variabler Länge für denselben Aufruf aktualisieren.CRecordset::Update Aktualisieren Sie daher nicht mehrere lange Spalten gleichzeitig mit CRecordset::Update. Sie können mehrere lange Spalten gleichzeitig mit der ODBC-API SQLPutDataaktualisieren. Sie können auch die ODBC-Cursorbibliothek verwenden, dies wird jedoch nicht für Treiber wie den SQL Server-Treiber empfohlen, die Cursor unterstützen und die Cursorbibliothek nicht benötigen.
Wenn Sie die ODBC-Cursorbibliothek mit den MFC ODBC-Datenbankklassen und dem MICROSOFT SQL Server ODBC-Treiber verwenden, kann ein ASSERT-Objekt zusammen mit einem CDBException Aufruf nach einem Aufruf auftreten.CRecordset::UpdateCRecordset::Requery Rufen Sie CRecordset::Close stattdessen und CRecordset::Open nicht .CRecordset::Requery Eine andere Lösung besteht nicht darin, die ODBC-Cursorbibliothek zu verwenden, da der SQL Server- und der SQL Server-ODBC-Treiber systemeigene Unterstützung für Cursor bereitstellen und die ODBC-Cursorbibliothek nicht benötigt wird.