Direct Access Components の使用方法
 
このページをシェアする                  
Direct Access Components の使用方法
Embarcadero データベース エンジンに置き換わる Pervasive エンジンの使用に関する情報
この章では、Delphi および C++ Builder で使用する Pervasive Direct Access Components について説明します。以下の項目が含まれます。
Pervasive Direct Access Components の概要
Pervasive Direct Access Components の使用法
実装上の相違点
PDAC に基づくアプリケーションの配布
PDAC セキュリティ
Pervasive Direct Access Components の概要
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
置き換える Embarcadero コンポーネント
TPvBatchMove
TBatchMove
TPvDatabase
TDatabase
TPvQuery、TwwPvQuery
TQuery
TPvSession
TSession
TPvSqlDatabase
TDatabase
TPvSqlSession
TSession
TpvStoredProc、TwwPvStoredProc
TStoredProc
TPvTable、TwwPvTable
TTable
TPvUpdateSQL
TUpdateSQL
以下の表では、Pervasive Direct Access Components の機能を示しています。
Pervasive コンポーネント
機能
TPvBatchMove
アプリケーションの、レコードのグループあるいはテーブル全体へのデータベース オペレーションを可能にします。この機能は、TBatchMove VCL コンポーネントと類似しています。
TPvDatabase
ログイン コントロール、トランザクション サポート、データベース接続持続性などの、非 SQL データベースのための接続に特化した機能を提供します。この機能は、TDatabase VCL コンポーネントと類似しています。
TPvQuery
SQL ステートメントを基本とした行セットをカプセル化します。これは、複数のテーブルに対する連結とキャッシュ後の更新を含む、完全なリレーショナル アクセスを提供します。この機能は、TQuery VCL コンポーネントと類似しています。
TPvSession
スレッドに対する安全性とクライアント ID のサポートを提供します。この機能は、TSession VCL コンポーネントと類似しています。
TPvSqlDatabase
ログイン コントロール、トランザクション サポート、データベース接続持続性などの、Pervasive PSQL データベースのための接続に特化した機能を提供します。この機能は、TDatabase VCL コンポーネントと類似しています。
TPvSqlSession
Pervasive PSQL のスレッドに対する安全性とクライアント ID のサポートを提供します。この機能は、TSession VCL コンポーネントと類似しています。
TPvStoredProc
Pervasive PSQL ストアド プロシージャへのアクセスを提供します。TpvQuery コンポーネントと同様に、パラメーター化し、行セットを返すことができます。この機能は、TStoredProc VCL コンポーネントと類似しています。
TPvTable
シングル テーブル アクセスと操作を提供します。この機能は、TTable VCL コンポーネントと類似しています。
TPvUpdateSQL
マルチテーブル結合などのほかの方法で更新できない SQL 行セットの(キャッシュ後の更新を含んだ)透過的な更新を可能にします。この機能は、TUpdateSQL VCL コンポーネントと類似しています。
TwwPvTable、TwwPvQuery、および TwwPvStoredProc
InfoPower 互換性のために PDAC に含まれています。TPvTable、TPvQuery、および TPvStoredProc から直接派生します。それぞれに、ControlType という追加のプロパティがあります。
これらのコンポーネントはスタンドアロン(つまり、Borland Database Engine(BDE)なし)で使用することができます。また、単一アプリケーション内で BDE と同時に使用することもできます。コンポーネントの使用法は対応する BDE コンポーネントと同じです。ただし、PDAC クラス、プロパティ、イベント、およびメソッドの記載については除外されます。
BookMarksEnabled プロパティ
TPvQuery には BookmarksEnabled というブール型の新しいプロパティが追加されました。アプリケーションでブックマークを使用しない場合は、このプロパティを False に設定すると TPvQuery のパフォーマンスが向上します。デフォルト値は True です。
PvQuery.BookmarksEnabled :=False
セキュリティで保護されたデータベースと PDAC
セキュリティで保護されたデータベースに接続しようとすると、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
TPvQuery には CursorType プロパティがあり、ctCached または ctDynamic を設定できます。次の表では、このプロパティの動作を詳しく説明します。
カーソルの種類
動作
ctCached
この設定は旧バージョンで使用可能だった完全キャッシュ、完全静的カーソル マネージャーに相当します。レコードを返す前に ResultSet(結果セット)に各レコードを読み込みます。これはテーブルが大きい場合には速度が遅くなりますが、LookUp などのオペレーション用に開いた後では速くなります。
ctDynamic
この設定は新しいデフォルトです。これは Pervasive PSQL エンジンの動的カーソルを使用し、ctCached と比較した場合(特に大きいテーブルを扱う場合)、ほとんどのオペレーションでパフォーマンスが大いに向上します。
メモ: 動的カーソルでは、自身またはその他のクライアントによる挿入/更新/削除を見ることができます。
このプロパティを変更することによって PvQuery の CursorType を変更することはできますが、これは Active が False になっている場合(実行時)に限ります。設計時にこれを変更し、クエリが Active の場合、そのクエリを非アクティブにしてからカーソルの種類を変更します(ただし、再度アクティブ化はしません)。実行時、Active が True になっている場合に PvQuery の CursorType を変更すると、例外(開いたデータセットでこのオペレーションを実行できません)がスローされます。
動的カーソルが静的カーソルに変わる状況
動的カーソル(ctDynamic)を要求したとしても、SQL ステートメントに動的カーソルを処理できない構文が含まれている場合、エンジンは接続してデータを返しますが、静的カーソルを使用します。たとえば、次のような構文が挙げられます。
view
join
インデックスが定義されていない列に対する ORDER BY
カーソルが静的カーソルに変わる場合、この静的カーソルはエンジン ベースのカーソルで、ほかのクライアントによる挿入、更新または削除を見ることができません。以前のリリースの静的カーソル(カーソルの種類に ctCached を使用する)よりも正しく動作します。
カーソルが動的から静的に変わる場合は、Pervasive PSQL エンジンからそれが PDAC コンポーネントに通知され、EngineCursor という名前の読み取り専用のパブリック プロパティが設定されます。
EngineCursor プロパティは公開されていないので、設計時に[オブジェクト インスペクター]には表示されません。このプロパティには 2 つの値があります
ecDynamic
ecStatic
このプロパティは変更できませんが、クエリを開いた後にその値を確認することができます。ほかのクライアントによって行われた更新がカーソルに含まれるかどうかをアプリケーション側で認識することが重要な場合などは、このプロパティを確認してください。
エンジンのバージョンのチェック
PDAC では、クエリまたはテーブルを開いたときに Pervasive PSQL エンジンのバージョンが適切かどうかをチェックしてエンジンのバージョン依存に伴うエラーが発生するのを完全に防ぐことができます。エンジンのバージョンが適切でない場合は例外が発生し、必要なバージョンを示すメッセージが表示されます。
TPvQuery.PassThrough
SQL テキストを事前解析しないで、エンジンへ直接送ることができます。
TPvDatabase.OEMConversion
このプロパティは、データベースに格納されている文字は OEM(DOS)コード ページによってエンコードされているため、データベースを使用する前にこれらの文字を ANSI(Windows)コード ページに変換する必要があることを示します。
詳細情報を入手するには
PDAC は下記 Web サイトからダウンロードにより入手可能です。
http://www.agtech.co.jp/support/reference/pervasive/psqllib/access_methods/pdac.html
Pervasive Direct Access Components の使用法
PDAC コンポーネントは、アーカイブからそのコンポーネントを解凍することで任意のディレクトリ(installdir)にインストールします。PDAC コンポーネントが解凍されたら、システム上の Delphi または C++ Builder IDE がその コンポーネントの場所を確実に認識できるようにする必要があります。
C++ Builder のプロジェクト オプションに、PDAC のためのインクルード パスとライブラリ パスを反映させるためには以下の手順に従います。これらはデフォルトのオプションとして追加することができます。そのため、Pervasive コンポーネントを使用しているすべてのプロジェクトに必要というわけではありません。
C++ Builder のインクルード パスとライブラリ パスに Pervasive Direct Access Components を追加するには、次の手順に従います。
1 プロジェクトオプション]をクリックして、[ディレクトリ/条件]タブをクリックします。
2 [インクルード パス]に installdir\sdk\pdac\Delphi?\include を追加します。ここで、installdir は PDAC をインストールしたディレクトリを示します。? の部分は使用している RAD Studio のバージョンに置き換えます。
3 さらに[ライブラリ パス]に、installdir\sdk\pdac\Delphi?\lib と、installdir\sdk\pdac\Delphi?\lib\dcu をセミコロン(;)で区切って追加します。? の部分は使用している RAD Studio のバージョンに置き換えます。
インクルード パスとライブラリ パスを正しく設定すると、Direct Access Components を対応する Embarcadero コンポーネントとまったく同様に使用できるようになります。
Delphi 2006、Delphi 2007、および C++ Builder 2007
Pervasive PSQL は Delphi 2006、Delphi 2007、および C++ Builder 2007 のサポートを提供します。お使いの環境に Delphi 2006、Delphi 2007、または C++ Builder 2007 を組み入れるには、以下の手順を使用します。
Delphi 2006、Delphi 2007、または C++ Builder 2007 パッケージとパス情報をお使いの環境に追加するには
1 [コンポーネントパッケージのインストール追加]をクリックします。
2 設計時パッケージを選択します。
3 Delphi compiled units(DCU)とインターフェイス ファイル(INT)にパスを追加します。
Delphi 2007 および C++ Builder 2007 は Delphi 2006(BDS 2006)とバイナリ互換なので、既存の Embarcadero package libraries(BPL)はすべて変更なしで動作します。Delphi 2007 および C++ Builder 2007 ではコンパイラ変数 VERSION_180 と VERSION_185 を宣言することに注意してください。
RAD Studio
次に示す RAD Studio のエディションで、コンポーネントをコンパイラー IDE に追加するには、下記の手順に従ってください。
RAD Studio 2009
RAD Studio 2010
RAD Studio XE
RAD Studio XE2
RAD Studio XE3
メモ: RAD Studio XE2 用の Pervasive PSQL PDAC コンポーネントは 32 ビットのみ使用可能です。
RAD Studio パッケージとパス情報をお使いの環境に追加するには
1 [コンポーネントパッケージのインストール追加]をクリックします。
2 以下の PDAC 設計時コンポーネントを参照し、お使いの環境用のコンポーネントを選択します。
RAD Studio 2009 コンポーネント
pc200d2009.bpl
pb200d2009.bpl
ps200d2009.bpl
RAD Studio 2010 コンポーネント
pc200d2010.bpl
pb200d2010.bpl
ps200d2010.bpl
RAD Studio XE コンポーネント
pc200dXE.bpl
pb200dXE.bpl
ps200dXE.bpl
RAD Studio XE2(32 ビット)コンポーネント
pc200dXE2.bpl
pb200dXE2.bpl
ps200dXE2.bpl
RAD Studio XE3(32 ビット)コンポーネント
pc200dXE3.bpl
pb200dXE3.bpl
ps200dXE3.bpl
お使いの環境に合ったコンポーネントを選択すると、VCL プロジェクトに[Pervasive]タブが表示されるようになります。これで、PvTable または PvQuery を追加して、PDAC を使用するアプリケーションを構築することが可能になりました。
実装上の相違点
次の表では、Pervasive と Embarcadero のコンポーネントの機能の相違点を示しています。
TPvTable
すべてのエイリアス管理機能で「名前付きデータベース」管理を行います。
TDBDataSet からではなく TPvDataSet から継承します。
TableLevel、UpdateObject、UnlockTable、OpenIndexFile、CloseIndexFile の各プロパティは既に削除されており、TableType が無視されます。
設計時と実行時のどちらででも、DSN、Pervasive 名前付きデータベースあるいはデータベースへの完全修飾パスとして、Database Name プロパティが利用できます。
TPvDatabase
DriverName、Locale、TtraceFlags の各プロパティが既に削除されています。
ハンドルのタイプが DRM_DBID に変更されます。
IsSQLBased は常に False を返します。
TransIsolation の値は、"tiDirtyRead" と "tiReadCommitted"(デフォルト)の 2 つのみとなります。
EPvDBEngineError
EDBEngineError の代替です。
TPvDBError
TDBError の代替です。
TPvSqlSession
すべてのエイリアス管理機能で DSN 管理を行います。
Handle プロパティのタイプが SQLHENV に変更されます。
AddStandardAlias メソッドではデフォルトの設定でエンジン DSN を追加します。
UpdateDsnType:TDsnTypes プロパティが追加されています。TDsnTypes = (dsnSystem, dsnUser)。UpdateDsnType の意味は次のとおりです。
DeleteAlias 関数の場合、DSN ユーザーがSystem または User DSN のどちらを削除するのかを示します。
AddAlias および GetAliasParameters 関数の場合、どの DSN タイプにするのかを示します。
TPvSqlDatabase
Handle プロパティのタイプが SQLHDBC に変更されています。
IsSQLBased プロパティは常に True になります。
Tables プロパティと StoredProcs プロパティには、それぞれ TsqlTablesInfoCollection と TsqlStoredProcInfoCollection というタイプがあります。
TPvQuery
TQuery からの継承です。
Handle プロパティのタイプが SQLHSTMT に変更されています。
DBHandle プロパティのタイプが SQLHDBC に変更されています。
StmtHandle プロパティが削除されています。
Text プロパティは常に SQL プロパティからのテキストを返します。
CheckOpen メソッドが削除されています。
インデックスとキーに関連するすべてのプロパティとメソッド(GetIndexInfo など)が削除されています。
新しく LoadBlobOnOpen プロパティが追加されています。LoadBlobOnOpen が True のときは、クエリ オープンですべての BLOB がメモリにキャッシュされます。LoadBlobOnOpen が False のときは、BLOB は必要時に読み込まれます。
TransIsolation プロパティの相違点
Pervaseve Direct Access Components の TransIsolation プロパティの動作は相当する Embarcadero の動きとは違います。
トランザクションの分離レベルでは、同じテーブルで動作するとき、トランザクションがほかで同時に動作しているトランザクションと対話する方法と、ほかのトランザクションによって実行されるオペレーションをトランザクションで監視する程度を決定します。
データベースのトランザクション分離レベルを指定するには、TPvDatabase.TransIsolation プロパティを使用します。
Pervasive Direct Access Components では tiReadCommitted モードのみをサポートします。これは、トランザクションが終了するまで、ファイルへの変更をほかのユーザーが見ることができないという意味です。これは、Pervasive PSQL エンジンの下でサポートされる唯一の設定です。
DSN を使用しない接続
PDAC のリレーショナル コンポーネントは、DSN または 名前付きデータベースなしでも、クライアント コンピューターからリモート サーバー データベースへ接続できます。サーバーにはデータベースの DSN がなければなりません。
この機能は、TPvSqlDatabase コンポートネントに追加された新しいプロパティ AliasNameIsConnectionString を使用することで動作します。詳細については、VCL と異なる特定のクラスを参照してください。
1 Delphi のフォーム上に PvSQLDatabase を配置します。
2 架空の DatabaseName を設定します。これは何でもかまいません。
3 新しいプロパティ AliasNameIsConnectionString を True に設定します。
4 AliasName プロパティ(または AliasName は空のままで DatabaseName)に「接続文字列」を設定します。
「接続文字列」とは、ODBC への完全な接続文字列で、サーバー上の DSN とサーバーの名前を含めます。
例:
DRIVER={Pervasive ODBC Client Interface};
    ServerName=DSLINUX2; ServerDSN=DEMODATA;
    UID=myuserid;PWD=mypassword
