Spaltengröße, Dezimalziffern, Länge des Oktetts übertragen und Anzeigegröße - ODBC
Datentypen zeichnen sich durch die Spaltengröße (oder Parametergröße), Dezimalziffern, 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 dezimale Ziffern der darin beschriebenen Spalten zurück.
SQLDescribeParam gibt die Parametergröße und dezimale Ziffern der beschriebenen Parameter zurück. SQLBindParameter legt die Parametergröße und dezimale 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, dezimale Ziffern und die Länge einer Spalte in angegebenen Tabellen zurück (z. B. die Basistabelle, Ansicht oder eine Systemtabelle). SQLProcedureColumns gibt die Spaltengröße, dezimale Ziffern und die Länge einer Spalte in einer Prozedur zurück. SQLGetTypeInfo gibt die maximale Spaltengröße und die minimalen und maximalen Dezimalziffern eines SQL-Datentyps für eine Datenquelle zurück.
Die von diesen Funktionen zurückgegebenen Werte für die Spalten- oder Parametergröße entsprechen der "Genauigkeit", wie in ODBC 2 definiert.x. Die Werte entsprechen jedoch nicht unbedingt den werten, die in SQL_DESC_PRECISION oder einem anderen Deskriptorfeld zurückgegeben werden. Dasselbe gilt für Dezimalziffern, die dem "Maßstab" entsprechen, wie in ODBC 2 definiert.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 Dezimalziffern.
Ebenso stammen die Werte für die Übertragungs oktettlänge nicht aus SQL_DESC_LENGTH. Sie stammen aus der SQL_DESC_OCTET_LENGTH eines Felds eines Deskriptors für alle Zeichen- und Binärtypen. Es gibt kein Beschreibungsfeld, das diese Informationen für andere Typen enthält.
Der Wert der Anzeigegröße für alle Datentypen entspricht dem Wert in einem einzelnen Deskriptorfeld SQL_DESC_DISPLAY_SIZE.
Beschreibungsfelder beschreiben die Merkmale eines Resultsets. Deskriptorfelder enthalten keine gültigen Werte zu Daten vor der Anweisungsausführung. Die Werte für Spaltengröße, Dezimalziffern 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 in seinem Resultset die Spaltengröße, Dezimalziffern und Die Oktettlänge der Spalten an der Datenquelle zurück. Diese Werte sind nicht notwendigerweise mit den Werten im SQL_DESC_PRECISION, SQL_DESC_SCALE und SQL_DESC_OCTET_LENGTH Deskriptorfeldern identisch.
Weitere Informationen zu diesen Deskriptorfeldern finden Sie unter SQLSetDescField.
Verwandte Themen: