|
Pervasive Btrieve Alignment ライブラリ(PALN32.DLL)は、Pervasive PSQL SDK に用意されています。このライブラリは、アライメント調整された構造体のパックや、データベースの行のアンパックに使用されます。
データベースをアクセス可能にするには、データ操作のためのデータ構造体が必要です。以下の項目を保存する必要があります。
Public Type CustRecType custid As Long lastname As String * 24 firstname As String * 24 address1 As String * 36 address2 As String * 36 city As String * 24 state As String * 2 zip As String * 10 homephone As String * 12 workphone As String * 12 status As Long member As Byte expiration As Long End Type
'Customer フィールド マップを初期化する DDF ファイルが存在する場合: SetFieldMapFromDDF DdfPath$, "Customers", "", "", _ CustFldMap, False DDF ファイルが存在しない場合: SetField CustFldMap(1), FLD_INTEGER, 4 'CustID SetField CustFldMap(2), FLD_STRING, 24 'LastName SetField CustFldMap(3), FLD_STRING, 24 'FirstName SetField CustFldMap(4), FLD_STRING, 36 'Address1 SetField CustFldMap(5), FLD_STRING, 36 'Address2 SetField CustFldMap(6), FLD_STRING, 24 'City SetField CustFldMap(7), FLD_STRING, 2 'State SetField CustFldMap(8), FLD_STRING, 10 'Zip SetField CustFldMap(9), FLD_STRING, 12 'HomePhone SetField CustFldMap(10), FLD_STRING, 12 'WorkPhone SetField CustFldMap(11), FLD_INTEGER, 4 'Status SetField CustFldMap(12), FLD_BYTE, 1 'Member SetField CustFldMap(13), FLD_INTEGER, 4 'Expiration
この操作を実行するには、ポジション ブロック、ファイル名、オーナーの3 つの情報が必要です。ポジション ブロックとして、長さ 128 バイトのバイト配列変数を作成することにより、メモリを割り当てる必要があります。ファイル名は後ろにヌル文字を付けてキー バッファーに格納し、オーナーも同様に後ろにヌル文字を付けてデータ バッファーに格納します。BTRCALL の DataSize パラメーターと KeySize パラメーターは、それぞれ最後に付けられたヌル文字も含む名前の長さに設定します。
ファイルを閉じる操作は簡単です。BCLOSE オペレーションを呼び出してポジション ブロックを渡すのみです。ステータスが返され、この操作が正しく完了したかどうかを確認できます。
ファイルを作成するには、新しい Btrieve ファイルの作成に必要な情報を含む構造体を作成する必要があります。
Type BtrFileSpec Length As Integer PageSize As Integer NumIndexes As Integer Reserved As Long FileFlags As Integer NumDupPtr As Byte NotUsed As Byte Allocation As Integer End Type ' ファイルのフラグを指定するために使用される定数: Global Const VAR_RECS = &h1 Global Const BLANK_TRUNC = &h2 Global Const PRE_ALLOC = &h4 Global Const DATA_COMP = &h8 Global Const KEY_ONLY = &h10 Global Const BALANCED_KEYS = &h20 Global Const FREE_10 = &h40 Global Const FREE_20 = &h80 Global Const FREE_30 = &hC0 Global Const DUP_PTRS = &h100 Global Const INCLUDE_SYSTEM_DATA = &h200 Global Const NO_INCLUDE_SYSTEM_DATA = &h1200 Global Const SPECIFY_KEY_NUMS = &h400 Global Const VATS_SUPPORT = &h800
挿入する行をデータ バッファに設定して BINSERT を呼び出すことにより、行の挿入が行えます。
行を更新するには、Get オペレーションまたは Step オペレーションを実行してカレンシーを確立する必要があります。完了後、その行は変更可能になります。
|