5.2 レコード定義生成の説明
ODBCレコード定義生成機能は,データソースに依存する列情報を,いったんデータソースに依存しないODBCのSQLデータ型に変換します。そして,変換したSQLデータ型を基にCOBOL2002のレコード定義を生成します。
ここでは,その規則について説明します。
(1) データソース中の表から求められる列の情報
データソース中の表から求められる列情報の意味,およびその列情報がどのような値をとるのかを次に示します。
表の列情報(型名) |
SQLデータ型 |
列情報の意味 |
---|---|---|
表名(TABLE_NAME) |
Varchar(128) not NULL |
表の識別子。 |
列名(COLUMN_NAME) |
Varchar(128) not NULL |
列の識別子。 |
データ型 (DATA_TYPE) |
Smallint not NULL |
SQLのデータ型。 ODBC SQL,またはドライバ特有のSQLのデータ型である。 |
型名(TYPE_NAME) |
Varchar(128) not NULL |
データソースに依存するデータ型の名称。 例えば,"CHAR","VARCHAR","MONEY","LONG VARBINARY",または"CHAR ( ) FOR BIT DATA"など。 |
精度(PRECISION) |
Integer |
列の精度。 |
長さ(LENGTH) |
Integer |
列の長さ。 SQL_C_DEFAULTが指定されているとSQLGetData,またはSQLFetchに送られたデータのバイト長。 数値データについてのサイズは,データソース上に格納されたデータのサイズと異なる場合がある。 この値は,文字またはバイナリデータ時には,列の精度と同じになる。 |
スケール(SCALE) |
Smallint |
列のスケール。 スケールが適用できないデータ型には,NULLが返される。 |
- 注
-
データ型の詳細については,各ODBCドライバのマニュアルを参照してください。
(2) COBOL2002のレコード定義を生成するときの規則
COBOL2002のレコード定義を生成するとき,01レベルのデータ名称は表名になります。02レベル以降の変換規則については,次に示すSQLのデータ型から生成されるCOBOL2002のレコード定義に従います。
- (凡例)
-
n:長さ(LENGTH)
p:精度(PRECISION)
s:位取り(SCALE)
−:該当しない
- 注
-
「表5‒2 SQLのデータ型から生成されるCOBOL2002のレコード定義」以外のSQLデータ型には対応していません。