Freigeben über


Argumentwertüberprüfungen

Der Treiber-Manager überprüft die folgenden Typen von Argumenten. Sofern nicht anders angegeben, gibt der Treiber-Manager SQL_ERROR für Fehler in Argumentwerten zurück.

  • Umgebungs-, Verbindungs- und Anweisungshandles dürfen in der Regel keine NULL-Zeiger sein. Der Treiber-Manager gibt SQL_INVALID_HANDLE zurück, wenn ein NULL-Handle gefunden wird.

  • Erforderliche Zeigerargumente, z. B. OutputHandlePtr in SQLAllocHandle und CursorName in SQLSetCursorName, dürfen keine NULL-Zeiger sein.

  • Optionsflags, die keine treiberspezifischen Werte unterstützen, müssen einen zulässigen Wert haben. Beispielsweise muss der Vorgang in SQLSetPos SQL_POSITION, SQL_REFRESH, SQL_UPDATE, SQL_DELETE oder SQL_ADD sein.

  • In der vom Treiber unterstützten Version von ODBC müssen Optionsflags unterstützt werden. Beispielsweise kann InfoType in SQLGetInfo beim Aufrufen eines ODBC 2.0-Treibers nicht SQL_ASYNC_MODE (eingeführt in ODBC 3.0) werden.

  • Spalten- und Parameterzahlen müssen je nach Funktion größer als 0 oder größer oder gleich 0 sein. Der Treiber muss die Obergrenze dieser Argumentwerte basierend auf dem aktuellen Resultset oder der SQL-Anweisung überprüfen.

  • Längen-/Indikatorargumente und Datenpufferlängenargumente müssen entsprechende Werte enthalten. Beispielsweise muss das Argument, das die Länge eines Tabellennamens in SQLColumns (NameLength3) angibt, SQL_NTS oder einen Wert größer als 0 sein; BufferLength in SQLDescribeCol muss größer oder gleich 0 sein. Der Treiber muss diese Argumente möglicherweise auch überprüfen. Beispielsweise kann überprüft werden, ob NameLength3 kleiner oder gleich der maximalen Länge eines Tabellennamens in der Datenquelle ist.