MDCLGEN コマンド ライン ツール

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.