Contactお問い合わせ
お気軽にお問い合わせください。
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 マニュアル」をご覧ください。
このマニュアルは次のページで公開しております。
言語インタフェースは、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 ページでご提供しております。