|
Btrieve コンポーネントのセットには以下のものが含まれています。
これらのコンポーネントでは、リレーショナル機能を使用しておらず、実行時に Pervasive PSQL リレーショナル インターフェイスまたは ODBC を必要としません。
コンポーネントは、次の表に示すように Embarcadero のコンポーネントに置き換わります。
Pervasive Direct Access Components
|
置き換える Embarcadero コンポーネント
|
---|---|
TPvBatchMove
|
TBatchMove
|
TPvDatabase
|
TDatabase
|
TPvSession
|
TSession
|
TPvTable、TwwPvTable
|
TTable
|
これらのコンポーネントはスタンドアロン(つまり、Borland Database Engine(BDE)なし)で使用することができます。また、単一アプリケーション内で BDE と同時に使用することもできます。コンポーネントの使用法は対応する BDE コンポーネントと同じです。例外については、適用可能な特定のコンポーネント下、および PDAC クラス、プロパティ、イベント、およびメソッドに記載されています。
スレッドに対する安全性とクライアント ID のサポートを提供します。この機能は、TSession VCL コンポーネントと類似しています。
TPvSession については、本章の以下のセクションを参照してください。
ログイン コントロール、トランザクション サポート、データベース接続持続性などの、非 SQL データベースのための接続に特化した機能を提供します。この機能は、TDatabase VCL コンポーネントと類似しています。
セキュリティで保護されたテーブルに接続しようとすると、PDAC にユーザー名とパスワードの入力を求められます。このようなプロンプトが表示されないようにしたい場合は、次のコードを例として用いて、TPvDatabase で接続パラメーターを設定します。(TPvTable のテーブル セキュリティも参照してください。)
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;
TPvDatabase については、本章の以下のセクションを参照してください。
シングル テーブル アクセスと操作を提供します。この機能は、TTable VCL コンポーネントと類似しています。
Btrieve インターフェイス用の PDAC セキュリティは、個々のテーブルのオーナー ネームを使用します。このセキュリティ モデルを使用する場合は、テーブルのオーナー ネームを提供します。詳細については、『Btrieve API Guide』の Btrieve オペレーション 29 の 「Set Owner(29)」を参照してください。
TPvTable には Owner: string
プロパティと次のメソッドがあります。
Owner プロパティを使用すれば、オーナー ネームを設定することができます。SetOwnerOnTable メソッドを使用すれば、テーブルのオーナー ネームを設定したりクリアしたりすることができます。
コード
|
説明
|
---|---|
0
|
すべてのアクセス モードでオーナー ネームが必要(データ暗号化なし)
|
1
|
読み取り専用アクセスにはオーナー ネームは必要なし(データ暗号化なし)
|
2
|
すべてのアクセス モードでオーナー ネームが必要(データ暗号化あり)
|
3
|
読み取り専用アクセスにはオーナー ネームは必要なし(データ暗号化あり)
|
Btrieve テーブルにアクセスするには、有効なオーナー ネームを提供します。
実行時に CreateTable メソッドを呼び出し、このデータセットの現在の定義を使用してテーブルを作成します。
FieldDefs プロパティに値がある場合は、これらの値を使ってフィールド定義を作成します。値がない場合は、Fields プロパティを使用します。データセットを再作成するには、これらのプロパティの一方または両方に値がなければなりません。
Add メソッドを使用してフィールドのプロパティを割り当てます。
Add メソッドは以前のバージョンとの互換性を保つために提供されます。新しいフィールド定義を Item プロパティの配列に追加する場合は、AddFieldDef メソッドを使用することをお勧めします。また、これを使って ftBCD データ型の小数位と桁数も指定します。
Add メソッドは、Name、DataType、Size および Required パラメーターに渡された値を使用し、これらを新しいフィールド定義オブジェクトの個別のプロパティに割り当てます。
メモ
フィールドがヌル値を許可する場合、Required に False を設定します。
AutoInc フィールドで autoincrement プロパティをアクティブにするには、このフィールドに固有のインデックスを作成します。
PvTable1.DatabaseName := 'TestData'; PvTable1.TableName := 'TestData1'; with PvTable1.FieldDefs do begin Clear; Add('F_autoinc', ftAutoInc, 0, True); Add('F_currency', ftCurrency, 0, False); Add('F_integer', ftInteger, 0, False); Add('F_word', ftWord, 0, False); Add('F_fixchar', ftFixedchar, 30, False); Add('F_varbin', ftString, 25, False); Add('F_blob', ftBlob, 60, False); end; with PvTable1.FieldDefs.AddFieldDef do begin Name := 'F_BCD'; DataType := ftBCD; Size:=2; //桁数 Precision := 10; //小数位 Required := false; end; with PvTable1.IndexDefs do begin Clear; Add('Index1', 'F_autoinc', [ixPrimary, ixUnique]); Add('Index2', 'F_integer', [ixCaseInsensitive]); end; PvTable1.CreateTable;
PvTable1->DatabaseName="TestData"; PvTable1->TableName="Test1"; PvTable1->FieldDefs->Clear(); PvTable1->FieldDefs->Add("F_autoinc", ftAutoInc, 0, True); PvTable1->FieldDefs->Add("F_integer", ftInteger, 0, False); PvTable1->FieldDefs->Add("F_Curr", ftCurrency, 0, False); PvTable1->FieldDefs->Add("F_Word", ftWord, 0, False); PvTable1->FieldDefs->Add("F_fixchar", ftFixedChar, 0, False); PvTable1->FieldDefs->Add("F_String", ftString, 20, False); PvTable1->FieldDefs->Add("F_blob", ftBlob, 60, False); TFieldDef *FieldDef = PvTable1->FieldDefs->AddFieldDef(); FieldDef->Name="F_BCD"; FieldDef->DataType=ftBCD; FieldDef->Size=2; FieldDef->Precision=10; FieldDef->Required=False; PvTable1->IndexDefs->Clear(); PvTable1->IndexDefs-> Add("Index1","F_autoinc",TIndexOptions() <<ixPrimary << ixUnique); PvTable1->CreateTable();
TPvTable については、本章の以下のセクションを参照してください。
アプリケーションの、レコードのグループあるいはテーブル全体へのデータベース オペレーションを可能にします。この機能は、TBatchMove VCL コンポーネントと類似しています。
TPvTable については、本章の以下のセクションを参照してください。
InfoPower 互換性のために PDAC に含まれています。TPvTable から直接派生され、ControlType という追加のプロパティを持ちます。
|