列サイズ、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 つの記述子フィールドで返される値に必ずしも対応するわけではありませんが、データ型に応じて異なる記述子フィールドから取得されます。 詳細については、「列のサイズと 10 進数」を参照してください。
同様に、転送オクテット長の値は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 を参照してください。
関連トピック: