Standardmäßige C-Datentypen
Wenn eine Anwendung SQL_C_DEFAULT in SQLBindCol, SQLGetData oder SQLBindParameter angibt, geht der Treiber davon aus, dass der C-Datentyp des Ausgabe- oder Eingabepuffers dem SQL-Datentyp der Spalte oder des Parameters entspricht, an die der Puffer gebunden ist.
Wichtig
Interoperable Anwendungen sollten nicht SQL_C_DEFAULT verwenden. Stattdessen sollten sie immer den C-Typ des verwendeten Puffers angeben. Dies liegt daran, dass Treiber den Standardmäßigen C-Typ aus den folgenden Gründen nicht immer richtig ermitteln können:
Wenn der DBMS einen SQL-Datentyp einer Spalte oder eines Parameters höher stuft, kann der Treiber den ursprünglichen SQL-Datentyp einer Spalte oder eines Parameters nicht ermitteln. Daher kann er den entsprechenden C-Standarddatentyp nicht ermitteln.
Wenn der Treiber nicht ermitteln kann, ob eine bestimmte Spalte oder ein bestimmter Parameter signiert ist, wie es häufig der Fall ist, wenn dies vom DBMS behandelt wird, kann der Treiber nicht ermitteln, ob der entsprechende Standarddatentyp C signiert oder nicht signiert werden soll.
Da SQL_C_DEFAULT nur als Programmierfreundlichkeit bereitgestellt wird, verliert die Anwendung keine Funktionalität, wenn sie den tatsächlichen C-Datentyp angibt.
Eine Tabelle mit dem Standardmäßigen C-Datentyp für jeden SQL-Datentyp ist in der Konvertierung von Daten aus SQL in C-Datentypen enthalten, weiter unten in diesem Anhang.