ここでは,データベースの表情報から,どのように結合項目と構成項目が生成されるのかについて説明します。
データソース「TESTDATA」を例に,使用するデータベースがORACLEの場合,どのように結合項目と構成項目が生成されるのかについて説明します。データソース「TESTDATA」は表「NEWTABLE」を持ち,表「NEWTABLE」は「City」および「State」という列を持ちます。このデータソースの表から求められる列情報の例を次の表に示します。
表4-7 データソースの表から求められる列情報の例
列情報項目 | 列情報1 | 列情報2 |
---|---|---|
表名 (TABLE_NAME) | NEWTABLE | NEWTABLE |
列名 (COLUMN_NAME) | City | State |
データ型 (DATA_TYPE) | SQL_CHAR | SQL_CHAR |
精度 (PRECISION) | 10 | 2 |
この例から生成されるデータ項目の関係を次の図に示します。
図4-5 生成されるデータ項目間の関係
生成されるデータ項目の定義内容の例を次の表に示します。
表4-8 生成されるデータ項目の定義内容の例
定義項目 | 生成される定義内容 | ||||
---|---|---|---|---|---|
データソース | NEWTABLE(表) | City(列) | State(列) | ||
データ項目名 | TESTDATA | NEWTABLE | City | State | |
データ項目種別 | 結合項目 | 結合項目 | 単項目 | 単項目 | |
分類 | 結合データ | 結合データ | 英数字文字列データ | 英数字文字列データ | |
けた数 | - | - | 10 | 2 | |
名前(言語共通) | TESTDATA | NEWTABLE | City | State | |
タ イ プ | COBOL又はOOCOBOL | - | - | X | X |
C又はC++ | - | - | char | char | |
SQL | - | - | CHAR | CHAR | |
帳票定義 | - | - | C | C | |
Java | - | - | char | char | |
言語4~7 | - | - | フリー定義 | フリー定義 |
生成されるデータ項目の詳細な定義内容の例は,CSV形式ファイルで提供されています。このサンプルの提供先を次に示します。
サーバのSEWB+ 基本開発環境の組み込み先パス名¥Repository¥sample¥odbcin.csv |
なお,組み込み先パス名は,デフォルトでは次のように設定されています。システムドライブとは,Windows Serverが組み込まれているドライブです。
システムドライブ:¥Program Files¥HITACHI¥Sewb |
ODBC入力コマンドを使用すると,生成元のデータソースから結合項目の構成が生成され,データ項目辞書に格納されます。生成されるデータ項目の関係の例を次の図に示します。
図4-6 データソースから生成されるデータ項目の関係
データソースから生成されるデータ項目は,次の3種類に分類されます。
(a)で説明した分類に従って,それぞれのデータ項目に生成される定義内容を次の表に示します。
表4-9 データソースから生成されるデータ項目の定義内容
定義項目 | データ項目の定義内容 | |||
---|---|---|---|---|
データソースから生成 | 表から生成 | 列から生成 | ||
名称 | データ項目名 | データソース名 | テーブル識別子 | 列識別子 |
標準名称 | データソース名※1 | テーブル識別子※1 | 列識別子※1 | |
フリガナ | - | - | - | |
属性 | 分類 | 結合データ | 結合データ | ODBCタイプに対応 |
けた数 | - | - | ODBCタイプに対応 | |
小数部けた数 | - | - | ODBCタイプに対応 | |
反復回数 | - | - | - | |
付加情報 | フィールド1~20 | - | - | - |
コメント | - | テーブルの説明 | 列の説明 | |
言語別詳細情報 | 名前 | データソース名※2 | テーブル識別子※2 | 列識別子※2 |
タイプ | - | - | ODBCタイプに対応 | |
タイプ修飾情報※3 | - | - | - | |
取りうる値 | - | - | - | |
初期値 | - | - | - | |
言語別フィールド | - | - | - | |
セキュリティ情報 | 所有者名 | -※4 | -※4 | -※4 |
グループ名 | -※5 | -※5 | -※5 | |
アクセス権 | -※6 | -※6 | -※6 |
表4-10 ODBCタイプと分類,けた数,小数部けた数の対応
ODBCタイプ | データ項目の定義内容 | |||
---|---|---|---|---|
構成項目のサフィックス | 分類 | けた数 | 小数部 けた数 | |
SQL_CHAR | - | 英数字文字列 | 長さ | - |
SQL_VARCHAR | -length | 整数 | 9 | - |
-char | 英数字文字列 | 長さ | - | |
SQL_LONGVARCHAR | -length | 整数 | 9 | - |
-char | 英数字文字列 | 長さ | - | |
SQL_DECIMAL | - | 整数※ | 精度 | - |
実数※ | 精度 | スケール | ||
SQL_NUMERIC | - | 整数※ | 精度 | - |
実数※ | 精度 | スケール | ||
SQL_SMALLINT | - | 整数 | 精度 | - |
SQL_INTEGER | - | 整数 | 精度 | - |
SQL_REAL | - | 実数 | 精度 | - |
SQL_FLOAT | - | 実数 | 精度 | - |
SQL_DOUBLE | - | 実数 | 精度 | - |
SQL_BIT | -filler | 分類なし | 7 | - |
-bit | 分類なし | 1 | - | |
SQL_TINYINT | - | 整数 | 精度 | - |
SQL_BIGINT | - | 整数 | 精度 | - |
SQL_BINARY | - | 英数字文字列 | 長さ | - |
SQL_VARBINARY | -length | 整数 | 9 | - |
-bit | 英数字文字列 | 長さ | - | |
SQL_LONGVARBINARY | -length | 整数 | 9 | - |
-bit | 英数字文字列 | 列最大長 | - | |
SQL_DATE | -year | 整数 | 4 | - |
-month | 整数 | 4 | - | |
-day | 整数 | 4 | - | |
SQL_TIME | -hour | 整数 | 4 | - |
-minute | 整数 | 4 | - | |
-second | 整数 | 4 | - | |
SQL_TIMESTAMP | -year | 整数 | 4 | - |
-month | 整数 | 4 | - | |
-day | 整数 | 4 | - | |
-hour | 整数 | 4 | - | |
-minute | 整数 | 4 | - | |
-second | 整数 | 4 | - | |
-fraction | 整数 | 9 | - | |
その他 | - | 分類なし | - | - |
表4-11 ODBCタイプと言語別タイプの対応(COBOL又はOOCOBOL,C又はC++)
列の情報 | データ項目の定義内容 | ||
---|---|---|---|
ODBCタイプ | 構成項目のサフィックス | 言語別のタイプ | |
COBOL又はOOCOBOL | C又はC++ | ||
SQL_CHAR | - | X | char |
SQL_VARCHAR | -length | B | long |
-char | X | char * | |
SQL_LONGVARCHAR | -length | B | long |
-char | X | char * | |
SQL_DECIMAL | - | フリー定義※1 | フリー定義※5 |
SQL_NUMERIC | - | フリー定義※1 | フリー定義※5 |
SQL_SMALLINT | - | B※2 BU※2 | short※6 unsigned short※6 |
SQL_INTEGER | - | B※2 BU※2 | long※7 unsigned long※7 |
SQL_REAL | - | D | float |
SQL_FLOAT | - | D | double |
SQL_DOUBLE | - | D | double |
SQL_BIT | -filler | 1 | フリー定義※8 |
-bit | 1 | フリー定義※8 | |
SQL_TINYINT | - | フリー定義※3 | int※9 unsigned int※9 |
SQL_BIGINT | - | B※2 BU※2 | フリー定義※5 |
SQL_BINARY | - | X | フリー定義※10 |
SQL_VARBINARY | -length | B | long |
-bit | X | フリー定義※10 | |
SQL_LONGVARBINARY | -length | B | long |
-bit | X | フリー定義※10 | |
SQL_DATE | -year | B | short |
-month | BU | unsigned short | |
-day | BU | unsigned short | |
SQL_TIME | -hour | BU | unsigned short |
-minute | BU | unsigned short | |
-second | BU | unsigned short | |
SQL_TIMESTAMP | -year | B | short |
-month | BU | unsigned short | |
-day | BU | unsigned short | |
-hour | BU | unsigned short | |
-minute | BU | unsigned short | |
-second | BU | unsigned short | |
-fraction | BU | unsigned long | |
その他 | - | フリー定義※4 | フリー定義※4 |
表4-12 ODBCタイプと言語別タイプの対応(SQL)
列の情報 | データ項目の定義内容 | ||
---|---|---|---|
ODBCタイプ | 構成項目のサフィックス | 言語別のタイプ(SQL) | |
データべースがORACLE | データべースがHiRDB | ||
SQL_CHAR | - | CHAR | CHAR |
SQL_VARCHAR | -length | NUMBER | SMALLINT |
-char | VARCHAR2 | VARCHAR | |
SQL_LONGVARCHAR | -length | NUMBER | DEC |
-char | LONG | フリー定義※ | |
SQL_DECIMAL | - | NUMBER | DEC |
SQL_NUMERIC | - | NUMBER | DEC |
SQL_SMALLINT | - | NUMBER | SMALLINT |
SQL_INTEGER | - | NUMBER | INT |
SQL_REAL | - | NUMBERf | SMALLFLT |
SQL_FLOAT | - | NUMBERf | FLOAT |
SQL_DOUBLE | - | NUMBERf | FLOAT |
SQL_BIT | -filler | フリー定義※ | フリー定義※ |
-bit | フリー定義※ | フリー定義※ | |
SQL_TINYINT | - | NUMBER | SMALLINT |
SQL_BIGINT | - | NUMBER | DEC |
SQL_BINARY | - | フリー定義※ | フリー定義※ |
SQL_VARBINARY | -length | NUMBER | SMALLINT |
-bit | フリー定義※ | フリー定義※ | |
SQL_LONGVARBINARY | -length | NUMBER | DEC |
-bit | フリー定義※ | フリー定義※ | |
SQL_DATE | -year | NUMBER | SMALLINT |
-month | NUMBER | SMALLINT | |
-day | NUMBER | SMALLINT | |
SQL_TIME | -hour | NUMBER | SMALLINT |
-minute | NUMBER | SMALLINT | |
-second | NUMBER | SMALLINT | |
SQL_TIMESTAMP | -year | NUMBER | SMALLINT |
-month | NUMBER | SMALLINT | |
-day | NUMBER | SMALLINT | |
-hour | NUMBER | SMALLINT | |
-minute | NUMBER | SMALLINT | |
-second | NUMBER | SMALLINT | |
-fraction | NUMBER | SMALLINT | |
その他 | - | フリー定義※ | フリー定義※ |
表4-13 ODBCタイプと言語別タイプの対応(帳票定義,Java)
列の情報 | データ項目の定義内容 | ||
---|---|---|---|
ODBCタイプ | 構成項目のサフィックス | 言語別のタイプ | |
帳票定義 | Java | ||
SQL_CHAR | - | C | ※1 |
SQL_VARCHAR | -length | I | ※1 |
-char | C | ※1 | |
SQL_LONGVARCHAR | -length | I | ※1 |
-char | C | ※1 | |
SQL_DECIMAL | - | I※2 フリー定義※2 | ※1 |
SQL_NUMERIC | - | I※3 B※3 | ※1 |
SQL_SMALLINT | - | I | ※1 |
SQL_INTEGER | - | I | ※1 |
SQL_REAL | - | I | ※1 |
SQL_FLOAT | - | B | ※1 |
SQL_DOUBLE | - | B | ※1 |
SQL_BIT | -filler | フリー定義※4 | ※1 |
-bit | フリー定義※4 | ※1 | |
SQL_TINYINT | - | I | ※1 |
SQL_BIGINT | - | I | ※1 |
SQL_BINARY | - | フリー定義※4 | ※1 |
SQL_VARBINARY | -length | I | ※1 |
-bit | フリー定義※4 | ※1 | |
SQL_LONGVARBINARY | -length | I | ※1 |
-bit | フリー定義※4 | ※1 | |
SQL_DATE | -year | I | ※1 |
-month | I | ※1 | |
-day | I | ※1 | |
SQL_TIME | -hour | I | ※1 |
-minute | I | ※1 | |
-second | I | ※1 | |
SQL_TIMESTAMP | -year | I | ※1 |
-month | I | ※1 | |
-day | I | ※1 | |
-hour | I | ※1 | |
-minute | I | ※1 | |
-second | I | ※1 | |
-fraction | I | ※1 | |
その他 | - | フリー定義※5 | フリー定義※5 |
データベースから生成された定義情報で,すでに辞書に登録されているデータ項目を更新できます(更新入力)。この場合は,ODBC入力コマンドで,引数「/N 辞書への登録方法」を指定します。
更新入力では,データ項目名によって,更新の対象となるデータ項目が特定されます。このため,既存の辞書フォルダ内および登録されるデータ項目には,一意のデータ項目名が定義されている必要があります。なお,対象となるデータ項目が辞書にない場合には,新しいデータ項目として作成,登録されます。
表に指定された外部キーの関係を,辞書に反映できます。ここでは,外部キーを含む表の生成規則について説明します。ODBC入力コマンドの引数の指定によって,個別のデータ項目として生成するか,またはデータ項目に外部キーに基づいた関連を付けて生成するかを選択できます。
ODBC入力コマンドで,引数「/R 外部キー関連付けの有無」を省略,または引数「/R 外部キー関連付けの有無」で「nouse」を指定すると,外部キーは個別のデータ項目として生成されます。この場合の例を次に示します。
ODBC入力コマンドで,引数「/R 外部キー関連付けの有無」に「use」を指定すると,外部キーの関係をデータ項目間の関連として生成できます。この場合,外部キーとなるデータ項目は作成されず,主キーとなるデータ項目に関連が付けられます。
なお,外部キーの情報をデータソースから取得するためには,ODBCドライバがAPI適合レベル2に準拠している必要があります。ODBCドライバのAPI適合レベルについては,使用するODBCドライバまたはデータベースのマニュアルなどで確認してください。
外部キーの関連づけは,ODBCドライバのAPI適合レベルによって,生成規則が異なります。