|
Pervasive Data Access Components(PDAC)は、Embarcadero Delphi と C++ Builder 環境内で、Pervasive データベース エンジンに直接アクセスできるようにする、一連の Visual Component Library(VCL)コンポーネントです。これらのコンポーネントは、Borland Database Engine(BDE)のすべての機能を提供しながら、BDE の完全な代替品として動作します。PDAC により、Delphi と C++ Builder 開発者にとってはデータベース開発の選択肢が格段に増えます。
Pervasive Data Access Components でサポートされる開発環境については PDAC の Readme ファイルをお読みください。
PDAC のすべてのバージョンには、TPvSession、TPvDatabase、TPvTable、TPvBatchMove、TPvQuery、TPvStoredProc、TPvUpdateSQL、TPvSqlDatabase の非ビジュアル コンポーネントが含まれており、これらのコンポーネントのクラスがサポートされています。これら 32 ビット コンポーネントは、Embarcadero の Data Access Components のプロパティ、メソッド、およびバインド機能を再現しますが、実行時に Borland Database Engine(BDE)が存在している必要はありません。
これらのコンポーネントはパッケージ形式で提供され、組み込みコントロールの設計時および実行時に必要なすべての機能を提供します。これらは BDE コンポーネントと同様の方法で Embarcadero データ アウェア コントロールにバインドします。また、完全に互換性のある、サード パーティのバウンド コントロールにもバインドします。
Woll2Woll InfoPower コンポーネントとの相互運用性のための特別なコンポーネント(wwPvTable、wwPvQuery および wwPvStoredProc)が装備されています。
TPvTable、TPvDatabase、TPvBatchMove および TPvSession は、完全な PDAC セットの Btrieve サブセットを構成します。これらのコンポーネントでは、リレーショナル機能を使用しておらず、実行時に Pervasive PSQL リレーショナル インターフェイスまたは ODBC を必要としません。
TPvQuery、TPvStoredProc、TPvUpdateSQL、および TPvSqlDatabase コンポーネントでは、Pervasive PSQL リレーショナル インターフェイスを使用します。
メモ
Pervasive コンポーネントには Embarcadero のプロパティおよびメソッドが複製されているので、Embarcadero 固有のプロパティおよびメソッドについては、Embarcadero のドキュメントを参照してください。
次の表は、Pervasive Direct Access Components の種類およびそれに対応する Embarcadero コンポーネントを示しています。
以下の表では、Pervasive Direct Access Components の機能を示しています。
これらのコンポーネントはスタンドアロン(つまり、Borland Database Engine(BDE)なし)で使用することができます。また、単一アプリケーション内で BDE と同時に使用することもできます。コンポーネントの使用法は対応する BDE コンポーネントと同じです。ただし、PDAC クラス、プロパティ、イベント、およびメソッドの記載については除外されます。
TPvQuery には BookmarksEnabled というブール型の新しいプロパティが追加されました。アプリケーションでブックマークを使用しない場合は、このプロパティを False に設定すると TPvQuery のパフォーマンスが向上します。デフォルト値は True です。
セキュリティで保護されたデータベースに接続しようとすると、PDAC にユーザー名とパスワードの入力を求められます。ユーザー名とパスワードを入力しなくても済むようにしたい場合は、TPvDatabase および TPvSQLDatabase で接続パラメーターを設定します。
たとえば、次のように指定します。
PvSession.ServerName:='ServerName'; PvSession.SessionName:='session1'; PvSession.Active:=True; PvDatabase.AliasName:= 'DatabaseName'; PvDatabase.DatabaseName:='DB'; PvDatabase.SessionName:='session1'; PvDatabase.Params.Clear(); // ここでユーザー名とパスワードを指定して // データベースに接続する PvDatabase.Params.Add('User Name=UserName'); PvDatabase.Params.Add('password=Password'); PvDatabase.Connected:=True; PvTable.DatabaseName:='DB'; PvTable.SessionName:='session1'; PvTable.TableName:='person'; PvTable.Active:=True;
TPvQuery には CursorType プロパティがあり、ctCached または ctDynamic を設定できます。次の表では、このプロパティの動作を詳しく説明します。
メモ
動的カーソルでは、自身またはその他のクライアントによる挿入/更新/削除を見ることができます。
このプロパティを変更することによって PvQuery の CursorType を変更することはできますが、これは Active が False になっている場合(実行時)に限ります。設計時にこれを変更し、クエリが Active の場合、そのクエリを非アクティブにしてからカーソルの種類を変更します(ただし、再度アクティブ化はしません)。実行時、Active が True になっている場合に PvQuery の CursorType を変更すると、例外(開いたデータセットでこのオペレーションを実行できません)がスローされます。
動的カーソル(ctDynamic)を要求したとしても、SQL ステートメントに動的カーソルを処理できない構文が含まれている場合、エンジンは接続してデータを返しますが、静的カーソルを使用します。たとえば、次のような構文が挙げられます。
カーソルが静的カーソルに変わる場合、この静的カーソルはエンジン ベースのカーソルで、ほかのクライアントによる挿入、更新または削除を見ることができません。以前のリリースの静的カーソル(カーソルの種類に ctCached を使用する)よりも正しく動作します。
カーソルが動的から静的に変わる場合は、Pervasive PSQL エンジンからそれが PDAC コンポーネントに通知され、EngineCursor という名前の読み取り専用のパブリック プロパティが設定されます。
EngineCursor プロパティは公開されていないので、設計時に[オブジェクト インスペクター]には表示されません。このプロパティには 2 つの値があります
このプロパティは変更できませんが、クエリを開いた後にその値を確認することができます。ほかのクライアントによって行われた更新がカーソルに含まれるかどうかをアプリケーション側で認識することが重要な場合などは、このプロパティを確認してください。
PDAC では、クエリまたはテーブルを開いたときに Pervasive PSQL エンジンのバージョンが適切かどうかをチェックしてエンジンのバージョン依存に伴うエラーが発生するのを完全に防ぐことができます。エンジンのバージョンが適切でない場合は例外が発生し、必要なバージョンを示すメッセージが表示されます。
PDAC は下記 Web サイトからダウンロードにより入手可能です。
http://www.agtech.co.jp/support/reference/pervasive/psqllib/access_methods/pdac.html
|