|
リレーショナル インターフェイス コンポーネントのセットには以下のものが含まれています。
コンポーネントは、次の表に示すように Embarcadero のコンポーネントに置き換わります。
これらのコンポーネントはスタンドアロン(つまり、Borland Database Engine(BDE)なし)で使用することができます。また、単一アプリケーション内で BDE と同時に使用することもできます。コンポーネントの使用法は対応する BDE コンポーネントと同じです。例外については、適用可能な特定のコンポーネント下、および PDAC クラス、プロパティ、イベント、およびメソッドに記載されています。
Pervasive PSQL のスレッドに対する安全性とクライアント ID のサポートを提供します。この機能は、TSession VCL コンポーネントと類似しています。
TPvSQLSession については、本章の以下のセクションを参照してください。
ログイン コントロール、トランザクション サポート、データベース接続持続性などの、Pervasive PSQL データベースのための接続に特化した機能を提供します。この機能は、TDatabase VCL コンポーネントと類似しています。
セキュリティで保護されたデータベースに接続しようとすると、PDAC にユーザー名とパスワードの入力を求められます。このようなプロンプトが表示されないようにしたい場合は、次のコードを例として用いて、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;
PDAC のリレーショナル コンポーネントは、DSN または 名前付きデータベースなしでも、クライアント コンピューターからリモート サーバー データベースへ接続できます。サーバーにはデータベースの DSN がなければなりません。
この機能は、TPvSqlDatabase コンポートネントで入手できる AliasNameIsConnectionString プロパティを使用することで動作します。詳細については、VCL と異なる特定のクラスを参照してください。
メモ
接続文字列には引用符や改行はありません。お使いのエディターで行を折り返している場合、プロパティ エディターでは単一行にしてください。
これらの手順はすべて設計時、または実行時にコードから実行することができます。
TPvSQLDatabase については、本章の以下のセクションを参照してください。
SQL ステートメントに基づいて行セットをカプセル化します。これは、複数のテーブルに対する結合やキャッシュされた更新を含む、完全なリレーショナル アクセスを提供します。この機能は、TQuery VCL コンポーネントと類似しています。
TPvQuery には BookmarksEnabled というブール型の新しいプロパティが追加されました。アプリケーションでブックマークを使用しない場合は、このプロパティを False に設定すると TPvQuery のパフォーマンスが向上します。デフォルト値は True です。
TPvQuery には CursorType プロパティがあり、ctCached または ctDynamic を設定できます。次の表では、このプロパティの動作を詳しく説明します。
メモ
動的カーソルでは、自身またはその他のクライアントによる挿入/更新/削除を見ることができます。
このプロパティを変更することによって PvQuery の CursorType を変更することはできますが、Active が False になっている場合は実行時のみに限ります。デザイン モードでこれを変更し、クエリが Active である場合は、そのクエリを非アクティブにしてからカーソルの種類を変更しますが、再アクティブ化はしません。実行時、Active が True になっている場合に PvQuery の CursorType を変更すると、"開いたデータセットでこのオペレーションを実行できません" という例外が生じる結果となります。
動的カーソル(ctDynamic)を要求したとしても、SQL ステートメントに動的カーソルを処理できない構文が含まれている場合、エンジンは接続してデータを返しますが、静的カーソルを使用します。たとえば、次のような構文が挙げられます。
カーソルが静的カーソルに変わる場合、この静的カーソルはエンジン ベースのカーソルで、ほかのクライアントによる挿入、更新または削除を見ることができません。以前のリリースの静的カーソル(カーソルの種類に ctCached を使用する)よりも正しく動作します。
カーソルが動的から静的に変わる場合は、Pervasive PSQL エンジンからそれが PDAC コンポーネントに通知され、EngineCursor という名前の読み取り専用のパブリック プロパティが設定されます。
EngineCursor プロパティは公開されていないので、設計時に[オブジェクト インスペクター]には表示されません。このプロパティには 2 つの値があります
このプロパティは変更できませんが、クエリを開いた後にその値を確認することができます。ほかのクライアントによって行われた更新がカーソルに含まれるかどうかをアプリケーション側で認識することが重要な場合などは、このプロパティを確認してください。
TPvQuery については、本章の以下のセクションを参照してください。
マルチテーブル結合などのほかの方法で更新できない SQL 行セットの(キャッシュ後の更新を含んだ)透過的な更新を可能にします。この機能は、TUpdateSQL VCL コンポーネントと類似しています。
TPvTable については、本章の以下のセクションを参照してください。
Pervasive PSQL ストアド プロシージャへのアクセスを提供します。TpvQuery コンポーネントと同様に、パラメーター化し、行セットを返すことができます。この機能は、TStoredProc VCL コンポーネントと類似しています。
TPvQuery については、本章の以下のセクションを参照してください。
InfoPower 互換性のために PDAC に含まれています。TPvQuery から直接派生され、ControlType という追加のプロパティを持ちます。
InfoPower 互換性のために PDAC に含まれています。TPvStoredProc から直接派生され、ControlType という追加のプロパティを持ちます。
ODBC および SQL のセキュリティは DDF レベルのデータベース セキュリティです。PDAC には SQL セキュリティをセットアップする特別な方法はありません。Pervasive Control Center または ODBC ツールなどの外部プログラムを使用する必要があります。Pervasive Control Center の詳細については、『Pervasive PSQL User's Guide』を参照してください。
データベースがセキュリティで保護されている場合は、テーブルを開くとき、または TpvDatabase コンポーネントにアクセスするときに、毎回ユーザー名とパスワードを入力するダイアログが表示されます。データベースにセキュリティが設定されているかどうかを調べるには、パブリック プロパティの TPvDatabase.IsSecured で確認することができます。セキュリティで保護されたテーブル、およびユーザー名とパスワードの入力要求も参照してください。
メモ
Btrieve インターフェイス セキュリティはオーナー ネームを使用します(テーブル セキュリティを参照してください)。データベースで SQL セキュリティが有効になっている場合、オーナー ネーム セキュリティは無視されます。
|