言語インターフェイス モジュール
この章では、PSQL SDK インストール オプションに用意されている言語インターフェイス ソース モジュールを示します。
各言語インターフェイス用のソース コードを提供しています。追加情報は、ソース モジュール自体にあります。
Actian PSQL Web サイトの開発者向けオンライン リソースをご覧いただくと、さまざまな言語インターフェイス用の記事やサンプル コードが盛り込まれています。
特定のインターフェイス モジュールの詳細については、以下をお読みください。
インターフェイス モジュールの概要
プログラミング言語にインターフェイスがない場合は、コンパイラが複数の言語からの呼び出しが混在した状態をサポートするかどうかを確認してください。そうであれば、C インターフェイスを使用できる場合があります。
以下の表に、Create や Stat などの Btrieve オペレーション用データ バッファーで使用されるいくつかの共通データ型の比較を示します。
1 整数値は、開発する環境により異なります。32 ビット環境では、整数は Long Integer と同じです。16 ビット環境では、整数は short int または small int と同じです。
プログラミングの注意事項
Btrieve 関数を呼び出すと、常に、ステータス コードに対応する INTEGER 値が返されます。Btrieve 呼び出しの後、アプリケーションは常にこのステータス コードの値を確認します。ステータス コード 0 は、正常終了したオペレーションを示します。アプリケーションは、非ゼロのステータスを認識し、解決できなければなりません。
どの呼び出しでもすべてのパラメーターを提供する必要がありますが、MicroKernel はすべてのオペレーションにすべてのパラメーターを使用するわけではありません。各オペレーションに関連するパラメーターの詳細説明については、『Btrieve API Guide』を参照してください。
C/C++
ここでは、Btrieve API の C/C++ モジュール情報を示します。
C/C++ インターフェイスは、プラットフォームに依存しないアプリケーションの作成を容易にします。このインターフェイスは、DOS、Windows、Linux、および OS X における開発をサポートします。これらのモジュールについては、表 27 でも説明しています。
インターフェイス モジュール
ここでは、C 言語インターフェイスを構成するモジュールについて詳述します。
BTRAPI.C
BTRAPI.C ファイルは、C アプリケーション インターフェイスの実際の実装です。BTRV および BTRVID を呼び出すすべてのアプリケーションをサポートします。これらの関数のいずれかで Btrieve 呼び出しを行う場合、BTRAPI.C をコンパイルし、そのオブジェクトをアプリケーションの他のモジュールとリンクします。
BTRAPI.C ファイルには、BTRAPI.H、BTRCONST.H、BLOBHDR.H、および BTITYPES.H を取り込むようにコンパイラに指示する #include ディレクティブが含まれています。これらのファイルを取り込むことによって、BTRAPI.C は、インターフェイスに関連するプラットフォーム独立性を備えたデータ型を利用します。
BTRAPI.H
BTRAPI.H ファイルには、Btrieve 関数のプロトタイプが含まれています。プロトタイプ定義では、BTITYPES.H ファイルで定義されているプラットフォーム非依存のデータ型を使用します。BTRAPI.H は、BTRV 関数と BTRVID 関数を呼び出すすべてのアプリケーションをサポートします。
BTRCONST.H
BTRCONST.H ファイルには、Btrieve 固有の有効な定数が含まれています。これらの定数を使用すると、Btrieve オペレーション コード、ステータス コード、ファイル仕様フラグ、キー仕様フラグなどの多数の項目への参照を容易に標準化できます。
BTRCONST.H を利用しなくても C アプリケーション インターフェイスを使用することはできますが、このファイルを取り込むと、プログラミング作業を単純化できます。
BTITYPES.H
BTITYPES.H ファイルは、プラットフォーム非依存のデータ型を定義します。Btrieve 関数呼び出しで BTITYPES.H のデータ型を使用すると、アプリケーションはオペレーティング システム間で移植されます。
BTITYPES.H には、アプリケーションが動作するオペレーティング システムを示すために使用しなければならないスイッチも記載されています。表 29 はこれらのオペレーティング システムのスイッチの一覧を示したものです。
BTRSAMP.C
BTRSAMP.C ソース ファイルは、表 29 に記載されているオペレーティング システムでコンパイル、リンク、および実行できるサンプル Btrieve プログラムです。
プログラミングの必要条件
C アプリケーション インターフェイスを使用し、アプリケーションをプラットフォーム非依存にする場合は、BTITYPES.H に記載されているデータ型を使用する必要があります。これらのデータ型の使用方法については、BTRSAMP.C ファイルを参照してください。
メモ: また、プログラムが動作するオペレーティング システムを識別するディレクティブを指定する必要があります。ディレクティブに使用できる値は、ヘッダー ファイル BTITYPES.H に列挙されています。お使いのコンパイラに適したコマンド ライン オプションを使用して、ディレクティブを指定してください。
Delphi
Btrieve Delphi モジュールは、表 27 に記載されています。
DOS(Btrieve)
ここでは、DOS アプリケーションが Btrieve API をどのように使用できるかについて説明します。
インターフェイス モジュール
Btrieve API を使用する DOS アプリケーション向けの言語インターフェースは、以下のモジュールによって構成されます。
BTRAPI.C
BTRAPI.C ファイルは、C アプリケーション インターフェイスの実装です。また、このファイルには次のような DOS インターフェイスも含まれます。
#if defined( BTI_DOS )
BTI_API BTRVID(
BTI_WORD operation,
BTI_VOID_PTR posBlock,
BTI_VOID_PTR dataBuffer,
BTI_WORD_PTR dataLength,
BTI_VOID_PTR keyBuffer,
BTI_SINT keyNumber,
BTI_BUFFER_PTR clientID )
BTRAPI.C は、BTRV および BTRVID を呼び出すすべてのアプリケーションをサポートします。これらの関数のいずれかで Btrieve 呼び出しを行う場合、BTRAPI.C をコンパイルし、そのオブジェクトをアプリケーションの他のモジュールとリンクします。
BTRAPI.C ファイルには、BTRAPI.H、BTRCONST.H、BLOBHDR.H、および BTITYPES.H を取り込むようにコンパイラに指示する #include ディレクティブが含まれています。これらのファイルを取り込むことによって、BTRAPI.C は、インターフェイスに関連するプラットフォーム独立性を備えたデータ型を利用します。
BTRAPI.H
BTRAPI.H ファイルには、Btrieve 関数のプロトタイプが含まれています。プロトタイプ定義では、BTITYPES.H ファイルで定義されているプラットフォーム非依存のデータ型を使用します。BTRAPI.H は、BTRV 関数と BTRVID 関数を呼び出すすべてのアプリケーションをサポートします。
BTRCONST.H
BTRCONST.H ファイルには、Btrieve 固有の有効な定数が含まれています。これらの定数を使用すると、Btrieve オペレーション コード、ステータス コード、ファイル仕様フラグ、キー仕様フラグなどの多数の項目への参照を容易に標準化できます。
BTRCONST.H を利用しなくても C アプリケーション インターフェイスを使用することはできますが、このファイルを取り込むと、プログラミング作業を単純化できます。
BTITYPES.H
BTITYPES.H ファイルは、プラットフォーム非依存のデータ型を定義します。Btrieve 関数呼び出しで BTITYPES.H のデータ型を使用すると、アプリケーションはオペレーティング システム間で移植されます。
BTITYPES.H には、アプリケーションが動作する DOS オペレーティング システムを示すために使用しなければならないスイッチも記載されています。次の表は、これらのスイッチの一覧を示します。
Pascal
ここでは、Btrieve API の Pascal ソース モジュールについて説明します。
その後に、Pascal の Btrieve API ソース モジュールについて説明します。
ソース モジュール
Pascal インターフェイスは、以下のソース モジュールから構成されています。
BBTRAPID.PAS
BTRAPID.PAS には、DOS 用の Pascal アプリケーション インターフェイスのソース コードの実装が含まれています。このファイルは、Btrieve 関数を呼び出すアプリケーションをサポートします。
Turbo Pascal が、MicroKernel エンジンを正しくコンパイルして、アプリケーションの他のモジュールとリンクするためには、BTRAPID.PAS をコンパイルして Turbo Pascal ユニットを作成し、そのユニットをアプリケーションのソース コードの uses 句に記載します。
BTRCONST.PAS
BTRCONST.PAS ファイルには、Btrieve に固有な有効の定数が含まれています。これらの定数を使用すると、Btrieve オペレーション コード、ステータス コード、ファイル仕様フラグ、キー仕様フラグなどの多数の項目への参照を容易に標準化できます。
BTRCONST.PAS を使用するには、このファイルをコンパイルして Turbo Pascal ユニットを作成し、そのユニットをアプリケーションのソース コードの uses 句に記載します。
BTRCONST.PAS を利用しなくても Pascal アプリケーション インターフェイスを使用することはできますが、このファイルを利用すると、プログラミング作業を単純化できます。
BTRSAMPD.PAS
BTRSAMPD.PAS ソース ファイルは、コンパイル、リンク、および実行できるサンプル Btrieve プログラムです。
メモ: アプリケーションがバリアント文字列を含む Pascal レコード構造を使用する場合は、たとえレコードがパック化されていなくても、Pascal レコード内の奇数長の要素が追加の記憶バイトを必要とする場合があります。このことは、Create(14)オペレーションのレコード長を定義する場合に考慮が必要な重要問題です。レコード タイプの詳細については、Pascal リファレンス マニュアルを参照してください。
Visual Basic
ここでは、Btrieve API の Visual Basic ソース モジュールについて説明します。
Visual Basic は 32 ビット アプリケーションをコンパイルする際、UDT(ユーザー定義データ型)のメンバーをそれぞれ、その特定のメンバーのサイズに応じて 8 ビット、16 ビット、32 ビットの境界に配置します。構造体と違い、データベース行はパック化されます。つまり、フィールド間に未使用スペースがないということです。配置をオフにする方法はないので、Visual Basic アプリケーションがデータベースにアクセスできるように構造体をパック化およびアンパック化する方法が必要です。PSQL Btrieve アライメント DLL、つまり PALN32.DLL は、この配列の問題を処理するように設計されています。
Visual Basic の場合、この言語はさまざまなビットの倍数で要素を配置します。以下の表に、各種データ型と、Visual Basic がそれらのデータ型を処理する方法を示します。
プログラムは、BTRCALL 関数を呼び出して Visual Basic 内の Btrieve 呼び出しにアクセスします。この関数へのアクセスは、プロジェクトに BTRAPI.BAS モジュールを取り込むことによって行います。必要な関数の残りの部分は、PALN32.DLL 内にあります。
プロジェクト]>[参照設定]を選択し、PSQL Btrieve Alignment Library モジュールを確認します。このモジュールが表示されない場合は、まず、参照ボタンを選択してファイルを検索することによってリストにモジュールを追加します。
以下の表に、各関数とその関数が必要とする特定のモジュールを示します。
OP As Integer
Btrieve API Guide』に記載されている Btrieve オペレーション番号。
1 フィールド型 FLD_UNICODE は、データベース行(パック構造)と UDT(ユーザー定義データ型)のどちらでも UNICODE で格納される、Visual Basic の String 型のフィールドを指定するために使用されます。フィールド型 FLD_STRING を使用した場合、フィールドは、データベース行ではシステムのデフォルトの ANSI コード ページ文字セットに変換されますが、UDT(ユーザー定義データ型)では UNICODE が使用されます。要するに、文字列フィールドを UNICODE でデータベースに格納したい場合は、フィールド型 FLD_UNICODE を選択します。文字列フィールドを、システムのデフォルトの ANSI コード ページ文字セットでデータベースに格納したい場合は、FLD_STRING を選択します。