メモ: 接続文字列には引用符や改行はありません。お使いのエディターで行を折り返していた場合、プロパティ エディターで単一行にしてください。
ユーザー名とパスワードが必要な場合、接続文字列の一部としてこれらを含めることができます。接続文字列にユーザー名とパスワードが含まれない場合、LoginPrompt プロパティが True であれば標準のデータベース ログイン ダイアログが表示されます。
5 データベースを Connected に設定して通常どおり使用します。
これらの手順はすべて設計時、または実行時にコードから実行することができます。
PDAC に基づくアプリケーションの配布
Embarcadero などのランタイム ライブラリについてはいくつかのバリエーションがありますが、エンド ユーザーに配布する PDAC アプリケーションの基本的な構築方法は 2 つです。1 つは実行時パッケージを使用する方法で、もう 1 つはアプリケーションの実行可能ファイルに PDAC ライブラリを静的にリンクする方法です。また、C++ Builder では Embarcadero ランタイム ライブラリの動的または静的リンク オプションも提供します。
メモ: SDK で提供する DRM.DLL ファイル(Pervasive PSQL のインストール後、BIN ディレクトリに置かれます)は、配布するすべての環境設定のパスに配置する必要があります。また、PDAC アプリケーションを実行するターゲット コンピューターには Pervasive PSQL v10 SP1 クライアントまたは Pervasive PSQL エンジン(サーバーまたはワークグループ)が正しくインストールされていなければなりません。
実行時パッケージの使用の決定
実行時パッケージを使用する場合はいくつかの利点があります。最小の実行可能ファイルを提供することができます。これは、リンクの遅い環境で実行可能ファイルまたは更新のダウンロードや転送を行う必要がある場合には重要になります。このオプションを使用すれば、PDAC および Embarcadero のランタイム バイナリを共有することができます。これにより、多くの Embarcadero および PDAC アプリケーションを使用する環境内のディスク容量やメモリを大幅に節約することができます。
欠点は、より多くのファイルを配布し、これらをカレントにしておく必要があり、またその共有ファイルは、共有サブディレクトリにサード パーティ製の不正なバージョンの共有ファイルがインストールされることによって影響を受ける恐れがあることです。実行時パッケージを使用しない場合は、アプリケーションと DRM.DLL のみを配布する必要があります。PDAC ライブラリは実行可能ファイルに静的にリンクし、それに伴ってサイズは大きくなります。
実行時パッケージを使用する場合、開発者はアプリケーションの実行可能ファイルおよび適切な PDAC ライブラリ(PDAC インストール ディレクトリの redist サブディレクトリ内)の両方と、Embarcadero ランタイム ライブラリまたはその他のランタイム ライブラリ(コンパイラの bin ディレクトリにある borlndmm.dll が必要になることが多い)をエンド ユーザーに配布する必要があります。
Redist サブディレクトリ
Embarcadero コンパイラごとに redist ディレクトリがあります。このディレクトリには、.BPL ライブラリが含まれており、これらのライブラリは[実行時パッケージを使って構築]オプションを使ってコンパイルされたアプリケーションと一緒に配布する必要があります。
メモ: 各 redist ディレクトリには .DCP または .BCP ファイルも含まれています。これらのファイルは、派生クラスを使用した開発が許可されるライセンスを持つ組織以外には再配布されません。.DPL パッケージと .BPL パッケージのみをアプリケーションと一緒に配布することができます。
IDS の配布
PDAC アプリケーションは I*net Data Server で使用することはできません。I*net Data Server(IDS)は、Pervasive PSQL と別個にインストールできるコンポーネントではなくなりました。IDS の一部であった機能のほとんどは製品に統合されました。
Delphi または C++ Builder の構築と配布手順
ここでは、次に示すバージョンで構築と配布を行う手順を示します。
Delphi 2006
C++ Builder 2007
Delphi 2007
RAD Studio 2009
RAD Studio 2010
RAD Studio XE
RAD Studio XE2(32 ビット)
RAD Studio XE3
Delphi IDE で以下のように適切なオプションを設定します。
1 プロジェクト]メニューから[オプション]を選択します。
2 パッケージ]タブをクリックします。
実行時にアプリケーションと PDAC ライブラリとを動的にリンクさせるには、[実行時パッケージを使って構築]のチェックをオンにし、次の表に示す適切な PDAC パッケージを編集ボックスのリストへ追加します。
メモ: インストール時に PDAC パッケージが構築リストに追加されていた場合は、上記の手順は必要ありません。
アプリケーションで次の表の一番左側の列のコンポーネントを使用する場合、Delphi のバージョンに該当する右側の列のパッケージ(.BPL ファイル) が構築リストに表示されます。
使用するコンポーネント
必要なパッケージ
 
