NULL-Werte mit Odbc in Datenbank schreiben
-
Hallo,
weiß jemand wie man beim ODBC-Interface (die C-Api ist gemeint), NULL-Werte in die Datenbank schreibt?
Wenn ich z.B. bei SQLBindParameter ein leeres String (Länge=0) übergebe, dann beschwert sich der Treiber über einen ungültigen Parameter.
Wie kann ich also NULL-Werte per SQLBindParameter in die Datenbank schreiben?
Danke schon mal.
-
In dem du explizit NULL schreibst. Ein Leerstring ist nicht unbedingt NULL.
-
Hab folgenden Bind-Aufruf:
ret = ::SQLBindParameter(hstm, pid, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 0, 0, NULL, 0, 0);
Das ganze schlägt aber immernoch fehl. Gibt es da noch irgendwas zu beachten?
-
Bei mir funktioniert es so:
SQLINTEGER* ptr = (SQLINTEGER*)m_params[idx]; *ptr = SQL_NULL_DATA; int rc = SQLBindParameter(m_hstmt, parmPos, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, (SQLPOINTER)0, 0, ptr);
man beachte den letzten Parameter, der zeigt auf SQL_NULL_DATA