列サイズ、10 進数、転送オクテット長、および表示サイズ - ODBC

データ型は、列 (またはパラメーター) のサイズ、10 進数、長さ、および表示サイズによって特徴付けられます。 次の ODBC 関数は、SQL ステートメントのパラメーターまたはデータ ソースの SQL データ型に対して、これらの属性を返します。 各 ODBC 関数は、次のように、これらの属性の異なるセットを返します。

  • SQLDescribeCol は 、記述されている列の列サイズと 10 進数を返します。

  • SQLDescribeParam は 、記述されているパラメーターのパラメーター サイズと 10 進数を返します。 SQLBindParameter は 、SQL ステートメントのパラメーターのパラメーター サイズと 10 進数を設定します。

  • カタログ関数 SQLColumnsSQLProcedureColumnsおよび 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、SQLProcedureColumnsSQLGetTypeInfo によって返される列サイズ、10 進数、および表示サイズの値は、データ ソースのカタログに存在するテーブル列やデータ型などのデータベース オブジェクトの特性を返します。 同様に、結果セットでは、 SQLColAttribute は、データ ソースの列の列サイズ、10 進数、および転送オクテット長を返します。これらの値は、必ずしも、SQL_DESC_PRECISION、SQL_DESC_SCALE、およびSQL_DESC_OCTET_LENGTH記述子フィールドの値と同じとは限りません。

これらの記述子フィールドの詳細については、「 SQLSetDescField」を参照してください。

関連トピック: