列サイズ、10 進数、転送オクテット長、および表示サイズ - ODBC
データ型は、列 (またはパラメーター) のサイズ、10 進数、長さ、および表示サイズによって特徴付けられます。 次の ODBC 関数は、SQL ステートメントのパラメーターまたはデータ ソースの SQL データ型に対してこれらの属性を返します。 各 ODBC 関数は、次のように、これらの属性の異なるセットを返します。
SQLDescribeCol は、記述されている列の列サイズと 10 進数を返します。
SQLDescribeParam は、記述されているパラメーターのパラメーター サイズと 10 進数を返します。 SQLBindParameter は、SQL ステートメント内のパラメーターのパラメーター サイズと 10 進数を設定します。
カタログ関数 SQLColumns、 SQLProcedureColumns、および SQLGetTypeInfo テーブル、結果セット、またはプロシージャ パラメーター内の列の属性と、データ ソース内のデータ型のカタログ属性が返されます。 SQLColumns は、指定したテーブル (ベース テーブル、ビュー、システム テーブルなど) の列のサイズ、10 進数、および列の長さを返します。 SQLProcedureColumns は、プロシージャ内の列のサイズ、10 進数、および列の長さを返します。 SQLGetTypeInfo は、データ ソース上の SQL データ型の最大列サイズと最小および最大 10 進数を返します。
列またはパラメーター サイズに対してこれらの関数によって返される値は、ODBC 2. で定義されている "有効桁数" に対応しますx。 ただし、値は必ずしも、SQL_DESC_PRECISIONまたは他の 1 つの記述子フィールドで返される値に対応するとは限りません。 ODBC 2. で定義されている "小数点以下桁数" に対応する 10 進数の場合も同様です。x。 SQL_DESC_SCALEまたはその他の 1 つの記述子フィールドで返される値に必ずしも対応するわけではありませんが、データ型に応じて異なる記述子フィールドから取得されます。 詳細については、「 Column Size および Decimal Digits を参照してください。
同様に、転送オクテット長の値はSQL_DESC_LENGTHから取得されません。 これらは、すべての文字型とバイナリ型の記述子のフィールドのSQL_DESC_OCTET_LENGTHから取得されます。 他の型に対してこの情報を保持する記述子フィールドはありません。
すべてのデータ型の表示サイズ値は、1 つの記述子フィールドの値 (SQL_DESC_DISPLAY_SIZE) に対応します。
記述子フィールドは、結果セットの特性を記述します。 記述子フィールドには、ステートメントの実行前のデータに関する有効な値が含まれていません。 一方、 SQLColumns、 SQLProcedureColumns、および SQLGetTypeInfo によって返される列サイズ、10 進数、および表示サイズの値は、データ ソースのカタログに存在するテーブル列やデータ型などのデータベース オブジェクトの特性を返します。 同様に、結果セットでは、 SQLColAttribute は、データ ソースの列の列サイズ、10 進数、および転送オクテット長を返します。これらの値は、必ずしもSQL_DESC_PRECISION、SQL_DESC_SCALE、およびSQL_DESC_OCTET_LENGTH記述子フィールドの値と同じではありません。
これらの記述子フィールドの詳細については、「 SQLSetDescFieldを参照してください。
関連トピック: