ENGLISH

Micro Focus Visual COBOL
for Visual Studio

Micro Focus Visual COBOL for Visual Studio から Actian Zen を使用

概要

Micro Focus 社の Visual COBOL for Visual Studio は、同社の以前の COBOL 製品 Net Express 5.1 に実装されていた Btrieve プログラミング機能が廃止されました。

廃止された Btrieve プログラミング機能の代わりに Visual COBOL for Visual Studio で Btrieve データファイルを扱える方法をご紹介します。また、現行製品の Actian Zen v14 では、32bit と 64bit の ODBC ドライバー、ADO.NET アプリケーションのための Actian Zen Provider も提供していますので、これらについてもご紹介します。


前提環境

開発環境: Visual Studio 2019 + Visual COBOL for Visual Studio 2019
データベース環境: Actian Zen v14 以降
※Btrieve ファイルは Actian Zen v14 以前の古い Actian / PSQL データベース製品で作成されていてもかまいません。

1. Native COBOL アプリケーションから Btrieve オペレーションの実行

Native COBOL アプリケーションは 32bit または、64bit の Windows ネイティブ・アプリケーションです。
(NET Framework 上で動作する Managed アプリケーションではありません。)
廃止された Btrieve プログラミング機能の代わりに弊社が作成した言語インタフェースを使用することで、Actian Zen v14 の Transactional Engine を呼び出し、Btrieve オペレーションを実行することができます。
Btrieve オペレーションの呼び出しは、CALL “_BTRV” で行います。

Ex.)
MOVE 0 TO B-BUF-LEN.
MOVE “SAMPLEDATA.MKD” TO B-KEY-VALUE.
CALL “_BTRV” USING B-OPEN, B-STAT, B-POS-BLOCK, CUST-REC,
    B-BUF-LEN, B-KEY-VALUE, B-OPEN-MODE.

CALL “_BTRV” で使用するパラメーターは、Actian Zen の 「Btrieve API Guide マニュアル」の「Btrieve API 関数のパラメーター」に掲載されているものになります。
CALL “_BTRV” のパラメーターと Btrieve オペレーションについて詳しくは、「Btrieve API Guide マニュアル」をご覧ください。
このマニュアルは次のページで公開しております。

https://www.agtech.co.jp/products/actian/docs_portal/Zen/14.2/index.html#page/btrieveapi%2Fbtrieveapititle.htm

言語インタフェースは、32bit 用は .obj ファイルまたは .dll ファイルで、64bit用は .dll ファイルで提供されます。ソースコードは 32bit と 64bit で相違はありません。 Visual COBOL for Visual Studio では、言語インタフェースの .obj ファイルまたは、.dll ファイルのインポートライブラリの .lib ファイルをリンクし、エントリーポイント ”_BTRV” を静的に解決します。 コンパイラの追加指令で “LITLINK” オプションを指定します。Visual COBOL for Visual Studio 2019 のサンプルプログラムやコンパイル・リンク時の注意事項は、弊社から提供する言語インタフェースに含まれます。
この言語インタフェースは、COBOL SDK for Zen / PSQL ページでご提供しております。

2. Native COBOL アプリケーションから Pervasive ODBC データソースの使用

Actian Zen v14 では、32bit と 64bit の ODBC ドライバーを提供しています。
この ODBC ドライバーで定義した ODBC データソースは、Visual COBOL for Visual Studio 2019 の OpenESQL から使用できることを確認しております。
DBMAN=ODBC を設定し、接続先に Actian Zen v14 の ODBC データソース名を指定します。

Ex.)
$SET SQL(DBMAN=ODBC)
identification division.
program-id. Program1.
environment division.
configuration section.

data division.
working-storage section.
    EXEC SQL INCLUDE SQLCA END-EXEC.
    EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 pFirstName pic x(15).
    EXEC SQL END DECLARE SECTION END-EXEC.
procedure division.
    EXEC SQL CONNECT TO “demodata” END-EXEC.
    if sqlcode not = 0
        display “Error: not connected”
        display sqlcode
        display sqlerrmc
        stop run
    end-if
    EXEC SQL
    SELECT First_Name INTO :pFirstName
    FROM Person
    WHERE
    ID     = ‘104101361’
    END-EXEC.
    if sqlcode not = 0
        display sqlcode
        display sqlerrmc
        stop run
    end-if.
    display pFirstName.

ソースコードは 32bit と 64bit で相違はありません。
OpenESQL について詳しくは、Visual COBOL for Visual Studio 2019 のマニュアルご覧ください。

3. Managed COBOL アプリケーションから Zen ADO.NET データ プロバイダー

Actian Zen v14 では、.NET Framework (バージョン 3.5 SP1、4.5.2、4.6、4.6.1、4.6.2)で動作する Managed アプリケーションで使用できるデータプロバイダーとして、Zen ADO.NET データ プロバイダー 4.3 および 4.4 を提供しています。
Micro Focus ADO.NET Connection Editor で Actian Zen Provider を選択し、Database Name プロパティを指定して、データソース名を定義します。
このデータソース名を OpenESQL から使用できることを確認しております。

Ex.)
$SET SQL(DBMAN=ADO)
working-storage section.
    EXEC SQL INCLUDE SQLCA END-EXEC.
    EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 pFirstName pic x(15).
    EXEC SQL END DECLARE SECTION END-EXEC.
procedure division.
    EXEC SQL CONNECT TO “DEMODATA” END-EXEC.
    if sqlcode not = 0
        display “Error: not connected”
        display sqlcode
        display sqlerrmc
        stop run
    end-if
    EXEC SQL
        SELECT First_Name INTO :pFirstName
        FROM Person
        WHERE
        ID
        = ‘104101361’
    END-EXEC.
    if sqlcode not = 0
        display sqlcode
        display sqlerrmc
        stop run
    end-if
    display pFirstName

ソースコードは 32bit と 64bit で相違はありません。
OpenESQL について詳しくは、Visual COBOL for Visulal Studio 2019 のマニュアルご覧ください。

まとめ

Micro Focus 社の Visual COBOL for Visual Studio では、Btrieve プログラミング機能が廃止されましたが、弊社から提供の言語インタフェースを使用しての Btrieve レベルのアクセス、Visual COBOL の OpenESQL を使用しての SQL レベルのアクセスを行うことができ、過去に作られた Btrieve ファイルを無駄にすることはありません。
今後も Visual COBOL と Zen 製品との組み合わせによる開発・運用を行うことができます。

Micro Focus Visual COBOL for Visual Studio と Actian Zen v14 動作確認一覧表

  32 bit COBOL アプリケーション 64 bit COBOL アプリケーション
Native
(Win32 AP)
Managed
(.NET AP)
Native
(Win64 AP)
Managed
(.NET AP)
Transactional Engine (Btrieve) を呼び出す AP (Native AP) *1 AG-TECH から提供の 32bit COBOL 用言語インタフェースを使用 *2 使用不可 AG-TECH から提供の 64bit COBOL 用言語インタフェースを使用 *2 使用不可
Actian Zen ODBC データソースを使用する AP Actian Zen v14 に同梱の 32bit ODBC ドライバーが使用可能

OpenESQL の DBMAN=ODBC を使用
Actian Zen v14 に同梱の 32bit ODBC ドライバーが使用可能

OpenESQL の DBMAN=ADO を使用

ADO.NET Connection Editor で Data Provider for ODBC を選択し、ODBC データソースを指定
Actian Zen v14 に同梱の 64bit ODBC ドライバーが使用可能

OpenESQL の DBMAN=ODBC を使用
Actian Zen v14 に同梱の 64bit ODBC ドライバーが使用可能

OpenESQL の DBMAN=ADO を使用

ADO.NET Connection Editor で Data Provider for ODBC を選択し、ODBC データソースを指定
Actian Zen Provider を使用する AP (Managed AP) 使用不可 Actian Zen v14 に同梱の Actian Zen Prodiver が使用可能

OpenESQL の DBMAN=ADO を使用

ADO.NET Connection Editor で Actian Zen Provider を選択し、Server DSN を指定
使用不可 Actain Zen v14 に同梱の Actian Zen Provider が使用可能

OpenESQL の DBMAN=ADO を使用

ADO.NET Connection Editor で Actian Zen Provider を選択し、Server DSN を指定

*1: CALL “_BTRV” で Btrieve を呼び出すアプリケーションです。
*2:COBOL SDK for Zen / PSQL ページでご提供しております。

Contactお問い合わせ

お気軽にお問い合わせください。

お問い合わせ

    必須会社名

    個人のお客様は「個人」と入力してください。

    必須お名前
    必須メールアドレス
    必須メールアドレス(確認)
    必須ライセンス ありなし
    ダウンロード目的