Delphi 2006
Delphi 2007
RAD Studio 2009
RAD Studio 2010
RAD Studio XE
RAD Studio XE2(32 ビット)
RAD Studio XE3
[トランザクショナル]
TPvSession
TPvDatabase
TPvTable
TPvBatchMove
TwwPvTable
pc200d2006
pb200d2006
pc200r2009
pb200r2009
pc200r2010
pb200r2010
pc200rXE
pb200rXE
pc200rXE2
pb200rXE2
pc200rXE3
pb200rXE3
[リレーショナル]
TPvSQLSession
TPvSQLDatabase
TPvQuery
TPvUpdateSQL
TPvSQLStoredProc
TwwPvQuery
TwwPvSQLStoredProc
pc200d2006
ps200d2006
pc200r2009
pb200r2009
pc200r2010
pb200r2010
pc200rXE
pb200rXE
pc200rXE2
pb200rXE2
pc200rXE3
pb200rXE3
パッケージを選択するには、[コンポーネントインストール]の順にクリックし、ご使用の Delphi のバージョンに一致するディレクトリからパッケージを選択します。一度にすべてのパッケージを選択することができます。
Delphi のバージョン
ディレクトリ(デフォルトのインストール先)
Delphi 2006
Delphi 2007
\SDK\PDAC\PDAC\Delphi2006\LIB
RAD Studio 2009
\SDK\PDAC\Delphi2009\LIB
RAD Studio 2010
\SDK\PDAC\Delphi2010\LIB
RAD Studio XE
\SDK\PDAC\DelphiXE\LIB
RAD Studio XE2(32 ビット)
\SDK\PDAC\DelphiXE2\LIB
RAD Studio XE3
\SDK\PDAC\DelphiXE3\LIB
メモ: PDAC パッケージをリストに追加しない場合、これらは実行可能ファイルにコンパイルされ、[実行時パッケージを使って構築]のチェックがオンになっていても共有ライブラリは使用されません。
PDAC ライブラリをアプリケーションの実行可能ファイルに静的にリンクさせるには、[実行時パッケージを使って構築]のチェックをオフにしておきます。
コンパイル時、[実行時パッケージを使って構築]のチェックをオンにしていた場合は、アプリケーションを配布するときに、アプリケーションそのもの、drm.dll およびその他のパッケージまたは 必要な DLL と共に以下に示すパッケージ ライブラリも配布する必要があります。
Delphi 2006/Delphi 2007 パッケージ構築リスト
これらのライブラリは、\SDK\PDAC\PDAC\Delphi2006\REDIST にあり、それぞれ個別の .DCP ファイルが含まれています。
pc200d2006.bpl
pb200d2006.bpl
ps200d2006.bpl
RAD Studio 2009 パッケージ構築リスト
pc200r2009.bpl
pb200r2009.bpl
ps200r2009.bpl
RAD Studio 2010 パッケージ構築リスト
pc200r2010.bpl
pb200r2010.bpl
ps200r2010.bpl
RAD Studio XE パッケージ構築リスト
pc200rXE.bpl
pb200rXE.bpl
ps200rXE.bpl
RAD Studio XE2(32 ビット) パッケージ構築リスト
pc200rXE2.bpl
pb200rXE2.bpl
ps200rXE2.bpl
RAD Studio XE3 パッケージ構築リスト
pc200rXE3.bpl
pb200rXE3.bpl
ps200rXE3.bpl
これらのファイルは、アプリケーションの実行可能ファイルと同じサブディレクトリにインストールすることができますが、Pervasive ではターゲット コンピューターのパスに置くことをお勧めします。そうすれば、これらのファイルをほかのアプリケーションでも共有することができます。Pervasive PSQL インストール場所の BIN ディレクトリが Pervasive 実行モジュールの主ディレクトリである場合は、このディレクトリを使用するのが適切です。
さらに、Delphi の PDAC アプリケーションでは Pervasive PSQL エンジン(サーバーまたはワークグループ)または Pervasive PSQL クライアントのいずれかと、適切にインストールされ設定されているリモート サーバーが必要です。
Delphi 6 より更新されたパッケージ名
Delphi 6 以降、Pervasive では Embarcadero 標準との互換性をより強化するようパッケージの名前付け規則を変更しました。また、Embarcadero 要件を満たすために、実行時パッケージを設定時パッケージから分けました。
旧バージョンの Delphi と PDAC から移行する場合の新しい実行時パッケージ名の解釈方法を以下に示します。
pc200r60.bpl
pb200r60.bpl
ps200r60.bpl
 
