Share via


Spaltengröße, Dezimalstellen, Übertragungs oktettlänge und Anzeigegröße – ODBC

Datentypen zeichnen sich durch ihre Spalten- (oder Parametergröße), Dezimalstellen, Länge und Anzeigegröße aus. Die folgenden ODBC-Funktionen geben diese Attribute für einen Parameter in einer SQL-Anweisung oder für einen SQL-Datentyp für eine Datenquelle zurück. Jede ODBC-Funktion gibt einen anderen Satz dieser Attribute wie folgt zurück:

  • SQLDescribeCol gibt die Spaltengröße und die Dezimalstellen der beschriebenen Spalten zurück.

  • SQLDescribeParam gibt die Parametergröße und dezimalen Ziffern der von ihr beschriebenen Parameter zurück. SQLBindParameter legt die Parametergröße und dezimalen Ziffern für einen Parameter in einer SQL-Anweisung fest.

  • Die Katalogfunktionen SQLColumns, SQLProcedureColumns und SQLGetTypeInfo geben Attribute für eine Spalte in einer Tabelle, einem Resultset oder einem Prozedurparameter und den Katalogattributen der Datentypen in der Datenquelle zurück. SQLColumns gibt die Spaltengröße, die Dezimalstellen und die Länge einer Spalte in angegebenen Tabellen zurück (z. B. die Basistabelle, die Ansicht oder eine Systemtabelle). SQLProcedureColumns gibt die Spaltengröße, die Dezimalstellen und die Länge einer Spalte in einer Prozedur zurück. SQLGetTypeInfo gibt die maximale Spaltengröße und die minimalen und maximalen Dezimalstellen eines SQL-Datentyps für eine Datenquelle zurück.

Die von diesen Funktionen für die Spalten- oder Parametergröße zurückgegebenen Werte entsprechen der in ODBC 2 definierten Genauigkeit. x. Die Werte entsprechen jedoch nicht unbedingt den Werten, die in SQL_DESC_PRECISION oder einem anderen Deskriptorfeld zurückgegeben werden. Gleiches gilt für Dezimalstellen, die der in ODBC 2 definierten "Skalierung" entsprechen. x. Sie entspricht nicht unbedingt den Werten, die in SQL_DESC_SCALE oder einem anderen Deskriptorfeld zurückgegeben werden, sondern stammen je nach Datentyp aus unterschiedlichen Deskriptorfeldern. Weitere Informationen finden Sie unter Spaltengröße und Dezimalstellen.

Ebenso stammen die Werte für die Länge des Übertragungs oktetts nicht von SQL_DESC_LENGTH. Sie stammen aus dem SQL_DESC_OCTET_LENGTH eines Felds eines Deskriptors für alle Zeichen- und Binärtypen. Es gibt kein Deskriptorfeld, das diese Informationen für andere Typen enthält.

Der Anzeigegrößenwert für alle Datentypen entspricht dem Wert in einem einzelnen Deskriptorfeld, SQL_DESC_DISPLAY_SIZE.

Deskriptorfelder beschreiben die Merkmale eines Resultsets. Deskriptorfelder enthalten keine gültigen Werte zu Daten vor der Anweisungsausführung. Die Werte für Spaltengröße, Dezimalstellen und Anzeigegröße, die von SQLColumns, SQLProcedureColumns und SQLGetTypeInfo zurückgegeben werden, geben dagegen Merkmale von Datenbankobjekten zurück, z. B. Tabellenspalten und Datentypen, die im Katalog der Datenquelle vorhanden sind. Ebenso gibt SQLColAttribute im Resultset die Spaltengröße, die Dezimalstellen und die Oktettlänge der Spalten an der Datenquelle zurück. diese Werte sind nicht unbedingt mit den Werten in den Feldern SQL_DESC_PRECISION, SQL_DESC_SCALE und SQL_DESC_OCTET_LENGTH Deskriptor identisch.

Weitere Informationen zu diesen Deskriptorfeldern finden Sie unter SQLSetDescField.

Verwandte Themen: