MDCLGEN は、OpenESQL アシスタントの代わりにコピーブックおよびインクルード ファイルの生成に使用できるバッチ ツールです。MDCLGEN は、ほとんどのオプションについて、OpenESQL アシスタントに対する現在の設定を使用してコードを生成します。ただし、コマンド
ライン パラメーターを使用して特定のデフォルト設定をオーバーライドできます。
構文
MDCLGEN mode={ADO.NET | ODBC}; db=dsn; tbl=table-name; file=cpy-filename;
[u=user-id;] [p=password;] [typevar={STD | OBJECT | SQL}]; [case={U | L | ASIS};]
[schema=schema-name;] [sjis={T | F};}
パラメーター
- 必須パラメーター
- OpenESQL アシスタントのオプションの設定に関係なく、コマンド ラインでは、次のパラメーターが必須となります。
- mode={ADO.NET | ODBC}
- 生成するコードの種類 (ADO.NET または ODBC)。
- db=dsn
- カタログ化されたデータ ソース名。
- tbl=table-name
- コピーブックの生成元となるテーブルの名前。
注: ODBC モードで実行している場合、テーブル名では大文字と小文字が区別されることがあります。そのため、table-name に使用する大文字と小文字を実際のテーブルの名前で使用されている大文字と小文字に一致させることをお勧めします。
- file=cpy-filename
- 生成するコピーブックの名前。
- オプションのオーバーライド パラメーター
- 次のパラメーターはコマンド ラインでは必須ではなく、デフォルトでは、OpenESQL アシスタント オプションで指定されている設定になります。ただし、MDCLGEN でこれらのパラメーターを 1 つ以上指定して、デフォルト設定をオーバーライドできます。
- u=user-id
- 指定したデータベースへのログインに必要なユーザー ID。データベースで資格情報が必要とされる場合にのみ必要です。同等の OpenESQL アシスタント オプションは [User name] です。
- p=password
- 指定したデータベースへのログインに必要なパスワード。データベースで資格情報が必要とされる場合にのみ必要です。同等の OpenESQL アシスタント オプションは [Password] です。
- typevar={STD | OBJECT | SQL}
- 生成する COBOL 変数のタイプ (次のいずれか)。
STD |
標準タイプの COBOL 型変数。デフォルト設定です |
OBJECT |
.NET アプリケーションのパフォーマンスを向上できます |
SQL |
OpenESQL プリプロセッサでホスト変数の用途をより適切に判断できます |
同等の OpenESQL アシスタント オプションは [Type COBOL variable] です。
- case={U | L | ASIS}
- 生成するコピーブックの文字で使用する大文字/小文字
U |
大文字 |
L |
小文字 |
ASIS |
指定したテーブルで使用されている大文字と小文字の組み合わせ。デフォルト設定です |
同等の OpenESQL アシスタント オプションは [Generate code] です。
- オプション パラメーター
- OpenESQL アシスタントでは、次のオプション パラメーターに相当する設定はありません。
- schema=schema-name
- 指定したテーブルのスキーマ名。同じテーブルに複数のスキーマが存在する場合にのみ必要です。デフォルト設定はありません。
注: ODBC モードで実行している場合、スキーマ名では大文字と小文字が区別されることがあります。そのため、schema-name に使用する大文字と小文字を実際のスキーマの名前で使用されている大文字と小文字に一致させることをお勧めします。
- sjis={T | F}
- T に設定すると、コピーブックは SJIS ファイルとして保存されます。デフォルトは F です。
例
- MDCLGEN コマンド ライン:
-
MDCLGEN mode=odbc; db=sample; tbl=EMPLOYEE; file=employee.cpy; typevar=sql;
- 生成された employee.cpy コピーブック:
-
*> -------------------------------------------
*> DECLARE TABLE for EMPLOYEE
*> -------------------------------------------
EXEC SQL DECLARE EMPLOYEE TABLE
( EMPNO CHAR(6) NOT NULL
, FIRSTNME VARCHAR(12) NOT NULL
, MIDINIT CHAR(1)
, LASTNAME VARCHAR(15) NOT NULL
, WORKDEPT CHAR(3)
, PHONENO CHAR(4)
, HIREDATE DATE
, JOB CHAR(8)
, EDLEVEL SMALLINT NOT NULL
, SEX CHAR(1)
, BIRTHDATE DATE
, SALARY DECIMAL(9,2)
, BONUS DECIMAL(9,2)
, COMM DECIMAL(9,2)
) END-EXEC.
*> -------------------------------------------
*> COBOL HOST VARIABLES FOR TABLE EMPLOYEE
*> -------------------------------------------
01 DCLEMPLOYEE.
03 EMPLOYEE-EMPNO SQL TYPE IS
CHAR(6).
03 EMPLOYEE-FIRSTNME SQL TYPE IS
CHAR-VARYING(12).
03 EMPLOYEE-MIDINIT SQL TYPE IS
CHAR(1).
03 EMPLOYEE-LASTNAME SQL TYPE IS
CHAR-VARYING(15).
03 EMPLOYEE-WORKDEPT SQL TYPE IS
CHAR(3).
03 EMPLOYEE-PHONENO SQL TYPE IS
CHAR(4).
03 EMPLOYEE-HIREDATE SQL TYPE IS DATE.
03 EMPLOYEE-JOB SQL TYPE IS
CHAR(8).
03 EMPLOYEE-EDLEVEL PIC S9(04) COMP-5.
03 EMPLOYEE-SEX SQL TYPE IS
CHAR(1).
03 EMPLOYEE-BIRTHDATE SQL TYPE IS DATE.
03 EMPLOYEE-SALARY PIC S9(7)V9(2) COMP-3.
03 EMPLOYEE-BONUS PIC S9(7)V9(2) COMP-3.
03 EMPLOYEE-COMM PIC S9(7)V9(2) COMP-3.
*> -------------------------------------------
*> COBOL INDICATOR VARIABLES FOR TABLE EMPLOYEE
*> -------------------------------------------
01 DCLEMPLOYEE-NULL.
03 EMPLOYEE-MIDINIT-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-WORKDEPT-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-PHONENO-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-HIREDATE-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-JOB-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-SEX-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-BIRTHDATE-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-SALARY-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-BONUS-NULL PIC S9(04) COMP-5.
03 EMPLOYEE-COMM-NULL PIC S9(04) COMP-5.