ファイル名の桁位置
可能な値
説明
1
p
Pervasive
2
c、b または s
Common、Btrieve または SQL
3-5
リリースによって異なる
PDAC コンポーネントのメジャーおよびマイナー バージョン
6
r、d
実行時または設計時
7-8
リリースによって異なる
これらのコンポーネントを適用する Delphi のバージョン
メモ: Delphi 6 で作業する場合、InfoPower 機能はメイン パッケージに結合されています。InfoPower 機能の Woll2Woll コンポーネント用のパッケージは独立していません。
PDAC セキュリティ
PDAC では次の 2 つのセキュリティ タイプをサポートします。
オーナー ネーム セキュリティ(Btrieve)
SQL データベース セキュリティ(DDF)
以下にこれら 2 つのセキュリティ モデルの詳細を説明します。
オーナー ネーム セキュリティ
このセキュリティ モデルを使用する場合は、テーブルのオーナー ネームを提供します。詳細については、『Btrieve API Guide』の Btrieve オペレーション 29 の「Set Owner」を参照してください。
TPvTable には Owner: string プロパティと次のメソッドがあります。
SetOwnerOnTable(AOwner: string; AccessMode: integer)
Owner プロパティを使用すれば、オーナー ネームを設定することができます。SetOwnerOnTable メソッドを使用すれば、テーブルのオーナー ネームを設定したりクリアしたりすることができます。
表 1 PDAC アクセス モード
コード
説明
0
すべてのアクセス モードでオーナー ネームが必要(データ暗号化なし)
1
読み取り専用アクセスにはオーナー ネームは必要なし(データ暗号化なし)
2
すべてのアクセス モードでオーナー ネームが必要(データ暗号化あり)
3
読み取り専用アクセスにはオーナー ネームは必要なし(データ暗号化あり)
Btrieve テーブルにアクセスするには、有効なオーナー ネームを提供する必要があります。
SQL セキュリティ
SQL/ODBC セキュリティは DDF レベル上のデータベース セキュリティです。PDAC には SQL セキュリティをセットアップする特別な方法はありません。Pervasive Control Center または ODBC ツールなどの外部プログラムを使用する必要があります。Pervasive Control Center の詳細については、『Pervasive PSQL User's Guide』を参照してください。データベースがセキュリティで保護されている場合は、テーブルを開くとき、または TpvDatabase コンポーネントにアクセスするときに、毎回ユーザー名とパスワードを入力するダイアログが表示されます。データベースにセキュリティが設定されているかどうかを調べるには、パブリック プロパティの TPvDatabase.IsSecured で確認することができます。
メモ: データベースで SQL セキュリティが有効な場合、Btrieve/オーナー ネーム セキュリティは無視されます。