COBOL からのデータベースへのアクセス

COBOL からデータベースにアクセスする方法について説明します。
埋め込み SQL 文を含む COBOL プログラムからデータベースにアクセスするには、次に示すいくつかの方法があります。
DBMS ベンダー プリコンパイラ テクノロジ
これらのプリコンパイラは、COBOL ソース ファイルを入力として受け取ってから、Micro Focus COBOL コンパイラがコンパイルする出力ファイルを生成します。この方法の長所と短所は次のとおりです。
  • DBMS プリコンパイラのパフォーマンスは、OpenESQL などの Micro Focus の ECM テクノロジよりも優れていますが、通常は重視されません。
  • DBMS プリコンパイラにより、ANSI 仕様外の DBMS ベンダーによる拡張機能を使用できます。
  • コンパイルは、プリコンパイルと後続の COBOL コンパイルという 2 段階のプロセスで実行されます。
  • デバッグは統合されていません。つまり、COBOL に埋め込まれる元の SQL ではなく、プリコンパイラの出力をデバッグする必要があります。
  • 現在、プリコンパイラは、.NET COBOL コードをサポートしていません。
  • プリコンパイラは CHARSET (EBCDIC) をサポートしていません。
Micro Focus COBSQL テクノロジ
Micro Focus では、DBMS プリコンパイラと併用することでプリコンパイラと COBOL コンパイラ間の統合を大幅に向上できる COBSQL テクノロジを提供しています。たとえば、COBSQL を使用して、プリコンパイラが生成するソース コードではなく元の SQL 文をデバッグできます。また、COBSQL は CHARSET(EBCDIC) もサポートしています。
OpenESQL 用の Micro Focus 外部コンパイラ モジュール (ECM) テクノロジ
OpenESQL は、ユビキタス データベース アクセスを提供します。DBMS ベンダーのプリコンパイラは必要ありません。この方法の長所と短所は次のとおりです。
  • OpenESQL はデータベースに依存せず、対応する API の範囲内で ODBC または ADO.NET 接続を提供します。つまり、OpenESQL を使用する COBOL プログラムは通常、最小限のコード変更のみで新しいデータベースにアクセスするように切り替えられます。
  • 現在 OpenESQL は、埋め込み SQL を使用して COBOL プログラムが ADO.NET にアクセスできるようにするための唯一のテクノロジです。
  • OpenESQL のパフォーマンスは、DMBS ベンダーのプリコンパイラよりも若干低下する可能性がありますが、通常はわずかな差異です。
  • OpenESQL は、ANSI SQL 規格に基づいて埋め込み SQL をサポートするように設計されています。
  • OpenESQL は、一部の DBMS ベンダーが提供する ANSI 規格の拡張機能を部分的にサポートしていない可能性があります。
DB2 ECM 用の Micro Focus 外部コンパイラ モジュール (ECM) テクノロジ
DB2 ECM は、COBOL 用の IBM プリコンパイラ環境と同様、DB2 LUW およびメインフレームの DB2 へのデータベース アクセスを提供します。DB2 ECM は次をサポートし、DBMS ベンダーのプリコンパイラに勝る利点を提供します。
  • CHARSET (EBCDIC)
  • DSNTIAR および再マッピング SQLCODE
  • COMP ホスト宣言