Btrieve API Guide

Pervasive PSQL v11
Btrieve API Guide
Developing Applications Using the Btrieve API
免責事項
Pervasive Software Inc. は、 本 ソ フ ト ウ ェ アお よ び ド キ ュ メ ン ト の使用を、 利用者ま た
はその会社に対 し て 「現状の ま ま」 で、 かつ同梱の使用許諾契約書に記載の契約条件
に よ っ てのみ許諾す る も のです。 Pervasive Software Inc. は、 いかな る 場合に も 本 ソ フ
ト ウ ェ アお よ び本マニ ュ アルに記載 さ れた内容に関す る その他の一切の保証を、 明示
的に も 黙示的に も 行い ません。 Pervasive Software Inc. は、 市場性、 権利、 特定の目的
に対す る 適合性、 あ る いは一連の取引業務や職業的な使用に関す る 問題な ど に対 し 、
一切の保証を行わない こ と を明示す る と と も に、 利用者お よ びその会社が こ れに同意
し た も の と し ます。
商標
Btrieve、 Client/Server in a Box、 Pervasive、 Pervasive Software お よ び Pervasive Software
の ロ ゴは、 Pervasive Software Inc. の登録商標です。
Built on Pervasive Software、 DataExchange、 MicroKernel Database Engine、 MicroKernel Database
Architecture、 Pervasive.SQL、 Pervasive PSQL、 Solution Network、 Ultralight、 ZDBA は Pervasive
Software Inc. の商標です。
Microsoft、 MS-DOS、 Windows、 Windows 95、 Windows 98、 Windows NT、 Windows Me、 Windows
2000、Windows 2003、Windows 2008、Windows 7、Windows 8、Windows Server 2003、Windows Server
2008、 Windows Server 2012、 Windows XP、 Win32、 Win32s、 お よ び Visual Basic は、 Microsoft
Corporation の登録商標です。
NetWare お よ び Novell は Novell, Inc. の登録商標です。
NetWare Loadable Module、 NLM、 Novell DOS、 Transaction Tracking System、 TTS は、 Novell, Inc.
の商標です。
Sun、 Sun Microsystems、 Java、 お よ び Sun、 Solaris、 Java を 含む す べ て の 商標 や ロ ゴ は、 Sun
Microsystems の商標ま たは登録商標です。
すべての会社名お よ び製品名は各社の商標ま たは登録商標です。
© Copyright 2013 Pervasive Software Inc. All rights reserved. こ のマニ ュ アルの全文、 一部に関わ り
な く 複製、 複写、 配布をす る こ と は、 前 も っ て発行者の書面に よ る 同意がない限 り 禁止 し ます。
本製品には、 Powerdog Industries に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。
© Copyright 1994 Powerdog Industries.All rights reserved.
本製品には、 KeyWorks Software に よ り 開発 さ れた ソ フ ト ウ ェ アが含まれてい ます。
© Copyright 2002 KeyWorks Software.All rights reserved.
本製品には、 DUNDAS SOFTWARE に よ り 開発 さ れた ソ フ ト ウ ェ アが含まれてい ます。
© Copyright 1997-2000 DUNDAS SOFTWARE LTD. All rights reserved.
本製品には、 Apache Software Foundation Foundation (http://www.apache.org/) に よ り 開発 さ れた ソ
フ ト ウ ェ アが含まれてい ます。
本製品では フ リ ー ソ フ ト ウ ェ ア の unixODBC Driver Manager を 使用 し て い ま す。 こ れは Peter
Harvey ([email protected]) に よ っ て作成 さ れ、 Nick Gorham ([email protected]) に よ
り 変更お よ び拡張 さ れ た も の に Pervasive Software が 一部修正 を 加 え た も の で す。 Pervasive
Software は、 unixODBC Driver Manager プ ロ ジ ェ ク ト の LGPL 使用許諾契約書に従っ て、 こ のプ
ロ ジ ェ ク ト の現在の保守管理者に そ の コ ー ド 変更 を 提供 し ま す。 unixODBC Driver Manager の
Web ページは www.unixodbc.org にあ り ます。 こ のプ ロ ジ ェ ク ト に関す る 詳細については、 現在
の保守管理者であ る Nick Gorham ([email protected]) にお問い合せ く だ さ い。
GNU Lesser General Public License (LGPL) は本製品の配布 メ デ ィ アに含まれてい ます。 LGPL は
www.fsf.org/licensing/licenses/lgpl.html で も 見 る こ と がで き ます。
Btrieve API Guide
2014 年 5 月
目次
こ のマニ ュ アルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
こ のマニ ュ アルの読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
こ のマニ ュ アルの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
表記上の規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
1
Btrieve API の紹介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Btrieve API 関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BTRV 関数 . . . . . .
BTRVID 関数 . . . .
BTRCALL 関数 . . .
BTRCALLID 関数 . .
BTRCALLID32 関数 .
旧バージ ョ ンの関数
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
2
3
Btrieve API 関数のパ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
5
6
6
7
7
8
Btrieve API オペレーシ ョ ンの要約 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
オペレーシ ョ ン コ ー ド
ス テー タ ス コ ー ド . .
ポジシ ョ ン ブ ロ ッ ク .
デー タ バ ッ フ ァ ー . .
デー タ バ ッ フ ァ ー長 .
キー バ ッ フ ァ ー . . . .
キー番号 . . . . . . . .
ク ラ イ ア ン ト ID . . . .
キー長 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
セ ッ シ ョ ン固有のオペレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
フ ァ イ ル固有のオペレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
サポー ト さ れないオペレーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Btrieve API オペレーシ ョ ンの実行におけ る 一連の イ ベン ト . . . . . . . . . . . . . . . . . . . . . . . . 13
2
Btrieve API オペ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Abort Transaction (21) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
17
17
Begin Transaction (19 ま たは 1019) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
18
19
19
Clear Owner (30) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
iii
目次
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
20
20
Close (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
21
21
21
Continuous Operation (42) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
パラ メ ーター .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
24
24
Create (14) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
25
26
36
37
Create Index (31) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
39
40
40
41
Delete (4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
42
42
42
43
Drop Index (32) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
44
44
44
44
45
End Transaction (20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
iv
目次
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ポジシ ョ ニ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Find Percentage (45) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
47
47
48
48
49
Get By Percentage (44) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
50
51
51
52
Get Direct/Chunk (23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
53
53
54
58
59
Get Direct/Record (23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
60
60
60
61
61
Get Directory (18) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
62
62
62
62
62
Get Equal (5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
63
64
Get First (12) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
パラ メ ーター
前提条件 . . .
手順 . . . . . .
結果 . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
65
65
v
目次
ポジシ ョ ニ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Get Greater (8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
67
67
67
67
68
Get Greater Than or Equal (9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
69
69
70
Get Key (+50) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
71
71
72
Get Last (13) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
73
73
73
74
Get Less Than (10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
75
75
75
75
76
Get Less Than or Equal (11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
77
77
77
77
78
Get Next (6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
79
79
80
Get Next Extended (36) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
vi
目次
詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
ポジシ ョ ニ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Get Position (22) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
87
87
87
87
87
Get Previous (7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
88
88
88
88
89
Get Previous Extended (37) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
90
90
90
91
91
91
Insert (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
92
92
92
92
93
Insert Extended (40) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
94
94
94
94
95
95
Login/Logout (78) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
パラ メ ーター .
前提条件 . . . .
ロ グ イ ン手順 .
ロ グ ア ウ ト 手順
結果 . . . . . . .
注記 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
97
97
97
97
97
97
98
Open (0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
vii
目次
詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
ポジシ ョ ニ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Reset (28) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
103
103
103
103
Set Directory (17) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
104
104
104
104
104
Set Owner (29) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
105
105
105
106
106
106
Stat (15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
107
107
107
110
110
Stat Extended (65) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
パラ メ ーター . . . . . . . . . . . . . . . . . . . . . . .
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . .
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
サブ フ ァ ン ク シ ョ ン 1 : 拡張フ ァ イ ル情報 . . . . . .
サブ フ ァ ン ク シ ョ ン 2 : シ ス テ ム デー タ 情報 . . . . .
サブ フ ァ ン ク シ ョ ン 3 : 重複レ コ ー ド に よ る 競合情報
サブ フ ァ ン ク シ ョ ン 4 : フ ァ イ ル情報 . . . . . . . . .
サブ フ ァ ン ク シ ョ ン 5 : ゲー ト ウ ェ イ 情報 . . . . . .
サブ フ ァ ン ク シ ョ ン 6 : ロ ッ ク オーナーの識別 . . .
サブ フ ァ ン ク シ ョ ン 7 : セキ ュ リ テ ィ 情報 . . . . . .
結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
111
111
111
112
113
114
116
116
118
121
Step First (33) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
122
122
122
122
122
目次
Step Last (34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
123
123
123
123
123
Step Next (24) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
124
124
124
124
124
Step Next Extended (38) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
125
125
125
125
126
127
Step Previous (35) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
128
128
128
128
128
Step Previous Extended (39) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
129
129
129
129
130
130
Stop (25) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
パラ メ ーター .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
131
131
131
131
Unlock (27) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
132
132
132
132
133
Update (3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
前提条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
ix
目次
結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
ポジシ ョ ニ ン グ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Update Chunk (53) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
詳細 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
136
136
136
136
141
141
Version (26) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
パラ メ ーター .
前提条件 . . . .
手順 . . . . . . .
結果 . . . . . . .
ポジシ ョ ニ ン グ
A
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
142
142
142
142
143
Btrieve オペ レーシ ョ ンのク ィ ッ ク リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . 145
Btrieve API オペレーシ ョ ン一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
x
こ のマニ ュ アルについて
こ のマニ ュ アルは、 Btrieve アプ リ ケーシ ョ ン プ ロ グ ラ ミ ン グ イ ン タ ーフ ェ イ ス (API) についての手引書です。
xi
こ のマニ ュ アルの読者
こ のマニ ュ アルは、 Pervasive PSQL に精通 し 、 Btrieve API を使用 し て アプ リ ケーシ ョ ン を開発す る ユーザーを対
象 と し てい ます。
xii
こ のマニ ュ アルの構成
こ のマニ ュ アルは、 以下の章に分かれてい ます。
„
第 1 章 「Btrieve API の紹介」
こ の章では、 Btrieve API 関数 と そのパ ラ メ ー タ ーの概要について説明 し ま す。 ま た、 Btrieve API オペ レ ー
シ ョ ンについて も 要約 し ます。
„
第 2 章 「Btrieve API オペレーシ ョ ン」
こ の章では、 Btrieve API オペレーシ ョ ンについて説明 し ます。
„
付録 A 「Btrieve オペレーシ ョ ンの ク ィ ッ ク リ フ ァ レ ン ス」
こ の付録では、 Btrieve API オペレーシ ョ ン を オペレーシ ョ ン コ ー ド 順で要約 し ます。
xiii
表記上の規則
特段の記述がない限 り 、 コ マ ン ド 構文、 コ ー ド 、 お よ びコ ー ド 例では、 以下の表記が使用 さ れます。
xiv
大文字小文字の
区別
通常、 コ マ ン ド と 予約語は、 大文字で表記 さ れ ま す。 Linux
を使用 し てい る か本書で別途記述がない限 り 、 こ れ ら の項目
は大文字、 小文字、 あ る いはそ の両方 を 使 っ て入力で き ま
す。 た と えば、 MYPROG、 myprog、 ま た は MYprog と 入力
す る こ と がで き ます。
太字
太字で表示 さ れ る 単語には次の よ う な も のが あ り ま す。 メ
ニ ュ ー名、 ダ イ ア ロ グ ボ ッ ク ス名、 コ マ ン ド 、 オプシ ョ ン、
ボ タ ン、 ス テー ト メ ン ト な ど。
固定幅フ ォ ン ト
固定幅フ ォ ン ト は、 コ マ ン ド 構文な ど、 ユーザーが入力す る
テ キ ス ト に使われます。
[ ]
省略可能な情報には、 [log_name] の よ う に、 角か っ こ が使
用 さ れます。角かっ こ で囲ま れていない情報は必ず指定す る
必要があ り ます。
|
縦棒は、 [file name | @file name] の よ う に、 入力す る 情報
の選択肢を表 し ます。
< >
<> は、 /D=<5|6|7> の よ う に、 必須項目に対す る 選択肢
を表 し ます。
変数
file name の よ う に斜体で表 さ れてい る 語は、 適切な値に置 き
換え る 必要のあ る 変数です。
...
[parameter...] の よ う に、 情報の後に省略記号が続 く 場合は、
その情報を繰 り 返 し 使用で き ます。
::=
記号 ::= は、 あ る 項目が別の項目用語で定義 さ れてい る こ と
を意味 し ま す。 た と えば、 a::=b は、 項目 a が b で定義 さ れ
てい る こ と を意味 し ます。
Btrieve API の紹介
1
Pervasive PSQL ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 高パフ ォーマ ン ス なデー タ 処理 と プ ロ グ ラ ミ ン グの生
産性向上を目的 と し て設計 さ れてい ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス オペレーシ ョ ン を使用する と 、
開発アプ リ ケーシ ョ ンではキー値、 あ る いはシーケ ン シ ャ ルま たは ラ ン ダ ム ア ク セ ス方法に基づいて、 レ コ ー ド
の取得、 挿入、 更新、 ま たは削除が行え る よ う にな り ます。
Btrieve API は、 以下のプ ロ グ ラ ミ ン グ言語お よ び開発環境 と 互換性があ り ます。
ˆ Embarcadero C/C++
ˆ Embarcadero Delphi
ˆ Micro Focus COBOL
ˆ Microsoft Visual Basic
ˆ Microsoft Visual C++
ˆ Watcom C/C++
こ の章では、 以下の項目について説明 し ます。
„
「Btrieve API 関数」
„
「Btrieve API 関数のパ ラ メ ー タ ー」
„
「Btrieve API オペレーシ ョ ンの要約」
„
「Btrieve API オペレーシ ョ ンの実行におけ る 一連の イ ベン ト 」
1
Btrieve API の紹介
Btrieve API 関数
Btrieve API は単一関数です。 こ の API では、 ほ と ん ど のプ ロ グ ラ ム動作が関数名ではな く オペレーシ ョ ン コ ー ド
パ ラ メ ー タ ーに よ っ て決定 さ れます。 アプ リ ケーシ ョ ンで使用する API は、 異な る プ ラ ッ ト フ ォーム間での コ ー
ド の移植性を重視す る か、 特定のプ ラ ッ ト フ ォームで可能な限 り 最高のパフ ォーマ ン ス を重視す る か を基準 と し
て選択 し て く だ さ い。
Btrieve アプ リ ケーシ ョ ンでは、 デー タ フ ァ イ ルに対 し て絶対に標準の I/O を実行 し ないで く だ さ い。 開発す る ア
プ リ ケーシ ョ ンでは、 Btrieve API 関数を使っ て、 すべての フ ァ イ ル I/O を実行する 必要があ り ます。
次に、 Btrieve API 関数の一覧を示 し ます。
表 1 Btrieve API 関数
関数
オペレーティング システム
説明
BTRV
すべて
オペ レ ーテ ィ ン グ シ ス テ ム間での完全な コ ー ド 互換性を得 る ために使用 し ま
す。 大部分の開発者に と っ て、 こ の利点はパフ ォーマ ン ス のわずかな低下を十
分に埋め合わせ る も のです。
BTRVID
Btrieve API 関数を呼び出す場合に必要 と な る 言語固有の構文を調べ る には、 『Pervasive PSQL Programmer's Guide』
の 「Btrieve API プ ロ グ ラ ミ ン グ」 を参照 し て く だ さ い。
BTRV 関数
BTRV に よ っ て、 アプ リ ケーシ ョ ンは ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス呼び出 し を実行で き る よ う にな り ま
す。 BTRV 関数は、 プ ロ グ ラ ミ ン グ イ ン タ ーフ ェ イ ス の イ ン ス ト ール オプシ ョ ンで提供 さ れ る すべての言語 イ ン
タ ーフ ェ イ ス モジ ュ ールでサポー ト さ れてい ます。 場合に よ っ て、 BTRV 関数は実際に BTRCALL 関数を呼び出
す こ と があ り ます。 し か し なが ら 、 プ ラ ッ ト フ ォームに依存 し ない と い う こ と か ら 、 BTRV 関数の方が よ り 好ま
し いで し ょ う 。
BTRVID 関数
BTRVID に よ っ て、 ア プ リ ケーシ ョ ン は ク ラ イ ア ン ト ID パ ラ メ ー タ ー を含む単独の ト ラ ン ザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス呼び出 し を実行で き る よ う にな り ます。 こ のパ ラ メ ー タ ーはアプ リ ケーシ ョ ンで制御で き ます。 ア
プ リ ケーシ ョ ンでは BTRVID を使っ て、自分自身を ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に対す る 複数の ク ラ イ
ア ン ト ID と し て割 り 当て、ほかの ク ラ イ ア ン ト の状態に影響を与え る こ と な く 、各 ク ラ イ ア ン ト のオペレーシ ョ
ン を実行す る こ と がで き ます。 詳細については、 「 ク ラ イ ア ン ト ID」 を参照 し て く だ さ い。
DOS アプ リ ケーシ ョ ンでは、 /T オプシ ョ ンに適切な値を指定 し て DOS リ ク エ ス タ ーを ロ ー ド す る 必要があ り ま
す。 /T には、 アプ リ ケーシ ョ ン内で使用す る ク ラ イ ア ン ト ID の数に等 し い値を設定 し ます。 DOS リ ク エ ス タ ー
の詳細については、 Pervasive の 『Getting Started with Pervasive PSQL』 マニ ュ アルを参照 し て く だ さ い。
BTRCALL 関数
Windows と Linux の場合、 BTRCALL お よ び BTRCALL32 は BTRV 関数に相当 し ます。 BTRV で発生す る 若干の
パフ ォーマ ン ス低下が問題にな ら ない限 り 、 BTRCALL ではな く BTRV 関数を使用す る よ う に し て く だ さ い。
BTRCALLID 関数
ク ラ イ ア ン ト レベルの制御が必要で、アプ リ ケーシ ョ ンが Windows ま たは Linux で動作する 場合は、BTRCALLID
関数を使用 し ます。
中間関数を呼び出 さ ない こ と 以外は、 こ の関数は BTRVID 関数に類似 し てい ます。
BTRCALLID32 関数
BTRCALLID32 関数は BTRCALLID 関数 と 同 じ です。
2
Btrieve API 関数
旧バージ ョ ンの関数
次の関数は、以前のバージ ョ ンの Btrieve API に対応 し て作成 さ れた古いアプ リ ケーシ ョ ン と の互換性を維持す る
ためだけにサポー ト さ れてい ます。
„
BTRCALLBACK
„
BTRVINIT
„
BTRVSTOP
„
RQSHELLINIT
„
WBRQSHELLINIT
„
WBTRVINIT
„
WBTRVSTOP
„
BRQSHELLINIT
現在のバージ ョ ン では こ れ ら の関数を使用 し ませんが、 こ れ ら の関数を呼び出す古いアプ リ ケーシ ョ ンは v6.15
以降の MicroKernel で も 正常に実行 さ れます。
3
Btrieve API の紹介
Btrieve API 関数のパラ メ ー タ ー
呼び出 し のたびにすべてのパ ラ メ ー タ ーを入力する 必要があ り ますが、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で
はオペレーシ ョ ンのたびにすべてのパ ラ メ ー タ ーが使用 さ れ る わけではあ り ません。 場合に よ っ ては、 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス ではそれ ら の値が無視 さ れます。 一般に、 それぞれのオペレーシ ョ ン では異な る パ
ラ メ ー タ ーが送 ら れ、 返 さ れます。 第 2 章 「Btrieve API オペレーシ ョ ン」 で、 各 Btrieve API オペレーシ ョ ンに
関連す る パ ラ メ ー タ ーについて詳 し く 説明 し ます。
メ モ C 開発者:C 言語 イ ン タ ーフ ェ イ ス で使用 さ れ る プ ラ ッ ト フ ォームに依存 し ないデー タ 型 と ポ イ ン タ ー
については、 BTITYPES.H を参照 し て く だ さ い。
Btrieve API 関数のパ ラ メ ー タ ーを以下に示 し ます。
„
「オペレーシ ョ ン コ ー ド 」
„
「ス テー タ ス コ ー ド 」 (BASIC と COBOL のみ)
„
「ポジシ ョ ン ブ ロ ッ ク 」
„
「デー タ バ ッ フ ァ ー」
„
「デー タ バ ッ フ ァ ー長」
„
「キー バ ッ フ ァ ー」
„
「キー番号」
„
「 ク ラ イ ア ン ト ID」 (BTRVID と BTRCALLID 関数のみ)
„
「キー長」 (BTRCALL、 BTRCALLID、 BTRCALL32、 BTRCALLID32 関数のみ)
オペ レーシ ョ ン コ ー ド
オペレーシ ョ ン コ ー ド パ ラ メ ー タ ーは、 Btrieve API 関数に よ っ て実行 さ れ る 動作を決定 し ます。 た と えば、 1 つ
ま たは複数の レ コ ー ド の読み取 り 、 書 き 込み、 削除、 更新な ど のオペレ ーシ ョ ン です。 アプ リ ケーシ ョ ン では、
すべての Btrieve API 呼び出 し に対 し て有効なオペレーシ ョ ン コ ー ド を指定す る 必要があ り ます。ト ラ ンザ ク シ ョ
ナル イ ン タ ー フ ェ イ ス がオペ レ ーシ ョ ン コ ー ド を 変更す る こ と は あ り ま せん。 指定す る 変数の値は、 第 2 章
「Btrieve API オペレーシ ョ ン」 に示 さ れてい る Btrieve API の正 し いオペレーシ ョ ン コ ー ド のいずれかでなければ
な り ません。
メ モ C 開発者 : 指定す る 変数は BTI_WORD 型 (符号な し short integer) でなければな ら ず、 値渡 し す る 必要
があ り ます。
ス テー タ ス コ ー ド
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、符号付き 整数 と し て ス テー タ ス コ ー ド を返 し ます。 ほ と ん ど のプ ロ グ
ラ ミ ン グ環境で、 ス テー タ ス コ ー ド は Btrieve API 関数呼び出 し の戻 り 値です。 ただ し 、 一部の BASIC お よ び
COBOL 言語 イ ン タ ーフ ェ イ ス では、 ス テー タ ス コ ー ド パ ラ メ ー タ ーが必要 と な り ます。 こ のパ ラ メ ー タ ーは 2
バ イ ト の整数で、 オペレーシ ョ ンの実行中に何 ら かのエ ラ ーが発生 し たか ど う か を示す コ ー ド 化 さ れた値を含み
ます。 Btrieve API 呼び出 し の終了後、 アプ リ ケーシ ョ ンでは ス テー タ ス変数の値を必ずチ ェ ッ ク し 、 その呼び出
し が正常に終了 し たか ど う か を確認す る 必要があ り ます。
Pervasive PSQL コ ン ポーネ ン ト に よ っ て、 呼び出 し か ら API へス テー タ ス コー ド が返 さ れます。 こ れ ら の API に
書 き 込む場合は、 以下の 3 つの状態に対 し て処理を行 う 必要があ り ます。
„
API の成功
„
予期 さ れた API の失敗
„
予期 さ れなか っ た API の失敗
4
Btrieve API 関数のパラ メ ー タ ー
以下は、 3 つすべての状態を処理す る C コ ー ド の例です。
status = BTRVID(B_VERSION, posBlock1, &versionBuffer, &dataLen, keyBuf1, keyNum,
(BTI_BUFFER_PTR) &clientID);
if (status == B_NO_ERROR)
{
/* 通常のオペレーシ ョ ン を続行 */
status = BTRVID(...);
}
else if (status == B_RECORD_MANAGER_INACTIVE)
{
/* 予期 さ れたエ ラ ーの処理 */
printf("Btrieve Get Version() returned B_RECORD_MANAGER_INACTIVE\n");
}
else
{
/* 予期 さ れなか っ たエ ラ ー */
printf("Btrieve Get Version() returned %d\n", status);
} /* 別の場合は終了 */
こ の ス テー タ ス コ ー ド の処理方法に従 う と 、 Pervasive Software がお使いのアプ リ ケーシ ョ ンの将来的な安定性を
確保す る 上で役立ち ます。 Pervasive Software は、 製品を改良 し 続け る ために、 開発者か ら の フ ィ ー ド バ ッ ク を奨
励 し 、 こ れを反映 さ せてい ます。 た と えば、 Pervasive PSQL 7 では、 ス テー タ ス コ ー ド 20 はカ ス タ マーの フ ィ ー
ド バ ッ ク に応 じ て さ ら にい く つかの ス テー タ ス コ ー ド に分かれてい ま し た。 こ こ で示 し た よ う に ス テー タ ス情報
を処理 し てい る アプ リ ケーシ ョ ンは、 こ の よ う な拡張に速やかに対応す る こ と がで き ます (ス テー タ ス コ ー ド の
区分に関す る 詳細については、 『Status Codes and Messages』 を参照 し て く だ さ い)。
ポジ シ ョ ン ブ ロ ッ ク
ポジ シ ョ ン ブ ロ ッ ク パ ラ メ ー タ ーは、 128 バ イ ト 配列のア ド レ ス で、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が
フ ァ イ ル I/O 構造体や Open (0) オペレーシ ョ ンに関連する ポジシ ョ ニ ン グ情報を格納す る ために使用 さ れます。
アプ リ ケーシ ョ ンは、 フ ァ イ ルを開 く たびに、 固有のポジシ ョ ン ブ ロ ッ ク を割 り 当て る 必要があ り ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 アプ リ ケーシ ョ ンが Open オペレーシ ョ ン を実行す る 際にポジシ ョ ン
ブ ロ ッ ク を初期化 し 、 その後フ ァ イ ルの操作中に こ のポジシ ョ ン ブ ロ ッ ク を参照 し て更新 し ます。 こ のため、 ア
プ リ ケーシ ョ ンでは、 その フ ァ イ ルに対す る 以降すべての Btrieve API オペレーシ ョ ン で同 じ ポジ シ ョ ン ブ ロ ッ
ク を指定す る 必要があ り ます。
メ モ ポジシ ョ ン ブ ロ ッ ク への書 き 込みを行っ てはいけ ません。 書 き 込みを行 う と 、 ポジシ ョ ン喪失エ ラ ー
やその他のエ ラ ー、 あ る いはフ ァ イ ルの損傷な ど の原因 と な り ます。
一度に複数の フ ァ イ ルを開 く 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ スはポジシ ョ ン ブ ロ ッ ク を使っ て、特定
の呼び出 し で対象 と な る フ ァ イ ルを判別 し ます。 同様に、 同 じ フ ァ イ ルを複数回開 く 場合、 ト ラ ンザ ク シ ョ ナル
イ ン タ ーフ ェ イ ス は Open オペレーシ ョ ン ご と にそれぞれ異な る ポジ シ ョ ン ブ ロ ッ ク を使用 し ます。 さ ら に、 ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、同 じ フ ァ イ ルを開 く ク ラ イ ア ン ト ご と に も 別個のポジシ ョ ン ブ ロ ッ ク を
使用 し ます。 複数の ク ラ イ ア ン ト でポジシ ョ ン ブ ロ ッ ク を共有す る こ と はで き ません。
デー タ バ ッ フ ァ ー
アプ リ ケーシ ョ ン では、 デー タ バ ッ フ ァ ーを使用 し て フ ァ イ ル と のデー タ のや り 取 り を行い ます。 デー タ バ ッ
フ ァ ーを使っ て ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス と の間でや り 取 り さ れ る 情報は、実行 さ れ る Btrieve API オ
ペレーシ ョ ンに よ っ て異な り ます。 し ば し ば、 デー タ バ ッ フ ァ ーには、 アプ リ ケーシ ョ ン と フ ァ イ ルの間で相互
に転送 さ れ る 1 つま たは複数の レ コ ー ド が格納 さ れてい ます。 し か し 、 Btrieve API オペレーシ ョ ン に よ っ ては、
フ ァ イ ル仕様やキー仕様、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス のバージ ョ ン情報な ど、 その他の情報がデー タ
バ ッ フ ァ ーに格納 さ れ る こ と も あ り ます。
5
Btrieve API の紹介
必ず、 フ ァ イ ル内の最長 レ コ ー ド を収容で き る だけの長 さ のデー タ バ ッ フ ァ ーを割 り 当て て く だ さ い。 デー タ
バ ッ フ ァ ーの割 り 当てサ イ ズ よ り も 大 き な値をデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに指定 し た場合、 ト ラ ン ザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス変更オペレーシ ョ ンに よ っ て、デー タ バ ッ フ ァ ーの後に続 く デー タ が破壊 さ れ る 可能
性があ り ます。
デー タ バ ッ フ ァ ー長
デー タ バ ッ フ ァ ーを必要 と す る オペレーシ ョ ンでは、 アプ リ ケーシ ョ ンはデー タ バ ッ フ ァ ーのサ イ ズ (バ イ ト 単
位) を示す変数を渡す必要があ り ます。 こ のデー タ バ ッ フ ァ ーは、 オペレーシ ョ ンに よ っ て返 さ れ る デー タ を十
分格納で き る だけの大 き さ でなければな り ません。
メ モ BASIC 開発者 : デー タ バ ッ フ ァ ー長パ ラ メ ー タ ー と し て、 ByRef の長整数を渡す必要があ り ます。
C、 COBOL、 Pascal の開発者 : デー タ バ ッ フ ァ ー長パ ラ メ ー タ ー と し て、 2 バ イ ト の符号な し 整数へのポ イ
ン タ ーを渡す必要があ り ます。
可変長レ コ ー ド を含むフ ァ イ ルに レ コ ー ド を挿入 し た り 、そのフ ァ イ ルを更新す る 場合、デー タ バ ッ フ ァ ー長は、
フ ァ イ ルを最初に作成 し た と き に指定 し た レ コ ー ド 長に、 固定長部分を超えて含まれ る 文字数を加算 し た値 と 等
し く なければな り ません。 可変長レ コ ー ド を取得す る 場合、 デー タ バ ッ フ ァ ー長はフ ァ イ ル内の最長レ コ ー ド に
対応で き る 長 さ であ る 必要があ り ます。 1 件の レ コ ー ド が 64 KB よ り 長い場合は、 レ コ ー ド の部分を操作す る た
めにチ ャ ン ク オペレーシ ョ ン を使用す る 必要があ り ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに よ っ て、 デー タ バ ッ フ ァ ーに使用
可能な スペース量を判断 し ます。割 り 当てたデー タ バ ッ フ ァ ー よ り 長いデー タ バ ッ フ ァ ー長を渡す と 、 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て メ モ リ が上書 き さ れ る 場合があ り ます。デー タ バ ッ フ ァ ー長は、実際に割
り 当て ら れたデー タ バ ッ フ ァ ーのサ イ ズ を常に正確に表す よ う に し て く だ さ い。
キー バ ッ フ ァ ー
Btrieve API オペレーシ ョ ンでキー バ ッ フ ァ ーが使用 さ れない場合で も 、 アプ リ ケーシ ョ ンは各 Btrieve オペレー
シ ョ ンにキー バ ッ フ ァ ー パ ラ メ ー タ ーを渡す必要があ り ます。 オペレーシ ョ ンに よ っ ては、 アプ リ ケーシ ョ ンが
キー バ ッ フ ァ ーのデー タ を設定す る 場合や、 Btrieve API 関数が こ れを返す場合があ り ます。
メ モ BASIC 開発者 : キー バ ッ フ ァ ー パ ラ メ ー タ ー と し て文字列を渡す必要があ り ます。 キー値が整数であ
る 場合、 アプ リ ケーシ ョ ンでは Btrieve API 関数を呼び出す前に、 MKI$ ス テー ト メ ン ト を使用 し て キー値を
文字列に変換 し てお く 必要があ り ます。 キーが複数のセグ メ ン ト か ら 構成 さ れてい る 場合は、 それ ら を結合
し て 1 つの文字列変数に し 、 その変数を キー バ ッ フ ァ ー と し て渡す必要があ り ます。
キー バ ッ フ ァ ー と し て渡 し た文字列変数がキーの定義 さ れた長 さ よ り 短い場合、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス か ら エ ラ ーが返 さ れます。 アプ リ ケーシ ョ ンの最初の呼び出 し がキー バ ッ フ ァ ーの初期化を必
要 と し ない場合は、 文字列変数に SPACE$(x) の値を割 り 当て ます。 こ こ で x は、 キーの定義 さ れてい る 長 さ
を表 し ます。 アプ リ ケーシ ョ ンが文字列変数に BASIC の何 ら かの値を割 り 当て る ま で、 その長 さ は 0 にな り
ます。
C 開発者 : キ ー バ ッ フ ァ ー パ ラ メ ー タ ー と し て キ ー値 を 含む変数の ア ド レ ス を 渡す必要が あ り ま す。
BTITYPES.H フ ァ イ ルは、 キー バ ッ フ ァ ーを VOID ポ イ ン タ ー (BTI_VOID_PTR) と し て定義 し てい ます。
必要に応 じ て、 アプ リ ケーシ ョ ンでキー バ ッ フ ァ ーのデー タ 型を定義で き ます。
COBOL 開発者 : キー バ ッ フ ァ ー パ ラ メ ー タ ー と し て レ コ ー ド 変数を渡す必要があ り ます。 キーが複数のセ
グ メ ン ト か ら 構成 さ れてい る 場合は、 01 レベルの レ コ ー ド 下の個別フ ィ ール ド と し て、 それ ら を正 し い順序
で リ ス ト し ます。 こ れで、 レ コ ー ド 全体を キー バ ッ フ ァ ー と し て渡す こ と がで き ます。
6
Btrieve API 関数のパラ メ ー タ ー
Pascal 開発者 : キー バ ッ フ ァ ー パ ラ メ ー タ ー と し て キー値を含む変数を渡す必要があ り ます。 キーが複数
のセグ メ ン ト か ら 構成 さ れてい る 場合は、 レ コ ー ド 構造体を使っ て キーに含まれ る 個々の フ ィ ール ド を定義
し ます。
ほ と ん ど の環境で、 アプ リ ケーシ ョ ンが Btrieve API 呼び出 し を実行する と き 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス はキー バ ッ フ ァ ー長を決め る こ と がで き ません。 こ のため、 バ ッ フ ァ ーは少な く と も 、 キーを最初に作成 し
た と き に指定 し た キー長 と 同 じ だけの長 さ があ る よ う に し て く だ さ い。 そ う でない と 、 Btrieve API オペレーシ ョ
ンに よ り 、 メ モ リ 内でキー バ ッ フ ァ ーの後に格納 さ れてい る デー タ が破壊 さ れ る 可能性があ り ます。 キーの最大
長は 255 なので、 常に 255 バ イ ト のキー バ ッ フ ァ ーにす る こ と をお勧め し ます。
キー番号
キー番号パ ラ メ ー タ ーで渡 さ れ る 情報は、 実行 し てい る オペレーシ ョ ン に よ っ て異な り ま す。 ほ と ん ど の場合、
キー番号には、 特定のオペレーシ ョ ンが最高 119 あ る キー (ア ク セ ス) パ ス の う ちの どれに従っ てい る か を示す
値が含まれます。 し か し 、 フ ァ イ ルを開 く と き のモー ド を示す値な ど、 その他の情報がキー番号パ ラ メ ー タ ーか
ら 渡 さ れた り 、 キー番号パ ラ メ ー タ ーに返 さ れ る 場合 も あ り ます。
BTRV お よ び BTRVID 関 数 で は、 キ ー 番 号 パ ラ メ ー タ ー は 2 バ イ ト 整 数 で す。 BTRCALL、 BTRCALLID、
BTRCALL32、 お よ び BTRCALLID32 関数では、 キー番号パ ラ メ ー タ ーは 1 バ イ ト の符号付 き 文字 (BTI_CHAR)
です。 すべての関数で、 キー番号パ ラ メ ー タ ーは 0 か ら 118 ま での範囲の値 と な り ます。 Btrieve API 関数がキー
番号パ ラ メ ー タ ーを変更す る こ と はあ り ません。
ク ラ イ ア ン ト ID
ク ラ イ ア ン ト ID パ ラ メ ー タ ーは、 BTRVID 関数お よ び BTRCALLID 関数でのみ使用 さ れます。 ク ラ イ ア ン ト ID
パ ラ メ ー タ ーは、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が コ ン ピ ュ ー タ ー上の ク ラ イ ア ン ト を区別で き る よ う に
す る 16 バ イ ト 構造体のア ド レ ス です。 ク ラ イ ア ン ト ID には次の よ う な構造体を使用 し ます。
表 2 ク ラ イ ア ン ト ID 構造体
要素
Filler (フ ィ ラ ー)
Service Agent ID
(サービス エージェン
ト ID)
長さ
(バイ ト 単位)
12
2
説明
0 に初期化 し ます。
ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス に対す る ア プ リ ケーシ ョ ン の各 イ ン ス タ ン
ス を識別 し ます。こ れは 2 文字の ASCII 値です。こ の ID の値は ASCII 値の AA(0x41
0x41) よ り 大 き いか等 し く なければな り ません。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス は次の値に特殊な意味を持たせてい ます。
0x4140 (@A)
内部処理に使用 さ れます。
0xFFFF
内部処理に使用 さ れます。
0x4952 (RI)
内部処理に使用 さ れます。
0x5244 (DR)
内部処理に使用 さ れます。
0x4553
0x4353
0x4344
0x4544
0x5544
Scalable SQL に よ っ て生成 さ れた ク ラ イ ア ン ト を
識別す る ために使用 さ れます。
(SE)
(SC)
(DC)
(DE)
(DU)
7
Btrieve API の紹介
表 2 ク ラ イ ア ン ト ID 構造体
要素
長さ
(バイ ト 単位)
説明
0x5257 (WR)
Client Identifier
(クライアント識別子)
2
Btrieve リ ク エ ス タ ーに よ っ て使用 さ れます。
アプ リ ケーシ ョ ンの現在の イ ン ス タ ン ス内で ク ラ イ ア ン ト ID を確立 し ます。 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 こ の一意な識別子を、 並行処理お よ び ト ラ ン
ザ ク シ ョ ン処理のために使用 し ます。
キー長
キー長パ ラ メ ー タ ーは、 BTRCALL、 BTRCALLID、 BTRCALL32 お よ び BTRCALLID32 関数でのみ使用 さ れます。
こ れ ら の関数を使用す る 場合は、 キー長パ ラ メ ー タ ー と し て、 割 り 当て ら れた キー バ ッ フ ァ ー長の値を含む符号
な し の文字 (BTI_BYTE) を渡す必要があ り ます。 指定で き る 最大長は 255 です (キーの最大長)。
8
Btrieve API オペ レーシ ョ ンの要約
Btrieve API オペ レーシ ョ ンの要約
Btrieve API には、 アプ リ ケーシ ョ ン プ ロ グ ラ ム か ら 呼び出せ る 40 以上のオペレーシ ョ ン が用意 さ れてい ます。
以下の表に、 こ れ ら のオペレーシ ョ ンの要約を示 し ます。 Btrieve API オペレーシ ョ ンの詳細については、 第 2 章
「Btrieve API オペレーシ ョ ン」 を参照 し て く だ さ い。 オペレーシ ョ ン コ ー ド で指示す る Btrieve API オペレーシ ョ
ンの要約については、 付録 A 「Btrieve オペレーシ ョ ンの ク ィ ッ ク リ フ ァ レ ン ス」 を参照 し て く だ さ い。
セ ッ シ ョ ン固有のオペ レーシ ョ ン
次のオペレーシ ョ ン を使用す る と 、 現在のデ ィ レ ク ト リ の設定 と 取得、 ワ ー ク ス テーシ ョ ン ト ラ ンザ ク シ ョ ナル
イ ン タ ーフ ェ イ ス のシ ャ ッ ト ダ ウ ン、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス バージ ョ ン番号の取得、 サーバー
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に接続 さ れてい る ク ラ イ ア ン ト の終了、 ト ラ ンザ ク シ ョ ンの開始、 終了ま
たは中止 と い っ た処理を実行で き ます。複数の ク ラ イ ア ン ト を処理す る アプ リ ケーシ ョ ンでは、こ れ ら のオペレー
シ ョ ンは呼び出 し 元の ク ラ イ ア ン ト に固有の も の と な り ます。
表 3 セ ッ シ ョ ン固有のオペ レーシ ョ ン
オペレーシ ョ ン
コー ド
説明
Set Directory
17
現在のデ ィ レ ク ト リ を指定 さ れたパ ス名に設定 し ます。
Get Directory
18
指定 さ れた論理デ ィ ス ク ド ラ イ ブの現在のデ ィ レ ク ト リ を返 し ます。
Stop
25
ワー ク ス テーシ ョ ン ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス を終了 し ます (サーバー ベース
の ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では使用で き ません)。
Version
26
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス のバージ ョ ン番号を返 し ます。
Reset
28
ク ラ イ ア ン ト に よ っ て保持 さ れてい る すべての リ ソ ース を解放 し ます。
Begin Transaction
19
1019
論理的に関連 し てい る 一連のオペレーシ ョ ンの開始を指定 し ます。 オペレーシ ョ ン 19 は排
他 ト ラ ンザ ク シ ョ ン を開始 し ます。 オペレーシ ョ ン 1019 は並行 ト ラ ンザ ク シ ョ ン を開始 し
ます。
End Transaction
20
論理的に関連 し てい る 一連のオペレーシ ョ ンの終了を指定 し ます。
Abort Transaction
21
完了 し なかっ た ト ラ ンザ ク シ ョ ン中に実行 さ れたオペレーシ ョ ン を取 り 消 し ます。
フ ァ イル固有のオペ レーシ ョ ン
次のオペレーシ ョ ンは特定の フ ァ イ ルを取 り 扱い ます。 こ のため、 操作対象 と な る フ ァ イ ルを識別す る ためにポ
ジシ ョ ン ブ ロ ッ ク パ ラ メ ー タ ーが使用 さ れます。フ ァ イ ル固有のオペレーシ ョ ンは次の 3 つの タ イ プに分類 さ れ
ます。
„
フ ァ イル ア ク セス と 情報。 こ れ ら のオペレーシ ョ ン では、 フ ァ イ ルの作成、 フ ァ イ ルの開閉、 フ ァ イ ル統計
情報の取得、 フ ァ イ ルのオーナー ネームの設定 と 削除、 フ ァ イ ルに対す る Continuous オペレーシ ョ ン モー
ド の開始 と 終了、 フ ァ イ ルの ロ ッ ク 解除、 フ ァ イ ルに対す る イ ンデ ッ ク ス の作成 と 削除 と いっ た処理を実行
で き ます。
„
デー タ 取得。 こ れ ら のオペレーシ ョ ン では、 指定 し た条件に基づいて単一レ コ ー ド ま たは レ コ ー ド のセ ッ
ト を取得す る こ と がで き ます。 Btrieve API は、 イ ンデ ッ ク ス パス に よ る 論理的位置、 ま たは物理的位置に基
づ く デー タ 検索を サポー ト し てい ます。 詳細については、 『Pervasive PSQL Programmer's Guide』 の 「レ コ ー
ド へのア ク セ ス」 を参照 し て く だ さ い。
さ ら に、 オペレーシ ョ ン コ ー ド にバ イ ア ス を適用 し て、 マルチ ク ラ イ ア ン ト 状況にあ る フ ァ イ ルやレ コ ー ド
の ロ ッ ク を制御す る こ と も で き ます。 詳細については、 『Pervasive PSQL Programmer's Guide』 の 「複数の ク
ラ イ ア ン ト のサポー ト 」 を参照 し て く だ さ い。
„
デー タ 操作。 こ れ ら のオペレーシ ョ ンでは、 デー タ の挿入、 更新、 ま たは削除が行え ます。
9
Btrieve API の紹介
表 4 フ ァ イル ア ク セスおよび情報オペ レーシ ョ ン
オペレーシ ョ ン
コー ド
説明
Open
0
フ ァ イ ルを ア ク セ ス可能な状態に し ます。
Close
1
フ ァ イ ルを ア ク セ ス可能な状態か ら 解放 し ます。
Create
14
指定 さ れた特性を持つフ ァ イ ルを作成 し ます。
Stat
15
フ ァ イ ルお よ び イ ンデ ッ ク ス の特性 と レ コ ー ド の数を返 し ます。
Stat Extended
65
拡張フ ァ イ ルの構成要素のパス と フ ァ イ ル名を返 し 、フ ァ イ ルがシ ス テ ム定義の ロ グ キーを
使用 し てい る か ど う かを報告 し ます。
Set Owner
29
フ ァ イ ルにオーナー ネーム を割 り 当て ます。
Clear Owner
30
フ ァ イ ルか ら オーナー ネーム を削除 し ます。
Continuous
Operation
42
ア ク テ ィ ブな ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス フ ァ イ ルを閉 じ ずに、 シ ス テ ム バ ッ ク
ア ッ プ を実行で き る よ う に し ます。
Unlock
27
レ コ ー ド の ロ ッ ク を解除 し ます。
Create Index
31
イ ンデ ッ ク ス を作成 し ます。
Drop Index
32
イ ンデ ッ ク ス を削除 し ます。
表 5 デー タ 取得オペ レーシ ョ ン
オペレーシ ョ ン
コー ド
説明
イ ンデ ッ ク ス ベースの (論理) デー タ 取得
Get Equal
5
指定 さ れた イ ンデ ッ ク ス パス内で、指定 さ れた キー値 と 合致す る キー値を持つ最初の レ コ ー
ド を返 し ます。
Get Next
6
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の次にあ る レ コ ー ド を返 し ます。
Get Previous
7
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の前にあ る レ コ ー ド を返 し ます。
Get Greater Than
8
指定 さ れた イ ンデ ッ ク ス パス内で、指定 さ れた キー値 よ り 大 き いキー値を持つ最初の レ コ ー
ド を返 し ます。
Get Greater Than or
Equal
9
指定 さ れた イ ンデ ッ ク ス パス内で、指定 さ れた キー値 よ り 大 き い ま たは等 し いキー値を持つ
最初の レ コ ー ド を返 し ます。
Get Less Than
10
指定 さ れた イ ンデ ッ ク ス パス内で、指定 さ れた キー値 よ り 小 さ いキー値を持つ最初の レ コ ー
ド を返 し ます。
Get Less Than or
Equal
11
指定 さ れた イ ンデ ッ ク ス パス内で、指定 さ れた キー値 よ り 小 さ い ま たは等 し いキー値を持つ
最初の レ コ ー ド を返 し ます。
Get First
12
指定 さ れた イ ンデ ッ ク ス パス の先頭の レ コ ー ド を返 し ます。
Get Last
13
指定 さ れた イ ンデ ッ ク ス パス の末尾の レ コ ー ド を返 し ます。
Get Next Extended
36
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の次にあ る 1 つま たは複数の レ コ ー ド を返 し ます。フ ィ
ル タ ー条件を適用で き ます。
10
Btrieve API オペ レーシ ョ ンの要約
表 5 デー タ 取得オペ レーシ ョ ン
オペレーシ ョ ン
Get Previous
Extended
コー ド
説明
37
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の前にあ る 1 つま たは複数の レ コ ー ド を返 し ます。フ ィ
ル タ ー条件を適用で き ます。
+50
実際の レ コ ー ド を返す こ と な く 、 フ ァ イ ル内に特定のキー値が存在す る か ど う か を検出 し ま
す。
Get By Percentage
44
指定 さ れたパーセ ン テージ値に よ っ て示 さ れ る 位置の最 も 近 く にあ る レ コ ー ド を返 し ます。
Find Percentage
45
フ ァ イ ル内におけ る 現在の レ コ ー ド 位置に基づいたパーセ ン テージ値を返 し ます。
Get Key
非イ ンデ ッ ク ス ベースの (物理) デー タ 取得
Get Position
22
現在の レ コ ー ド の位置を返 し ます。
Get Direct/Chunk
23
指定 さ れた位置にあ る レ コ ー ド の指定部分 (チ ャ ン ク ) か ら デー タ を返 し ます。
Get Direct/Record
23
指定 さ れた位置にあ る レ コ ー ド を返 し ます。
Step Next
24
物理的に現在の レ コ ー ド の次にあ る レ コ ー ド を返 し ます。
Step First
33
フ ァ イ ル内で物理的な先頭位置にあ る レ コ ー ド を返 し ます。
Step Last
34
フ ァ イ ル内で物理的な末尾位置にあ る レ コ ー ド を返 し ます。
Step Previous
35
物理的に現在の レ コ ー ド の前にあ る レ コ ー ド を返 し ます。
Step Next Extended
38
物理的に現在の レ コ ー ド の次の位置か ら 1 つ ま た は複数の連続す る レ コ ー ド を 返 し ま す。
フ ィ ル タ ー条件を適用で き ます。
Step Previous
Extended
39
物理的に現在の レ コ ー ド の前の位置か ら 1 つ ま た は複数の連続す る レ コ ー ド を 返 し ま す。
フ ィ ル タ ー条件を適用で き ます。
Get By Percentage
44
指定 さ れたパーセ ン テージ値に よ っ て示 さ れ る 位置の最 も 近 く にあ る レ コ ー ド を返 し ます。
Find Percentage
45
フ ァ イ ル内におけ る 現在の レ コ ー ド 位置に基づいたパーセ ン テージ値を返 し ます。
並行制御バイ ア ス (適切なオペレーシ ョ ン コ ー ド に追加)
単一 レ コ ー ド の
読み取 り ウ ェ イ
ト ロック
+100
一度に 1 つの レ コ ー ド だけ を ロ ッ ク し ます。 レ コ ー ド が既に ロ ッ ク さ れてい る 場合、 ク ラ イ
ア ン ト に よ っ てオペレーシ ョ ンが再試行 さ れます。
単一 レ コ ー ド の
読み取 り ノ ー
ウェイ ト ロッ ク
+200
一度に 1 つの レ コ ー ド だけ を ロ ッ ク し ます。 レ コ ー ド が既に ロ ッ ク さ れてい る 場合、 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら エ ラ ー ス テー タ ス コ ー ド が返 さ れ ます。
複数 レ コ ー ド の
読み取 り ウ ェ イ
ト ロック
+300
同一フ ァ イ ルの複数の レ コ ー ド を並行的に ロ ッ ク し ます。 レ コ ー ド が既に ロ ッ ク さ れてい る
場合、 ク ラ イ ア ン ト に よ っ てオペレーシ ョ ンが再試行 さ れます。
複数 レ コ ー ド の
読み取 り ノ ー
ウェイ ト ロッ ク
+400
同一フ ァ イ ルの複数の レ コ ー ド を並行的に ロ ッ ク し ます。 レ コ ー ド が既に ロ ッ ク さ れてい る
場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら エ ラ ー ス テー タ ス コ ー ド が返 さ れ ます。
書 き 込み ノ ー
ウ ェ イ ト ペー ジ
ロック
+500
並行 ト ラ ンザ ク シ ョ ンで、 変更 し よ う と し たページがア ク テ ィ ブな別の並行 ト ラ ンザ ク シ ョ
ンに よ っ て既に変更 さ れてい る 場合、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に ウ ェ イ ト し な
い よ う に指示 し ます。 こ のバ イ ア ス は、 ど の レ コ ー ド 読み取 り ロ ッ ク バ イ ア ス (+100、+200、
+300、 +400) と で も 組み合わせ る こ と がで き ます。
11
Btrieve API の紹介
表 6 デー タ 操作オペ レーシ ョ ン
オペレーシ ョ ン
コー ド
説明
Insert
2
フ ァ イ ルに新 し い レ コ ー ド を挿入 し ます。
Update
3
現在の レ コ ー ド を更新 し ます。
Delete
4
フ ァ イ ルか ら 現在の レ コ ー ド を削除 し ます。
Insert Extended
40
フ ァ イ ルに 1 つま たは複数の レ コ ー ド を挿入 し ます。
Update Chunk
53
現在の レ コ ー ド の指定 さ れた部分 (チ ャ ン ク ) を更新 し ま す。 こ のオペレ ーシ ョ ン では、 レ
コ ー ド にデー タ を追加 し た り 、 レ コ ー ド を切 り 詰め る こ と も で き ます。
サポー ト さ れないオペ レーシ ョ ン
ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス ト レ ー ス や SDK ヘ ッ ダー フ ァ イ ル を見た と き に Btrieve API オペ レ ー
シ ョ ンの リ フ ァ レ ン ス に記載 さ れていないオペレーシ ョ ンがあ る か も し れません。 こ れ ら は Pervasive PSQL が内
部的に使用す る も ので、 アプ リ ケーシ ョ ンで使用する 必要はあ り ません。 以下に示すオペレーシ ョ ンはサポー ト
さ れません。
表 7 サポー ト さ れないオペ レーシ ョ ン
オペレーシ ョ ン
コー ド
説明
B_MISC_DATA
41
ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス が使用す る た めに予
約 さ れてい ます。
B_EXTEND
16
SQL エ ン ジ ンが使用す る ために予約 さ れてい ます。
Btrieve に よ る (ネ ス ト さ れた) Begin Transaction
12
2019
ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス が使用す る た めに予
約 さ れてい ます。
Btrieve API オペ レーシ ョ ンの実行における一連のイ ベン ト
Btrieve API オペ レーシ ョ ンの実行における一連のイ ベン ト
¾
Btrieve API オペ レーシ ョ ン を実行するには、 ア プ リ ケーシ ョ ン で以下の タ ス ク を完了する必要があ り ます。
1
オペレーシ ョ ンが要求す る 必要条件をすべて満た し ます。 た と えば、 フ ァ イ ルの I/O オペレーシ ョ ン を実行
す る 前に、 対象 と な る フ ァ イ ルで Open オペレーシ ョ ン (0) を実行 し 、 その フ ァ イ ルを使用可能な状態に し
てお く 必要があ り ます。
2
Btrieve API オペレーシ ョ ンが要求す る パ ラ メ ー タ ーを初期化 し ます。 パ ラ メ ー タ ー と はプ ロ グ ラ ム変数ま た
はデー タ 構造体の こ と で、 その型 と サ イ ズは、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がオペレーシ ョ ンに期
待する 特定の値に対応 し ていなければな り ません。
将来の互換性を維持す る ため、使用す る か ど う かに関係な く 、すべてのパ ラ メ ー タ ーを初期化 し て く だ さ い。
INTEGER 型のパ ラ メ ー タ ーの場合、 値をバ イ ナ リ 0 に設定 し ます。 文字配列の場合、 バ ッ フ ァ ーへのポ イ
ン タ ーを渡 し ます。 こ の場合は、 バ ッ フ ァ ーの先頭バ イ ト をバ イ ナ リ 0 に初期化 し ます。
3
適切な Btrieve API 関数を呼び出 し ます (「Btrieve API 関数」 を参照 し て く だ さ い)。
4
関数呼び出 し の実行結果を評価 し ます。 すべての Btrieve API オペレーシ ョ ンか ら ス テー タ ス コ ー ド が返 さ
れ ます。 アプ リ ケーシ ョ ン では ス テー タ ス コ ー ド をチ ェ ッ ク し 、 適切な操作を行 う 必要があ り ます。 ま た、
オペレーシ ョ ンか ら はその目的に基づいて、 個々のパ ラ メ ー タ ーにデー タ やその他の情報 も 返 さ れます。
13
Btrieve API の紹介
14
Btrieve API オペ レーシ ョ ン
2
こ の章では、 アプ リ ケーシ ョ ン が Btrieve API を使っ て実行で き る オペ レーシ ョ ン について説明 し ま す。 各オペ
レーシ ョ ンについて、 こ の章では以下の情報を示 し ます。
„
オペレーシ ョ ンの名前、 コ ー ド お よ び説明。
„
パ ラ メ ー タ ー - オペレーシ ョ ン を実行す る 際に、 6 個のパ ラ メ ー タ ーの う ちのど の値がアプケーシ ョ ンか ら
送 ら れ、 アプ リ ケーシ ョ ンに返 さ れ る のかを表に示 し てい ます。 「送 り 値」 の行のパ ラ メ ー タ ーはアプ リ ケー
シ ョ ン か ら オペレ ーシ ョ ン に送 ら れ ます。 「戻 り 値」 の行のパ ラ メ ー タ ーは、 オペ レーシ ョ ン完了後にオペ
レーシ ョ ンか ら アプ リ ケーシ ョ ンに返 さ れます。
„
前提条件 - オペレーシ ョ ン を正常に実行 さ せ る ためにアプ リ ケーシ ョ ンが満たすべ き 条件を示 し ます。
„
手順 - オペレーシ ョ ンが要求す る パ ラ メ ー タ ーを初期化す る 手順を示 し ます。
„
詳細 - オペレーシ ョ ンについての追加情報を示 し ます。
„
結果 - オペレーシ ョ ンが正常に終了 し た場合 と 、 何 ら かのエ ラ ーが発生 し た場合の結果を示 し ます。 それぞ
れのオペレ ーシ ョ ンは、 オペレ ーシ ョ ン の結果を アプ リ ケーシ ョ ン に通知す る ス テー タ ス コ ー ド を返 し ま
す。 ス テー タ ス コ ー ド 0 は、 オペレーシ ョ ンが正常に終了 し た こ と を示 し ます。 0 以外の ス テー タ ス コ ー ド
は、 通常は何 ら かのエ ラ ーが発生 し た こ と を示 し ます。 ただ し 、 0 以外の ス テー タ ス コ ー ド の中には、 単に
情報を提供す る だけで、 関連す る オペレーシ ョ ンが正常に終了 し た と き に も 示 さ れ る も のがあ り ます。 た と
えば、 ス テー タ ス コ ー ド 60 は指定 し た リ ジ ェ ク ト カ ウ ン ト に到達 し た こ と を意味 し ます。
„
ポジシ ョ ニ ン グ - オペレーシ ョ ンが フ ァ イ ル内の レ コ ー ド の論理カ レ ン シーあ る いは物理カ レ ン シーに与え
る 影響を示 し ます。
こ の章では、 以下の Btrieve API オペレーシ ョ ン を アルフ ァ ベ ッ ト 順に説明 し ます。
„
「Abort Transaction (21)」
„
「Begin Transaction (19 ま たは 1019)」
„
「Clear Owner (30)」
„
「Close (1)」
„
「Continuous Operation (42)」
„
「Create (14)」
„
「Create Index (31)」
„
「Delete (4)」
„
「Drop Index (32)」
„
「End Transaction (20)」
„
「Find Percentage (45)」
„
「Get By Percentage (44)」
„
「Get Direct/Chunk (23)」
„
「Get Direct/Record (23)」
„
「Get Directory (18)」
„
「Get Equal (5)」
„
「Get First (12)」
„
「Get Greater (8)」
„
「Get Key (+50)」
15
Btrieve API オペ レーシ ョ ン
„
「Get Last (13)」
„
「Get Less Than or Equal (11)」
„
「Get Next (6)」
„
「Get Next Extended (36)」
„
「Get Position (22)」
„
「Get Previous (7)」
„
「Get Previous Extended (37)」
„
「Insert (2)」
„
「Insert Extended (40)」
„
「Login/Logout (78)」
„
「Open (0)」
„
「Reset (28)」
„
「Set Directory (17)」
„
「Set Owner (29)」
„
「Stat (15)」
„
「Stat Extended (65)」
„
「Step First (33)」
„
「Step Last (34)」
„
「Step Next (24)」
„
「Step Next Extended (38)」
„
「Step Previous (35)」
„
「Step Previous Extended (39)」
„
「Stop (25)」
„
「Unlock (27)」
„
「Update (3)」
„
「Update Chunk (53)」
„
「Version (26)」
16
Abort Transaction (21)
Abort Transaction (21)
Abort Transaction オペレーシ ョ ン (B_ABORT_TRAN) では、 現在の ト ラ ンザ ク シ ョ ン を終了 し 、 こ の ト ラ ンザ ク
シ ョ ンの開始以降に実行 さ れたすべてのオペレーシ ョ ンの結果を削除 し ます。 ま た、 ト ラ ンザ ク シ ョ ンに よ っ て
設定 さ れたすべての フ ァ イ ル と レ コ ー ド の ロ ッ ク を解除 し ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
前提条件
Abort Transaction オペレーシ ョ ン を発行す る 前に、 Begin Transaction オペレーシ ョ ン (19 ま たは 1019) が正常に
実行 さ れてい る 必要があ り ます。
手順
オペレーシ ョ ン コ ー ド に 21 を設定 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 オペレーシ ョ ン コ ー ド
以外の Abort Transaction 呼び出 し パ ラ メ ー タ ーはすべて無視 さ れます。
結果
Abort Transaction オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ
ス コ ー ド 0 が返 さ れます。 ト ラ ンザ ク シ ョ ンの開始以降に発行 さ れたすべての Insert、 Update お よ び Delete オペ
レーシ ョ ンの結果が フ ァ イ ルか ら 削除 さ れます。
Abort Transaction オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら
次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
36
アプ リ ケーシ ョ ンで ト ラ ンザ ク シ ョ ン エ ラ ーが発生 し ま し た。
39
End Transaction オペレーシ ョ ン ま たは Abort Transaction オペレーシ ョ ン を実行す る 前に、 Begin Transaction オペ
レーシ ョ ン を実行す る 必要があ り ます。
ポジ シ ョ ニ ング
Abort Transaction オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報に ま っ た く 影響 し ません。
17
Btrieve API オペ レーシ ョ ン
Begin Transaction (19 または 1019)
Begin Transaction オペレーシ ョ ン (B_BEGIN_TRAN) では、 ト ラ ンザ ク シ ョ ンの開始を定義 し ます。 ト ラ ンザ ク
シ ョ ンは、 複数の Btrieve API オペレーシ ョ ン を単一 イ ベン ト と し て実行す る 必要があ る 場合に有用です。 た と え
ば、 い く つかのオペレーシ ョ ンの う ち少な く と も 1 つで も オペレーシ ョ ンが正常に終了 し ない と 、 デー タ ベース
の論理的整合性が保てな く な る 場合には、 ト ラ ンザ ク シ ョ ン を使用 し て く だ さ い。
一連の オペ レ ー シ ョ ン を Begin Transaction と End Transaction オペ レ ー シ ョ ン で囲ん でお く と 、 明示的 な End
Transaction オペ レ ーシ ョ ン (20) で ト ラ ン ザ ク シ ョ ン の完了を要求 し ない限 り 、 ト ラ ン ザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス はその間に実行 さ れた複数のオペレーシ ョ ン をすべて取 り 消す こ と がで き ます。 ト ラ ンザ ク シ ョ ン内で
加え ら れた変更は、 End Transaction オペレーシ ョ ンの実行が正常に終了す る ま で、 ほかのユーザーか ら は見る こ
と がで き ません。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 フ ァ イ ルやパフ ォーマ ン ス に多大な影響を与え る と い う 理由で、 い く
つかのオペ レーシ ョ ン について ト ラ ン ザ ク シ ョ ン中の実行を禁止 し てい ま す。 こ の特定のオペレーシ ョ ン と は、
Set Owner、 Clear Owner、 Create Index、 Drop Index です。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
前提条件
Begin Transaction オペレーシ ョ ン を発行す る 前に、 先行す る ト ラ ンザ ク シ ョ ン を終了ま たは中止 し てお く 必要が
あ り ます。
手順
オペ レ ーシ ョ ン コ ー ド に 19 を設定 し て排他 ト ラ ン ザ ク シ ョ ン を開始す る か、 1019 を設定 し て並行 ト ラ ン ザ ク
シ ョ ン を開始 し ます。ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、オペレーシ ョ ン コ ー ド 以外の Begin Transaction
呼び出 し パ ラ メ ー タ ーはすべて無視 さ れます。
Begin Transaction オペレーシ ョ ンでは、 デフ ォ ル ト の ロ ッ ク バ イ ア ス を指定で き ます。
„
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
„
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
„
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
„
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
並行 ト ラ ンザ ク シ ョ ン の Begin Transaction オペレーシ ョ ン では、 +500 を オペレーシ ョ ン コ ー ド に追加で き ます
(1519)。 追加す る と 、 ト ラ ンザ ク シ ョ ン内の Insert、 Update、 Delete の各オペレーシ ョ ンが、 ト ラ ンザ ク シ ョ ナル
イ ン タ ーフ ェ イ ス に よ っ て再試行 さ れな く な り ます。
さ ら に、 +500 バ イ ア ス をデフ ォ ル ト の ロ ッ ク バ イ ア ス と 組み合わせ る こ と も で き ます。 た と えば、 1019 + 500 +
200 (1719) を使用す る と 、 Insert、 Update お よ び Delete オペレーシ ョ ンの再試行を抑え、 並行 ト ラ ンザ ク シ ョ ン
が実行 さ れます。 ま た同時に、 単一レ コ ー ド の読み取 り ノ ーウ ェ イ ト ロ ッ ク が指定 さ れます。
ト ラ ンザ ク シ ョ ンお よ び ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
18
Begin Transaction (19 または 1019)
結果
Begin Transaction オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ
ス コ ー ド 0 が返 さ れます。
Begin Transaction オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら
次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
36
アプ リ ケーシ ョ ンで ト ラ ンザ ク シ ョ ン エ ラ ーが発生 し ま し た。
37
別の ト ラ ンザ ク シ ョ ンが実行中です。
ポジ シ ョ ニ ング
Begin Transaction オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報に ま っ た く 影響 し ません。
19
Btrieve API オペ レーシ ョ ン
Clear Owner (30)
Clear Owner オペレーシ ョ ン (B_CLEAR_OWNER) では、 あ ら か じ め Set Owner オペレーシ ョ ン を使っ て フ ァ イ
ルに割 り 当てて あ る オーナー ネーム を削除 し ます。 フ ァ イ ルがあ ら か じ め暗号化 さ れてい る 場合は、 Clear Owner
オペレーシ ョ ンの実行中に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て フ ァ イ ルの解読 も 行われます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
前提条件
„
対象 と な る フ ァ イ ルが開いてお り 、 オーナー ネームが指定 さ れてい る こ と が必要です。
„
ト ラ ンザ ク シ ョ ンが実行中でない こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 30 を設定 し ます。
2
対象 と な る フ ァ イ ルを識別す る ポジシ ョ ン ブ ロ ッ ク を渡 し ます。
結果
Clear Owner オペレーシ ョ ンが正常に実行 さ れ る と 、 それ以降、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はフ ァ イ
ルを開いた り 変更 し た り す る と き にオーナー ネーム を要求 し な く な り ます。 オーナーを割 り 当て る と き に フ ァ イ
ルのデー タ を暗号化 し た場合には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ スは Clear Owner オペレーシ ョ ンの実行
中にデー タ の解読 も 行い ます。 暗号化 さ れてい る デー タ が多いほ ど、 Clear Owner オペレーシ ョ ンの実行にかか る
時間は長 く な り ます。
Clear Owner オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の
ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
ポジ シ ョ ニ ング
Clear Owner オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報に ま っ た く 影響 し ません。
20
Close (1)
Close (1)
Close オペレーシ ョ ン (B_CLOSE) では、 指定 さ れたポジシ ョ ン ブ ロ ッ ク に関連付け ら れてい る フ ァ イ ルを閉 じ 、
その フ ァ イ ルに対 し て実行 さ れた ロ ッ ク をすべて解除 し ます。フ ァ イ ルへのア ク セ ス を終了す る と き 、アプ リ ケー
シ ョ ン では必ず Close オペ レーシ ョ ン を実行す る 必要があ り ま す。 Close オペレ ーシ ョ ン の実行後は、 も う 一度
Open オペレーシ ョ ン (0) を発行 し ない限 り 、 そのフ ァ イ ルにはア ク セ ス で き な く な り ます。
ト ラ ン ザ ク シ ョ ン中で も 、 フ ァ イ ルを閉 じ る こ と がで き ます。 ただ し 、 Close オペレーシ ョ ン を実行 し て も 、 ト
ラ ンザ ク シ ョ ンは終了 し ません。 ト ラ ンザ ク シ ョ ンは明示的に終了ま たは中止す る 必要があ り ます。 ト ラ ンザ ク
シ ョ ン を中止す る と 、 ト ラ ンザ ク シ ョ ン中に行われた変更は削除 さ れます。 ト ラ ンザ ク シ ョ ン を終了す る と 、 変
更が反映 さ れます。
メ モ ト ラ ンザ ク シ ョ ン中に フ ァ イ ルを閉 じ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではその フ ァ イ
ルへの更新を正 し く 処理で き る よ う に、 ト ラ ンザ ク シ ョ ンが中止ま たは終了 さ れ る ま で フ ァ イ ルのオープン
ハン ド ルを保持 し ます。 ただ し 、 その フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を アプ リ ケーシ ョ ン で使用す る こ と は
で き な く な り ます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
戻り値
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
手順
1
オペレーシ ョ ン コ ー ド に 1 を設定 し ます。
2
閉 じ る フ ァ イ ルに対応す る 有効なポジシ ョ ン ブ ロ ッ ク を渡 し ます。
結果
Close オペレーシ ョ ンが正常に終了 し た場合は、 閉 じ た フ ァ イ ルに対応す る ポジシ ョ ン ブ ロ ッ ク は有効でな く な
り ます。
Close オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 フ ァ イ ルが開いた ま ま にな り 、 ト ラ ンザ ク シ ョ ナル イ
ン タ ーフ ェ イ ス か ら 次の ス テー タ ス コー ド が返 さ れます。
3
フ ァ イ ルが開いてい ません。
ポジ シ ョ ニ ング
Close オペレーシ ョ ン を実行す る と 、 フ ァ イ ルの物理カ レ ン シー情報お よ び論理カ レ ン シー情報は消去 さ れます。
21
Btrieve API オペ レーシ ョ ン
Continuous Operation (42)
Continuous オペレーシ ョ ン (B_CONTINOUS) では、 ア ク テ ィ ブな ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス フ ァ イ
ルを閉 じ る こ と な く 、 シ ス テ ム バ ッ ク ア ッ プ を実行で き ます。 フ ァ イ ルのバ ッ ク ア ッ プ中に行っ た変更は、 デル
タ フ ァ イ ル と 呼ばれ る 一時フ ァ イ ルに記憶 さ れます。 デル タ フ ァ イ ルに書 き 込まれた変更を除 き 、 Continuous オ
ペレーシ ョ ン モー ド に置かれたすべての フ ァ イ ルの内容がシ ス テ ム バ ッ ク ア ッ プの対象にな り ます。バ ッ ク ア ッ
プ さ れた フ ァ イ ルが Continuous オペレーシ ョ ン モー ド か ら 抜け る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に
よ り 、 デル タ フ ァ イ ルの変更が こ れ ら の フ ァ イ ルに自動的に ロ ール イ ン さ れます。
メ モ こ のオペレーシ ョ ンは、 ロ ーカル エン ジ ンで動作 し てい る アプ リ ケーシ ョ ンにのみ使用で き ます。 ク
ラ イ ア ン ト アプ リ ケーシ ョ ンは リ モー ト マシ ン にあ る フ ァ イ ルに対 し て こ のオペレーシ ョ ン を使用す る こ
と はで き ません。
こ のオペレーシ ョ ン を使 う と 、 フ ァ イ ルがア ク テ ィ ブな状態の ま ま、 それを安全に コ ピーで き ます。 ク ラ イ ア ン
ト / サーバー セ ッ ト ア ッ プでは、 あ る フ ァ イ ルで Continuous オペレーシ ョ ン を開始す る ク ラ イ ア ン ト は、 その
フ ァ イ ルで Continuous オペレーシ ョ ン を終了する ク ラ イ ア ン ト で も なければな り ません。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
戻り値
○
○
○
○
キー バッ
ファー
キー番号
○
メ モ キー番号パ ラ メ ー タ ーの値が 0 (Continuous オペレーシ ョ ン モー ド を開始) ま たは 2 (Continuous オペ
レーシ ョ ン モー ド を終了) の場合にのみ、 デー タ バ ッ フ ァ ー パ ラ メ ー タ ーお よ びデー タ バ ッ フ ァ ー長パ ラ
メ ー タ ーの値が必要です。 以下に、 こ れ ら のキー番号の値について説明 し ます。 キー番号パ ラ メ ー タ ーが 1
の場合、 デー タ バ ッ フ ァ ー長は 0 であ る 必要があ り ます。
手順
¾
Continuous オペ レーシ ョ ン モー ド を開始するには、 以下の手順を実行 し て く だ さ い。
1
バ ッ ク ア ッ プの対象 と な る フ ァ イ ル ま たは フ ァ イ ルのセ ッ ト を定義す る か、 目的の フ ァ イ ル を現在バ ッ ク
ア ッ プの対象 と し て定義 さ れてい る フ ァ イ ルのセ ッ ト に追加 し ます。
a. オペレーシ ョ ン コ ー ド に 42 を設定 し ます。
b. Continuous オペレーシ ョ ン モー ド に置 く フ ァ イ ルの名前をデー タ バ ッ フ ァ ー パ ラ メ ー タ ーに入れます。
サーバー名のみを除いた フル パ ス名を入れます。 名前を カ ン マで区切 り 、 名前の リ ス ト の最後にバ イ ナ
リ 0 を付け ます。
次の例は、 Windows サーバーの場合の例です。
f:\acct\march.mkd,f:\acct\april.mkd
c. 名前の長 さ をデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに入れます。 こ の値は、デー タ バ ッ フ ァ ー自体に入っ て
い る 、 バ イ ナ リ 0 を含めた実際の名前の長 さ 以上の値にす る 必要があ り ます。 た と えば、 例に挙げた名
前の場合、 デー タ バ ッ フ ァ ー長には 40 以上の値を入れ る こ と が必要です。
d. キー番号パ ラ メ ー タ ーに 0 を設定 し ます。
22
Continuous Operation (42)
2
バ ッ ク ア ッ プ を実行 し ます。
3
Continuous オペレーシ ョ ン モー ド を終了 し ます。
a. オペレーシ ョ ン コ ー ド に 42 を設定 し ます。
b. キー番号パ ラ メ ー タ ーに 1 を設定 し ます。
1 つま たは複数の特定の フ ァ イ ルで Continuous オペレーシ ョ ン を終了す る には、 キー番号パ ラ メ ー タ ー
に 2 を設定 し 、 手順 1b で説明 し た よ う に フ ァ イ ル名をデー タ バ ッ フ ァ ー パ ラ メ ー タ ーに入れます。 さ
ら に、 手順 1c で説明 し た よ う に、 名前の長 さ をデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに入れます。
詳細
一連の フ ァ イ ルをバ ッ ク ア ッ プす る よ う に定義する 場合は、 以下の点に留意 し て く だ さ い。
„
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、デー タ バ ッ フ ァ ーに フ ァ イ ル名が入っ ていな く て も エ ラ ー と 見な
し ま せん。 フ ァ イ ル名が見つか ら ない場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は Continuous オペレー
シ ョ ンで何の動作 も 行い ません。
„
デー タ バ ッ フ ァ ーに重複す る フ ァ イ ル名が存在 し て も 、 Continuous オペレーシ ョ ンの動作状況には影響 し ま
せん。 MKDE では、 指定 し た フ ァ イ ルを 1 度だけ Continuous オペレーシ ョ ン モー ド に置 き ます。
„
同 じ デ ィ レ ク ト リ に、 フ ァ イ ル名が同一で拡張子のみが異な る よ う な フ ァ イ ルを置かないで く だ さ い。 た と
えば、Invoice.btr と い う 名前のデー タ フ ァ イ ル と Invoice.mkd と い う 名前の フ ァ イ ルが同 じ デ ィ レ ク ト リ 内に
あ っ てはな り ま せん。 こ の よ う な制限が設け ら れてい る のは、 デー タ ベー ス エ ン ジ ン が さ ま ざ ま な機能で
フ ァ イ ル名のみを使用 し 、 フ ァ イ ルの拡張子を無視す る ためです。 Continuous オペレーシ ョ ンでは、 デル タ
フ ァ イ ル名 と し て、 対応す る フ ァ イ ルの名前に拡張子 「.^^^」 を付けた名前を使用 し ます。 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス は両方の フ ァ イ ルについて同一のデル タ フ ァ イ ルに書き 込 も う と する ため、デー タ の
破損につ な が る か、 も し く は ス テ ー タ ス 85 が返 さ れ る 可能性が あ り ま す。 ま た、 こ れ ら の フ ァ イ ルが
Continuous オペレーシ ョ ン モー ド に置 く フ ァ イ ルの大 き な リ ス ト の一部であ っ た と し て も 、 こ の状況が発生
す る 場合には、 フ ァ イ ルは一切 Continuous オペレーシ ョ ン モー ド に置かれません。
„
アプ リ ケーシ ョ ンでは、 Continuous オペレーシ ョ ン を反復的に呼び出 し て、 Continuous オペレーシ ョ ン モー
ド に置 く フ ァ イ ルの リ ス ト に フ ァ イ ル名を追加で き ます。 ただ し 、 SRDE に よ っ て フ ァ イ ルの一部に参照整
合性 (RI) 制約が設定 さ れてい る 場合は、 こ の操作に よ り 、 バ ッ ク ア ッ プが壊れ る 可能性があ り ます。 参照
整合性制約 と 関連付け ら れてい る フ ァ イ ルは、 単独の Continuous オペレーシ ョ ン呼び出 し で渡す必要があ り
ます。
既に Continuous オペレーシ ョ ン モー ド に入っ てい る フ ァ イ ルを指定す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス か ら ス テー タ ス コ ー ド 88 が返 さ れます。
Continuous オペレーシ ョ ン を呼び出すサーバー ベース のアプ リ ケーシ ョ ン を作成する 場合は、必ず BTRVID を呼
び出 し 、 有効な ク ラ イ ア ン ト ID を使用す る こ と で、 同一 ク ラ イ ア ン ト の も と で Continuous オペレーシ ョ ンの開
始 と 終了を行え る よ う に し ます。
Btrieve API では、BTRVID 関数を使っ てバ ッ ク ア ッ プ セ ッ ト ご と に異な る ク ラ イ ア ン ト ID を指定 し 、複数のバ ッ
ク ア ッ プ セ ッ ト を定義で き ます。 ただ し 、 同 じ フ ァ イ ルを 2 つのセ ッ ト に入れ る こ と はで き ません。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ てデル タ フ ァ イ ルか ら デー タ フ ァ イ ルに変更内容が ロ ール イ ン さ
れてい る と き で も 、 ユーザーは通常の場合 と 同 じ よ う に、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス フ ァ イ ルの更
新、 挿入お よ び読み取 り を引 き 続 き 実行で き ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ スは挿入作業で必要 と な
れば、 変更内容の ロ ール イ ン中で も デル タ フ ァ イ ルに新 し いページ を追加 し ます。 こ のため、 変更内容が失われ
る こ と はあ り ません。
メ モ デル タ フ ァ イ ルは決 し て手動で削除 し ないで く だ さ い。
アプ リ ケーシ ョ ン で BTRV 関数を使用す る 場合は、 フ ァ イ ルが Continuous オペレーシ ョ ン モー ド に入っ てい る
と き に そ の ア プ リ ケ ー シ ョ ン を ア ン ロ ー ド し な い で く だ さ い。 ア ン ロ ー ド す る と 、 対象 と な る フ ァ イ ル を
23
Btrieve API オペ レーシ ョ ン
Continuous オペ レ ーシ ョ ン モー ド か ら 削除で き な く な る こ と が あ り ま す。 こ れは、 対象 と な る フ ァ イ ルのオー
ナー と し て ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が当初割 り 当てたデフ ォ ル ト の ク ラ イ ア ン ト ID が、 別のアプ
リ ケーシ ョ ンに再割 り 当て さ れて し ま う 可能性があ る か ら です。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では対象
と な る フ ァ イ ルの正 し いオーナーがわか ら な く な る ため、それ ら の フ ァ イ ルを Continuous オペレーシ ョ ン モー ド
か ら 削除で き な く な っ て し ま い ます。
Continuous オペレーシ ョ ン モー ド に入 る と き 、ま たは ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ てデル タ フ ァ
イ ルか ら デー タ フ ァ イ ルに変更内容が ロ ール イ ン さ れてい る 最中にシ ス テ ムが ク ラ ッ シ ュ し た場合は、シ ス テ ム
の再起動後初めてその フ ァ イ ルを開 く と き に、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ てすべての変更内容
が フ ァ イ ルに ロ ール イ ン さ れます。
結果
Continuous オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド
0 が返 さ れますが、 デー タ バ ッ フ ァ ーお よ びデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーには何の値 も 返 さ れません。
こ のオペレーシ ョ ンが正常に実行 さ れなか っ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー タ ス
コ ー ド のいずれかが返 さ れます。
11
指定 さ れた フ ァ イ ル名は不正です。
12
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は指定 さ れた フ ァ イ ルを見つけ ら れません。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
51
オーナー ネームが不正です。
88
アプ リ ケーシ ョ ンでモー ド の不一致エ ラ ーが発生 し ま し た。
91
アプ リ ケーシ ョ ンでサーバー エ ラ ーが発生 し ま し た。
上記の コ ー ド に加え、 アプ リ ケーシ ョ ンには、 ス テー タ ス コ ー ド 18 の よ う な標準の I/O エ ラ ーが返 さ れ る こ と
があ り ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 0 以外の ス テー タ ス コ ー ド が返 さ れ る 場合、Continuous オペレーシ ョ
ンは、 エ ラ ーを発生 さ せた入力文字列の一部をデー タ バ ッ フ ァ ーに返 し ます。 入力文字列が使用 さ れていない場
合、 デー タ バ ッ フ ァ ーにはエ ラ ーの原因 と な っ た フ ァ イ ル名が返 さ れ ます。 デー タ バ ッ フ ァ ー長には、 デー タ
バ ッ フ ァ ー内の出力文字列の長 さ が反映 さ れます。 こ の場合は、 エ ラ ーの原因 と な っ た フ ァ イ ル名の長 さ が入 り
ます。
ポジ シ ョ ニ ング
Continuous オペレーシ ョ ン を実行 し て も 、 フ ァ イ ルにカ レ ン シーは確立 し ません。
24
Create (14)
Create (14)
Create オペレーシ ョ ン (B_CREATE) では、 アプ リ ケーシ ョ ン内部か ら 新 し いデー タ フ ァ イ ルを生成で き ます。
Create オペレーシ ョ ンにはフ ァ イ ルの削除ま たは名前変更がで き る サブ フ ァ ン ク シ ョ ン も あ り ます (「Create オペ
レーシ ョ ンに よ る 削除お よ び名前変更サブ フ ァ ン ク シ ョ ン」 を参照)。
メ モ 同 じ デ ィ レ ク ト リ に、 フ ァ イ ル名が同一で拡張子のみが異な る よ う な フ ァ イ ルを置かないで く だ さ い。
た と えば、 同 じ デ ィ レ ク ト リ 内のデー タ フ ァ イ ルの 1 つに Invoice.btr、 も う 1 つに Invoice.mkd と い う 名前を
付け てはいけ ま せん。 こ の よ う な制限が設け ら れてい る のは、 デー タ ベー ス エ ン ジ ン が さ ま ざ ま な機能で
フ ァ イ ル名のみを使用 し 、 フ ァ イ ルの拡張子を無視する ためです。 フ ァ イ ルの識別にはフ ァ イ ル名のみが使
用 さ れ る ため、 フ ァ イ ルの拡張子だけが異な る フ ァ イ ルは、 デー タ ベース エン ジ ンでは同一の も のであ る と
認識 さ れます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
○
データ バッ データ バッ
ファー
ファー長
○
○
キー バッ
ファー
キー番号
○
○
戻り値
前提条件
既存の フ ァ イ ルを基に空の フ ァ イ ルを作成す る 場合は、 Create オペレーシ ョ ン を実行す る 前に必ずその既存フ ァ
イ ルは閉 じ てい る よ う に し ます。
手順
1
オペレーシ ョ ン コ ー ド に 14 を設定 し ます。
2
「詳細」 の説明に従い、 デー タ バ ッ フ ァ ーに フ ァ イ ル仕様、 キー仕様、 お よ びオル タ ネー ト コ レーテ ィ ン グ
シーケ ン ス (ACS) を指定 し ます (格納す る フ ァ イ ル仕様 と キー仕様の値はすべて、 バ イ ナ リ 形式でなけれ
ばな り ません)。
3
デー タ バ ッ フ ァ ー長を指定 し ます。 こ れは、 Create の指定を含むバ ッ フ ァ ーの長 さ であ り 、 フ ァ イ ルの レ
コ ー ド 長ではあ り ません。
4
キー バ ッ フ ァ ーに フ ァ イ ルのパ ス名を指定 し ます。 パス名の終端は必ず空白かバ イ ナ リ ゼ ロ に し ます。パ ス
名は、 ボ リ ュ ーム名お よ び終端文字を含めて、 255 文字ま での範囲で指定す る こ と がで き ます。
Pervasive PSQL ク ラ イ ア ン ト でサポー ト す る パ ス名の詳細については、 『Getting Started with Pervasive PSQL』
の 「Pervasive リ ク エ ス タ ーでサポー ト する ネ ッ ト ワー ク パ ス の形式」 を参照 し て く だ さ い。 『Pervasive PSQL
Programmer's Guide』 の 「デー タ ベース URI」 も 参照 し て く だ さ い。
5
キー番号パ ラ メ ー タ ーの値を、 表 14 の値のいずれか を使っ て指定 し ます。
25
Btrieve API オペ レーシ ョ ン
詳細
表 8 は、 フ ァ イ ル仕様お よ びキー仕様を格納する 順序を示 し てい ます。
表 8 Create オペ レーシ ョ ンのデー タ バ ッ フ ァ ー構造体
説明
データ型 1
バイト番号
値の例 2
Short Int4
0, 1
すべて の フ ィ ール ド を 結合 し
たサ イ ズです。
フ ァ イル仕様
論理固定レ コ ー ド 長 3
512
Pervasive PSQL 6.x か ら 9.4
Pervasive PSQL 6.x 以上
1,024
Pervasive PSQL 6.x か ら 9.4
1,536
Pervasive PSQL 6.x 以上
2,048
Pervasive PSQL 6.x か ら 9.4
Short Int
2, 3
3,072
3,584
ページ サ イ ズ
Pervasive PSQL 6.x 以上
4,096
Pervasive PSQL 9.0 か ら 9.4x
8,192
Pervasive PSQL 9.5 以上
16,384
ほ と ん ど の フ ァ イ ルでは最小サ イ ズの 4096 バ イ ト が最 も 効率的です。 微調整を行 う 場合の詳細につい
ては、 『Pervasive PSQL Programmer's Guide』 の 「ページ レベル圧縮を用いた フ ァ イ ルの作成」 を参照 し
て く だ さ い。
9.5 フ ァ イ ル形式の フ ァ イ ルを作成す る 場合、 指定 さ れた論理ページ サ イ ズがその フ ァ イ ル形式で有効
な ら ば、 MicroKernel は指定値の次に大 き な有効値があ る か ど う か を調べ、 存在す る 場合はその値に切
り 上げ ます。 それ以外の値やフ ァ イ ル形式の場合、 オペレーシ ョ ンは ス テー タ ス コ ー ド 24 で失敗 し ま
す。 古いバージ ョ ンの フ ァ イ ル形式では切 り 上げは行われません。
キー ( イ ンデ ッ ク ス) 数
フ ァ イ ル バージ ョ ン
Byte
Byte
4
5
0x60
バージ ョ ン 6.0
0x70
バージ ョ ン 7.0
0x80
バージ ョ ン 8.0
0x90
バージ ョ ン 9.0
0x95
バージ ョ ン 9.5
0x00
デー タ ベー ス エ
ン ジ ン のデフ ォ
ル ト を使用
予約済み (Create オペレーシ ョ ン では使用 し ません。)
予約済み
6- 9
0
フ ァ イ ル フ ラ グ。 フ ァ イ ル属性を指定 し ます。 フ ァ イ ルの例で
は、 フ ァ イ ル フ ラ グ を使用 し てい ません。
Short Int
10, 11
0
追加ポ イ ン タ ー数。 将来のキーの追加のために予約す る 重複ポ
イ ン タ ー数を設定 し ま す。 フ ァ イ ル属性で予約重複ポ イ ン タ ー
を指定す る 場合に使用 し ます。
Byte
12
0
26
Create (14)
表 8 Create オペ レーシ ョ ンのデー タ バ ッ フ ァ ー構造体
説明
データ型 1
バイト番号
値の例 2
予約済み (Create オペレーシ ョ ン では使用 し ません。)
予約済み
13
0
プ リ ア ロ ケー ト ページ数。 事前に割 り 当て ら れ る ページ数を設
定 し ます。 フ ァ イ ル属性でページ プ リ ア ロ ケーシ ョ ン を指定す
る 場合に使用 し ます。
Short Int
14, 15
0
キー ポジ シ ョ ン。 レ コ ー ド 内のキーの最初のバ イ ト の位置を指
定 し ます。 レ コ ー ド 内の最初のバ イ ト は 1 です。
Short Int
16, 17
1
キー長。 バ イ ト 単位でキーの長 さ を指定 し ます。
Short Int
18, 19
25
キー フ ラ グ。 キー属性を指定 し ます。
Short Int
20, 21
EXTTYPE_KEY +
NOCASE_KEY + DUP + MOD
Create には使用 し ません。
Byte
22-25
0
拡張キー タ イ プ。 キー フ ラ グで 「拡張キー タ イ プを使用す る 」
を指定す る 場合に使用 し ます。 拡張デー タ 型の う ちの 1 つを指
定 し ます。
Byte
26
ZSTRING
ヌ ル値 (レ ガシー ヌ ルのみ)。 キー フ ラ グで 「ヌ ルキー (すべ
てのセグ メ ン ト )」 ま たは 「 ヌ ルキー (任意のセ グ メ ン ト )」 を
指定す る 場合に使用 し ま す。 キーの除外値を指定 し ます。 レ ガ
シー ヌ ル と 真の ヌ ルの概念については、 「ヌ ル値」 を参照 し て
く だ さ い。
Byte
27
0
Create には使用 し ません。
Byte
28, 29
0
手動割 り 当て キー番号。 フ ァ イ ル属性で 「キー番号」 を指定す
る 場合に使用 し ます。 キー番号を割 り 当て ます。
Byte
30
0
ACS 番号。 キー フ ラ グ で 「デ フ ォ ル ト の ACS を 使用す る 」 、
「フ ァ イ ル内の番号付 き の ACS を使用す る 」 ま たは 「名前付 き
の ACS を 使用す る 」 を指定す る 場合に使用 し ま す。 使用す る
ACS 番号を指定 し ます。
Byte
31
0
キー ポジ シ ョ ン。 (社員 ID は、 ミ ド ル イ ニシ ャ ルの後の最初の
バ イ ト か ら 始ま り ます。)
Short Int
32, 33
52
キー長。
Short Int
34, 35
4
キー フ ラ グ。
Short Int
36, 37
EXTTYPE_KEY + MOD
Create には使用 し ません。
Byte
38-41
0
拡張キー タ イ プ。
Byte
42
INTEGER
ヌ ル値。
Byte
43
0
Create には使用 し ません。
Byte
44, 45
0
手動割 り 当て キー番号。
Byte
46
0
ACS 番号。
Byte
47
0
キー 0 (ラ ス ト ネーム) のキー仕様
キー 1 (社員 ID) のキー仕様
ページ圧縮のキー仕様
27
Btrieve API オペ レーシ ョ ン
表 8 Create オペ レーシ ョ ンのデー タ バ ッ フ ァ ー構造体
説明
データ型 1
バイト番号
値の例 2
物理ページ サ イ ズ 5
Char
A
512
(デフ ォ ル ト 値)
1
特に指定がない場合、 すべてのデー タ 型は符号な し です。
2
簡素化を図 る ため、 数値以外の値の例は C アプ リ ケーシ ョ ンの場合です。
3
可変長レ コ ー ド を持つフ ァ イ ルの場合、 論理レ コ ー ド 長はレ コ ー ド の固定長部分のみを指 し ます。
4 Short
Integer (Short Int) は 「 リ ト ル エンデ ィ ア ン」 のバ イ ト 順、 つま り 、 Intel 系の コ ン ピ ュ ー タ ーが採用 し てい る 下位バ
イ ト か ら 上位バ イ ト へ記録す る 方式で格納す る 必要があ り ます。
5 ページ レベル圧縮でのみ使用 し ま す。 ページ圧縮フ ァ イ ル フ ラ グ (表 6 を参照) と 組み合わせて使用す る 必要があ り ま
す。 詳細については、 『Pervasive PSQL Programmer's Guide』 の 「ページ レベル圧縮を用いた フ ァ イ ルの作成」 を参照 し て く
だ さ い。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は Create オペレーシ ョ ンではデー タ バ ッ フ ァ ーの 「未使用」 お
よ び 「予約済み」 領域を使用 し ませんが、 それ ら を割 り 当ててお く 必要があ り ます。 将来の リ リ ース と の互
換性を維持す る ため、 予約済み領域はゼ ロ に初期化 し て く だ さ い。
フ ァ イル仕様
デー タ バ ッ フ ァ ーの先頭 16 バ イ ト にはフ ァ イ ル仕様を格納 し ます。 バ イ ト は 0 か ら 数え始め ます。 レ コ ー ド 長、
ページ サ イ ズお よ び イ ンデ ッ ク ス数の情報を整数で格納 し ます。
論理レ コ ー ド 長。 (オ フ セ ッ ト 0x00) 論理レ コ ー ド 長はフ ァ イ ルの固定長デー タ のバ イ ト 数です (論理レ コ ー ド
長には可変長デー タ を含めないで く だ さ い)。
ページ サイ ズ。(オ フ セ ッ ト 0x02)ページ サ イ ズはフ ァ イ ル形式のバージ ョ ンに よ っ て決ま っ てい ます。『Pervasive
PSQL Programmer's Guide』 の 「ページ サ イ ズの選択」 を参照 し て く だ さ い。
イ ンデ ッ ク ス数。 (オ フ セ ッ ト 0x04) イ ンデ ッ ク ス数はフ ァ イ ルに対 し て定義 し てい る キーの数です。 キー セグ
メ ン ト 数ではあ り ません。 デー タ オン リ ー フ ァ イ ルを作成す る には、 イ ンデ ッ ク ス数に 0 を設定 し ます。
フ ァ イル バージ ョ ン。 (オ フ セ ッ ト 0x05) 作成す る ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス の フ ァ イ ル バージ ョ
ンです。 前の リ リ ース では、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は 2 バ イ ト 整数を使っ て Create オペレーシ ョ
ンで イ ンデ ッ ク ス数を取得 し てい ま し た。 イ ンデ ッ ク ス の最大数は 119 であ る ため、 こ の整数の上位バ イ ト は常
にゼ ロ で し た。 こ の上位バ イ ト は、 Stat オペレーシ ョ ンではフ ァ イ ル バージ ョ ン を返すために常に使用 さ れてい
ますが、 以前のアプ リ ケーシ ョ ン を破棄 し な く と も 、 Create オペレーシ ョ ンで フ ァ イ ル バージ ョ ンの指定に使用
で き る よ う にな り ま し た。 Create でサポー ト さ れ る フ ァ イ ル バージ ョ ンは 6.x、 7.x、 8.x、 9.x、 9.5 です。 こ れ ら
は、 それぞれ 16 進数の値 0x50、 0x60、 0x70、 0x80、 0x90、 0x95 で特定のバ イ ト に示 さ れます。
物理ペー ジ サ イ ズ。 (オ フ セ ッ ト 0xA) こ の フ ィ ール ド は、 以前は 「未使用」 と マー ク さ れて い ま し た。 こ の
フ ィ ール ド はページ圧縮フ ァ イ ル フ ラ グ と 組み合わせて使用 さ れます。ページ圧縮フ ラ グが指定 さ れていなけれ
ば、 こ の フ ィ ール ド は無視 さ れます。
バージ ョ ン 6.x 以降のデー タ フ ァ イ ルでは、論理ページは物理ページに割 り 当て、ページ ア ロ ケーシ ョ ン テーブ
ル (PAT) に格納 し ます。 物理ページのサ イ ズは論理ページのサ イ ズ と 同一です。 ページ圧縮は 9.5 以降の フ ァ
イ ル形式で使用で き ます。 デー タ ベース ページはページ レベルで圧縮 さ れます。 各論理ページは、 1 つ以上の物
理ページ単位に圧縮 さ れます。 こ れ ら 個々の物理ページのサ イ ズは、 1 論理ページ よ り も 小 さ く な り ます。
物理ページ サ イ ズ フ ィ ール ド を使用 し て、 フ ァ イ ルで使用す る 物理ページ サ イ ズ を指定で き ます。 こ の フ ィ ー
ル ド で指定す る 値は、 使用 さ れ る 実際の物理ページ サ イ ズ を決定する ため、 512 の倍数に し ます。 ゼ ロ を指定す
る と 、 エン ジ ンは物理ページ サ イ ズのデフ ォ ル ト 値を使用 し ます。 デフ ォ ル ト 値は 512 バ イ ト です。
物理ページ サ イ ズに指定 さ れた値は、論理ページ サ イ ズに指定 さ れた値 よ り も 大 き く す る こ と はで き ません。物
理ページ サ イ ズに指定 さ れた値の方が大 き い場合、エン ジ ンは論理ページ サ イ ズ と 同 じ にな る よ う その値を切 り
28
Create (14)
捨て ます。 論理ページ サ イ ズは物理ページ サ イ ズの倍数にな っ ていなければな り ません。 倍数でない場合、 その
論理ページ サ イ ズの値は物理ページ サ イ ズの値のち ょ う ど倍数にな る よ う 切 り 捨て ら れます。こ の よ う な操作の
結果 と し て、 論理ページ サ イ ズ と 物理ページ サ イ ズの値が同 じ にな っ た場合、 ページ レベルの圧縮は こ の フ ァ
イ ルに適用 さ れ ま せん。 『Pervasive PSQL Programmer's Guide』 の 「ページ レ ベル圧縮を用いた フ ァ イ ルの作成」
も 参照 し て く だ さ い。
フ ァ イル フ ラ グ。 (オ フ セ ッ ト 0x0A) フ ァ イ ル フ ラ グ ワー ド のビ ッ ト を セ ッ ト し て、 フ ァ イ ルの属性を指定 し
ます。 表 9 に、 フ ァ イ ル フ ラ グの値の 2 進、 16 進、 お よ び 10 進表記を示 し ます。
表 9 フ ァ イル フ ラ グの値
属性
定数
2 進数
可変長レ コ ー ド
VAR_RECS
0000 0000
0000 0001
1
1
ブ ラ ン ク ト ラ ン ケーシ ョ ン
BLANK_TRUNC
0000 0000
0000 0010
2
2
ページ プ リ ア ロ ケーシ ョ ン
PRE_ALLOC
0000 0000
0000 0100
04
4
デー タ 圧縮
DATA_COMP
0000 0000
0000 1000
08
8
キーオ ン リ ー フ ァ イ ル
KEY_ONLY
0000 0000
0001 0000
10
16
イ ンデ ッ ク ス バ ラ ン ス
BALANCED_KEYS
0000 0000
0010 0000
20
32
10% 空 き スペース ス レ ッ シ ョ ル ド
FREE_10
0000 0000
0100 0000
40
64
20% 空 き スペース ス レ ッ シ ョ ル ド
FREE_20
0000 0000
1000 0000
80
128
30% 空 き スペース ス レ ッ シ ョ ル ド
FREE_30
0000 0000
1100 0000
C0
192
予約重複ポ イ ン タ ー
DUP_PTRS
0000 0001
0000 0000
100
256
INCLUDE_SYSTEM_DATA
0000 0010
0000 0000
200
512
シ ス テ ム デー タ を含めない
NO_INCLUDE_SYSTEM_DATA
0001 0010
0000 0000
1200
4,608
キー番号
SPECIFY_KEY_NUMS
0000 0100
0000 0000
400
1,024
VAT の使用
VATS_SUPPORT
0000 1000
0000 0000
800
2,048
ページ圧縮の使用 2
PAGE_COMPRESSED
0010 0000
0000 0000
2000
8,192
シ ス テ ムデー タ を含め る
1
16 進数
10 進数
1
シ ス テ ム デー タ を フ ァ イ ルに含め る か ど う か を明示的に指定 し ていない場合、 Btrieve API は、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス設定オプシ ョ ンの 「シ ス テ ム デー タ 」 のその時点の設定を使用 し ます。
2
ページ レ ベル圧縮でのみ使用 し ま す。 「物理ページ サ イ ズ」 キー仕様 と 組み合わせて使用 さ れ ま す。 詳細につい ては、
『Pervasive PSQL Programmer's Guide』 の 「ページ レベル圧縮を用いた フ ァ イ ルの作成」 を参照 し て く だ さ い。
29
Btrieve API オペ レーシ ョ ン
互換性のない フ ラ グの使用は避けて く だ さ い。 同一ビ ッ ト 位置を使用す る フ ラ グ間には互換性はあ り ません。 未
使用のビ ッ ト は将来使用す る ために予約 さ れてい ます。 こ れ ら のビ ッ ト には 0 を設定 し ます。
フ ァ イ ルの属性を組み合わせ る には、 対応す る フ ァ イ ル フ ラ グの値を加算 し ます。 た と えば、 可変長レ コ ー ド を
含む こ と がで き 、 ブ ラ ン ク ト ラ ン ケーシ ョ ン を行 う フ ァ イ ルを指定す る には、 フ ァ イ ル フ ラ グ ワ ー ド を 3 (2 +
1) に初期化 し て く だ さ い。 可変長レ コ ー ド の ビ ッ ト が 0 に設定 さ れてい る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス ではブ ラ ン ク ト ラ ン ケーシ ョ ンお よ び空 き スペース ス レ ッ シ ョ ル ド のビ ッ ト を無視 し ます。
ページ プ リ ア ロ ケーシ ョ ンのビ ッ ト を設定す る 場合は、 フ ァ イ ル仕様ブ ロ ッ ク (ア ロ ケーシ ョ ン) の最後の 2 バ
イ ト を使用 し て、 フ ァ イ ルにプ リ ア ロ ケー ト する ページ数を指定す る 整数値を格納 し て く だ さ い。 デー タ 圧縮の
ビ ッ ト を設定 し た場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス では可変長 レ コ ー ド の ビ ッ ト が無視 さ れ ま す。
キーオン リ ー フ ァ イ ルのビ ッ ト を設定 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではシ ス テ ム デー タ の
ビ ッ ト が無視 さ れます。
デー タ ベース エン ジ ンは、 シ ス テ ム デー タ を使用 し てお り 、 レ コ ー ド 長が許容最大サ イ ズ を超え る フ ァ イ ルにつ
いては自動的にデー タ 圧縮を使用 し ます。 『Pervasive PSQL Programmer's Guide』 の表 12 を参照 し て く だ さ い。
フ ァ イ ルを作成 し た後で イ ンデ ッ ク ス の追加が予想 さ れ、 その イ ンデ ッ ク ス に多数の重複 し た値が含まれ る 場合
は、 重複ポ イ ン タ ーのビ ッ ト を設定 し ます。 こ のビ ッ ト を設定す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で
は重複 し た値を リ ン ク す る ポ イ ン タ ーのために フ ァ イ ルの各レ コ ー ド に ス ペース が確保 さ れ る よ う にな り ます。
こ の よ う な スペース を確保す る こ と に よ り 、 特に、 キーが長 く 、 多数の レ コ ー ド が重複す る キー値を持つ こ と が
予測 さ れ る 場合には、 検索時間を短縮 し 、 デ ィ ス ク 領域を節約で き る 場合があ り ます。
メ モ 重複ポ イ ン タ ーの領域は、 フ ァ イ ル作成後に追加 さ れ る イ ンデ ッ ク ス のみを対象に予約で き ます。 し
たがっ て、 重複値へのポ イ ン タ ーのために領域を確保す る と き は、 こ の Create オペレーシ ョ ンの実行中に作
成 さ れ る イ ンデ ッ ク ス の領域は含めないで く だ さ い。 ま た、 繰 り 返 し 重複キー と し て指定 さ れ る キーについ
て、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は重複ポ イ ン タ ーの領域を確保 し ません。
特定の番号を キーに割 り 当て る こ と が必要な場合は、 キー番号のビ ッ ト を設定 し 、 希望す る キー番号を キー仕様
ブ ロ ッ ク の手動割 り 当て キー番号要素 (オ フ セ ッ ト 0x0E) に入れ ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス
ではキー番号が連続 し てい る 必要はあ り ません。つま り 、フ ァ イ ルのキー番号は飛んでいて も か ま い ません。キー
が作成 さ れ る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はデフ ォ ル ト で、 0 か ら 始ま る キー番号の う ち使用可能
な最小の番号を その イ ンデ ッ ク ス に割 り 当て ます。 ただ し 、 アプ リ ケーシ ョ ンに よ っ ては、 デフ ォ ル ト の割 り 当
て と は異な る キー番号が必要な こ と も あ り ます。
フ ァ イ ルで可変長部割 り 当てテーブルを使用する 場合は、 VAT の使用の ビ ッ ト を設定 し ます。 VAT を使 う には、
フ ァ イ ルで可変長レ コ ー ド を使用 し てい る こ と が必要です。
予約する重複ポ イ ン タ ー数。 (オ フ セ ッ ト 0x0C) 予約する 重複ポ イ ン タ ー数を フ ァ イ ルご と に指定で き ます。 予
約重複ポ イ ン タ ーの フ ァ イ ル フ ラ グ を指定 し た場合にのみ、 こ の要素を使用 し て く だ さ い。 重複キーの詳細につ
いては、 『Pervasive PSQL Programmer's Guide』 の 「重複キー」 を参照 し て く だ さ い。
ア ロ ケーシ ョ ン。 (オ フ セ ッ ト 0x0E) プ リ ア ロ ケー ト する ページ数を指定で き ます。 ページ プ リ ア ロ ケーシ ョ ン
の フ ァ イ ル フ ラ グ を指定 し た場合にのみ、 こ の要素を使用 し て く だ さ い。 ページのプ リ ア ロ ケーシ ョ ンの詳細に
ついては、 『Pervasive PSQL Programmer's Guide』 の 「ページ プ リ ア ロ ケーシ ョ ン」 を参照 し て く だ さ い。
キー仕様ブ ロ ッ ク
フ ァ イ ル仕様のす ぐ 後にキー仕様ブ ロ ッ ク を配置 し ます。 フ ァ イ ルのキー セグ メ ン ト ご と に 16 バ イ ト のキー仕
様ブ ロ ッ ク を割 り 当て ます。 キー ポジシ ョ ンお よ びキー長の情報は整数で格納 し ます。
30
Create (14)
キー セグ メ ン ト の最大許容数は、 フ ァ イ ルのページ サ イ ズに よ っ て異な り ます。
ページ サイズ (バイト数)
キー セグメントの最大数 (ファイル バージョン別)
8.x 以前
9.0
9.5
512
8
8
切 り 上げ 2
1,024
23
23
97
1,536
24
24
切 り 上げ 2
2,048
54
54
97
2,560
54
54
切 り 上げ 2
3,072
54
54
切 り 上げ 2
3,584
54
54
切 り 上げ 2
4,096
119
119
204 (ま たは 119)
3
8,192
N/A1
119
420 (ま たは 119)
3
16,384
N/A1
N/A1
420 (ま たは 119)
3
1
N/A は 「適用外」 を意味 し ます。
2
「切 り 上げ」 は、 ページ サ イ ズ を、 フ ァ イ ル バージ ョ ン でサポー ト さ れ る 次のサ イ ズへ切 り 上げ る こ と を意味 し ます。 た
と えば、 512 は 1,024 に切 り 上げ ら れ、 2,560 は 4,096 に切 り 上げ る と い う こ と です。
3
リ レーシ ョ ナル イ ン タ ーフ ェ イ ス で使用で き る イ ンデ ッ ク ス セグ メ ン ト の最大数は 119 です。 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス の場合、 最大数は、 ページ サ イ ズ 4,096 では 204、 ページ サ イ ズ 8,192 お よ び 16,384 では 420 です。
『Status Codes and Messages』 の ス テー タ ス コ ー ド 「26 : 指定 さ れた キーの数が不正です。」 お よ び 「29 : キー長
が不正です。」 を参照 し て く だ さ い。
キー ポジ シ ョ ン。 (オ フ セ ッ ト 0x00) キー ポジシ ョ ンは、 キーま たはキー セグ メ ン ト の開始位置のバ イ ト オ フ
セ ッ ト です。 ポジシ ョ ンは 1 か ら の相対にな り ます。 レ コ ー ド の先頭に位置す る キーは、 ポジシ ョ ン 1 か ら 始ま
り ます。 ポジシ ョ ン 0 はあ り ません。
キー長。 (オ フ セ ッ ト 0x02) キーま たはキー セグ メ ン ト の長 さ です。 キーの最大長は、 すべてのキー セグ メ ン ト
を含めて、 255 バ イ ト です。
キー フ ラ グ。 (オ フ セ ッ ト 0x04) キー フ ラ グ ワー ド のビ ッ ト を セ ッ ト し て、 キーの属性を指定 し ます。 表 10 に、
キー フ ラ グの値の 2 進、 16 進、 お よ び 10 進表記を示 し ます。
表 10 キー フ ラ グの値
属性
定数
2 進数
16 進数
重複許可 ( リ ン ク さ れた重複はデフ ォ ル ト 、
あ る い は 繰 り 返 し 重 複 用 に
REPEAT_DUPS_KEY と 組み合わせ る )
DUP
0000 0000 0000 0001
1
1
変更可能キー値
MOD
0000 0000 0000 0010
2
2
旧形式の BINARY デー タ 型を使用
BIN
0000 0000 0000 0100
4
4
0000 0000 0000 0000
0
0
0000 0000 0000 1000
8
8
旧形式の STRING デー タ 型を使用 (ビ ッ ト 2
お よ び 8 は 0 にす る 必要があ り ます)
ヌ ル キー (全セグ メ ン ト )
NUL
10 進数
31
Btrieve API オペ レーシ ョ ン
表 10 キー フ ラ グの値
属性
定数
2 進数
16 進数
10 進数
セ グ メ ン ト キー
SEG
0000 0000 0001 0000
10
16
デフ ォ ル ト の ACS を使用
ALT
0000 0000 0010 0000
20
32
フ ァ イ ル内の番号付 き の ACS を使用
NUMBERED_ACS
0000 0100 0010 0000
420
1,056
名前付 き の ACS を使用
NAMED_ACS
0000 1100 0010 0000
C20
3,104
降順 ソ ー ト
DESC_KEY
0000 0000 0100 0000
40
64
繰 り 返 し 重複 (DUP 属性 と 組み合わせ る )
REPEAT_DUPS_KEY
0000 0000 1000 0000
80
128
拡張デー タ 型を使用
EXTTYPE_KEY
0000 0001 0000 0000
100
256
ヌ ル キー (一部セ グ メ ン ト )
MANUAL_KEY
0000 0010 0000 0000
200
512
大文字小文字無視キー
NOCASE_KEY
0000 0100 0000 0000
400
1,024
互換性のない フ ラ グの使用は避けて く だ さ い。 同一ビ ッ ト 位置を使用す る フ ラ グ間には互換性はあ り ません。 未
使用のビ ッ ト は将来使用す る ために予約 さ れてい ます。 こ れ ら のビ ッ ト には 0 を設定 し ます。
キーの属性を組み合わせ る には、 対応す る キー フ ラ グの値を加算 し ます。 た と えば、 キーが拡張キー タ イ プで、
セグ メ ン ト キーの一部であ り 、 さ ら に降順に照合 さ れ る 場合は、 キー フ ラ グ ワ ー ド を 336 (256 + 16 + 64) に初
期化 し ます。
セグ メ ン ト キー属性は、デー タ バ ッ フ ァ ー内の次のキー仕様ブ ロ ッ ク が同一キーの次のセグ メ ン ト を指す こ と を
示 し ます。 セグ メ ン ト キーについては以下の規則に従っ て く だ さ い。
„
同一キーのすべてのセグ メ ン ト で、 重複可能、 繰 り 返 し 重複、 変更可能お よ びヌ ル キーの値はそれぞれ同 じ
でなければな り ません (レ ガシー ヌ ル キー属性を指定す る 場合は、全セグ メ ン ト ま たは一部セグ メ ン ト の ど
ち ら の場合に も 、 セグ メ ン ト ご と に異な る ヌ ル値を割 り 当て る こ と がで き ます)。
„
同一キーのすべてのセグ メ ン ト で、 同一 ACS を使用す る 必要があ り ます。
„
同一キーのセグ メ ン ト ご と に、 異な る 降順 ソ ー ト お よ び拡張デー タ 型の値を設定で き ます。
ACS は、 STRING、 LSTRING お よ び ZSTRING キーにのみ適用で き ま す。 大文字小文字の区別を 無視 し 、 かつ
ACS を使用す る キーを定義す る こ と はで き ません。 あ る キーの一部のセグ メ ン ト に し か ACS が指定 さ れていな
い フ ァ イ ルの場合、 ACS が指定 さ れてい る セグ メ ン ト はその ACS に従っ て ソ ー ト さ れ、 ACS が指定 さ れていな
いセグ メ ン ト はそれぞれの型に従っ て ソ ー ト さ れます。
32
Create (14)
拡張デー タ 型。 (オ フ セ ッ ト 0x0A) 拡張デー タ 型を キー仕様ブ ロ ッ ク のバ イ ト 10 にバ イ ナ リ 値で指定 し ます。 表
11 に、 拡張デー タ 型に対応す る コ ー ド を示 し ます。
表 11 拡張デー タ 型
データ型
コード
データ型
コード
CHAR
0
ZSTRING
11
INTEGER
1
UNSIGNED BINARY
14
FLOAT
2
AUTOINCREMENT
15
DATE
3
NUMERICSTS
17
TIME
4
NUMERICSA
18
DECIMAL
5
CURRENCY
19
MONEY
6
TIMESTAMP
20
LOGICAL
7
WSTRING
25
NUMERIC
8
WZSTRING
26
BFLOAT
9
GUID
27
LSTRING
10
NULL INDICATOR SEGMENT
255
拡張デー タ 型の コ ー ド 12、 13、 16 お よ び 21 か ら 24 ま では将来使用する ために予約 さ れてい ます。
STRING お よ び UNSIGNED BINARY デー タ 型は、 標準型 と 拡張型の ど ち ら と し て も 定義で き ます。 こ れに よ り 、
以前のバージ ョ ンの Btrieve API を使っ て開発 し た アプ リ ケーシ ョ ン と の互換性が保て る 一方、新 し いアプ リ ケー
シ ョ ンで拡張デー タ 型を排他的に使用で き る よ う にな り ます。
キーに割 り 当て る デー タ 型に関 し 、 入力 し た レ コ ー ド がそのキーに定義 さ れてい る デー タ 型に合っ てい る か ど う
かは、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では確認 さ れません。 た と えば、 TIMESTAMP キーを フ ァ イ ルに定
義す る こ と がで き ますが、 そ こ に文字列を格納す る こ と も で き ます。 Btrieve API アプ リ ケーシ ョ ン では問題な く
動作 し ていて も 、ODBC アプ リ ケーシ ョ ンで同 じ デー タ に ODBC TIMESTAMP デー タ 型を使っ て ア ク セ ス し よ う
と する と 、 正常に動作 し ない こ と があ り ます。 こ れはおそ ら く 、 バ イ ト の形式が異な り 、 タ イ ム ス タ ンプ値を生
成す る アルゴ リ ズ ムが異な る か ら です。デー タ 型の説明については、『SQL Engine Reference』 を参照 し て く だ さ い。
ヌル値。 (オ フ セ ッ ト 0x0B) キー仕様ブ ロ ッ ク の こ のオ フ セ ッ ト は、 キーの除外値を表 し ます。 あ る キーを ヌ ル
キー と し て定義 し た場合は、各キー セグ メ ン ト の ヌ ル値 と し て認識 さ せ る 値を ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス に提供す る 必要があ り ます。 こ れは、 レ ガシー ヌ ルへの参照内にあ り 、 真の ヌ ルには影響 し ません。 ヌ ルの
サポー ト の説明については、 『Pervasive PSQL Programmer's Guide』 の 「 ヌ ル値」 を参照 し て く だ さ い。
手動割 り 当てキー番号。 (オ フ セ ッ ト 0x0E) ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 イ ンデ ッ ク ス 付 き の
フ ァ イ ルを作成す る と き に、 アプ リ ケーシ ョ ンで特定のキー番号を割 り 当て る こ と がで き ます。 フ ァ イ ルの各 イ
ンデ ッ ク ス に手動でキー番号を割 り 当て る には、各キー番号を キー仕様ブ ロ ッ ク のバ イ ト 14 にバ イ ナ リ 値で指定
し 、 フ ァ イ ル フ ラ グ ワ ー ド にキー番号ビ ッ ト (0x400) を設定 し ます。
キー番号はフ ァ イ ルで一意であ り 、 キー 0 か ら 昇順に指定 さ れていなければな り ません。 ま た、 有効な値、 つま
り 、 フ ァ イ ルのページ サ イ ズに対す る キーの最大数 よ り も 小 さ い値でなければな り ません。
手動でキー番号を割 り 当て る と い う 機能は、 キーを削除 し て、 その削除 し た キー よ り も 大 き な キー番号を持つす
べてのキーの番号を ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に付け替え さ せない よ う にす る 機能 と 相補関係にあ
り ます。 た と えば、 アプ リ ケーシ ョ ンか ら イ ンデ ッ ク ス を削除 し 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス にそれ
よ り も 大 き な番号を持つキーの番号を付け替えない よ う に指示を出 し た場合、 その後でユーザーが具体的な キー
番号を割 り 当てずに影響を受けた フ ァ イ ルを複製する と 、 複製 し た フ ァ イ ルには元の フ ァ イ ル と は別のキー番号
が割 り 当て ら れます。
33
Btrieve API オペ レーシ ョ ン
ACS 番号。 (オ フ セ ッ ト 0x0F) 特定の ACS を使用す る キーの場合、 キー仕様ブ ロ ッ ク のオ フ セ ッ ト 0x0F に よ り 、
キーの照合に使用す る ACS 番号が示 さ れ ます。 ACS 番号はデー タ バ ッ フ ァ ー内の位置に基づいて決ま り ます。
最後のキー仕様ブ ロ ッ ク に続 く 最初の ACS は、 ACS 番号 0 にな り ます。ACS 0 の次には ACS 1、 その次には ACS
2、 と い う よ う に続 き ます。
オル タ ネー ト コ レーテ ィ ング シーケ ン ス (ACS)
アプ リ ケーシ ョ ンでは、 デー タ バ ッ フ ァ ー内の最後のキー仕様ブ ロ ッ ク の直後か ら ACS を 1 つずつ順に指定 し
ます。
ユーザー定義の ACS。 文字列値を ASCII 標準 と は異な る 並び順で ソ ー ト す る ACS を作成する には、 表 12 に示す
形式を使っ て、 アプ リ ケーシ ョ ンか ら デー タ バ ッ フ ァ ーに直接 265 バ イ ト を設定す る 必要があ り ます。
表 12 ユーザー定義の ACS を作成する ためのデー タ バ ッ フ ァ ー
位置
(オフセット)
長さ
(バイト単位)
説明
0
1
識別バ イ ト 。 0xAC を指定 し ます。
1
8
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に ACS を識別 さ せ る 、 8 バ イ ト の一意の名前。
9
256
256 バ イ ト のマ ッ プ。マ ッ プ内の 1 バ イ ト の位置はそれぞれ、マ ッ プ内でのその位置のオ フ セ ッ
ト と 同 じ 値を持つ コ ー ド ポ イ ン ト に対応 し ま す。 その位置にあ る バ イ ト の値は、 コ ー ド ポ イ
ン ト に割 り 当て ら れ る コ レ ーテ ィ ン グ ウ ェ イ ト です。 た と えば、 コ ー ド ポ イ ン ト 0x61 ('a')
を コ ー ド ポ イ ン ト 0x41 ('A') と 同 じ ウ ェ イ ト で ソ ー ト さ せ る には、 オ フ セ ッ ト 0x61 お よ び
0x41 に同一の値を設定 し ます。
ユーザー定義の ACS の例については、 『Pervasive PSQL Programmer's Guide』 の 「オル タ ネー ト コ レーテ ィ ン グ
シーケ ン ス」 を参照 し て く だ さ い。
イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) 。 ISR を指定す る には、 以下の形式でアプ リ ケーシ ョ ンか ら デー タ バ ッ
フ ァ ーに直接 265 バ イ ト を設定す る こ と が必要です。
表 13 ISR ACS を指定する ためのデー タ バ ッ フ ァ ー
位置
(オフセット)
長さ
(バイト単位)
0
1
1
16
17
248
説明
識別バ イ ト 。 0xAE を指定 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に ISR テーブルを識別 さ せ る 、16 バ イ ト の一意の名前。
ISR テーブル名の リ ス ト については、『Pervasive PSQL Programmer's Guide』を参照 し て く だ さ い。
Filler
デー タ バ ッ フ ァ ー長
デー タ バ ッ フ ァ ー長は、 フ ァ イ ル仕様、 キー仕様、 お よ び定義 さ れてい る ACS を十分に格納で き る だけの長 さ
を持つ必要があ り ます。 こ のパ ラ メ ー タ ーに フ ァ イ ルの レ コ ー ド 長を指定 し ないで く だ さ い。
た と えば、 1 セグ メ ン ト のキーを 2 つ と ACS を 1 つ持つフ ァ イ ルを作成する には、 Create オペレーシ ョ ンのデー
タ バ ッ フ ァ ーには、 以下の よ う に、 少な く と も 313 バ イ ト の長 さ が必要です。
34
フ ァ イ ル仕様
+
キー仕様
+
キー 2 仕様
+
ACS
16
+
16
+
16
+
265
= 313
Create (14)
キー番号
Create オペレーシ ョ ンのキー番号パ ラ メ ー タ ーは、 同名の フ ァ イ ルが既に存在する 場合に ト ラ ンザ ク シ ョ ナル イ
ン タ ーフ ェ イ ス が警告を出すか ど う か を決定す る ために、 ま た、 フ ァ イ ルの作成時に ト ラ ン ザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス が ロ ーカル エン ジ ン と リ モー ト エン ジ ンの ど ち ら を使用する か を決定する ために使用 さ れます。
表 14 を使っ て、 キー番号パ ラ メ ー タ ーで使用する 値を決定 し ます。
メ モ ロ ーカル エン ジ ンで フ ァ イ ルを作成する よ う 指定する 場合は、 ワ ー ク グループ エン ジ ン で も サーバー
エン ジ ンで も 、 Create オペレーシ ョ ンに何 ら 違いはあ り ません。
表 14 Create オペ レーシ ョ ンのキー番号パラ メ ー タ ー
CREATE オペレーション
選択しない
ローカル エンジンにファ
イルを作成させる
リモート エンジンにファイ
ルを作成させる
標準の作成 (フ ァ イ ルが既存の場合、上書 き す る )
0
6
99
フ ァ イ ルが既存の場合、 ス テー タ ス 59 を返す
-1
7
100
Create オペ レーシ ョ ンに よ る削除および名前変更サブ フ ァ ン ク シ ョ ン
Create オペレーシ ョ ンには 2 つのサブ フ ァ ン ク シ ョ ンがあ り 、 こ れを使用 し て フ ァ イ ルの削除ま たは名前変更が
で き ます。
Pervasive.SQL v8.5 よ り 前の リ リ ー ス では、 オペ レ ーテ ィ ン グ シ ス テ ム を介 し て ト ラ ン ザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス フ ァ イ ルを操作す る こ と は常に可能で し た。 こ れは、オペレーテ ィ ン グ シ ス テ ムが Pervasive PSQL ユー
ザーに与え る 権限に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が依存 し ていたためです。
し か し 現在は、 セキ ュ リ テ ィ が設定 さ れた Pervasive PSQL デー タ ベース があ る 場合、 承認 さ れていないア ク セ ス
か ら デー タ ベース を保護す る 過程において、 こ の よ う なオペレーテ ィ ン グ シ ス テ ムのア ク セ ス権は除去 さ れ る こ
と があ り ます。 こ れに よ り 、 必ず し も 必要な権限を利用で き る と は限 ら な く な る ため、 プ ロ グ ラ ムに よ る フ ァ イ
ルの削除や移動が困難にな り ま し た。
名前変更 と 削除のサブ フ ァ ン ク シ ョ ンは、 代替キー番号を持つ Create オペレーシ ョ ン と し て実装 さ れてい ます。
新規デー タ フ ァ イ ルを作成す る 場合の よ う に フ ァ イ ル仕様を指定す る 必要はあ り ません。 Create オペレーシ ョ ン
で名前変更 と 削除サブ フ ァ ン ク シ ョ ン を使用する ための設定方法を、 次の表に示 し ます。
表 15 Create オペ レーシ ョ ンのサブ フ ァ ン ク シ ョ ン
機能
使用するキー番号
説明
データ バッファーに
指定するもの
キー バッファーに指
定するもの
フ ァ イ ルの名前
変更
-127
デー タ バ ッ フ ァ ーの既存の フ ァ イ ル
を、 キー バ ッ フ ァ ーの名前に変更 し
ます。
既存の フ ァ イ ル名
新 し い フ ァ イ ル名
フ ァ イ ルの削除
-128
フ ァ イ ルを削除 し ます。
適用外
既存の フ ァ イ ル名
こ れ ら のサブ フ ァ ン ク シ ョ ンはセキ ュ リ テ ィ モデルで動作す る よ う に変更 さ れま し た。 その変更点 と し て、 サブ
フ ァ ン ク シ ョ ンは削除ま たは名前変更す る ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス フ ァ イ ルを示すために、必要に
応 じ て、 キー バ ッ フ ァ ーお よ びデー タ バ ッ フ ァ ーで フ ァ イ ル名の代わ り に URI を受け入れ る よ う にな り ま し た。
こ れに よ り 、 セキ ュ リ テ ィ 情報をオペレーシ ョ ンに指定する こ と がで き ます。 URI 接続文字列の詳細については、
『Pervasive PSQL Programmer's Guide』 の 「デー タ ベース URI」 を参照 し て く だ さ い。
35
Btrieve API オペ レーシ ョ ン
セキ ュ リ テ ィ 情報は、 通常の Create ま たは Open オペレーシ ョ ン と ま っ た く 同様に処理 さ れます。 ユーザーは認
証 さ れ、 か つ、 既 存 の フ ァ イ ル に 対 し て、 ま た 新 し い フ ァ イ ル の 保存 場所 と な る デ ィ レ ク ト リ に 対 し て
DB_RIGHT_CREATE、 DB_RIGHT_ALTER、 お よ び DB_RIGHT_OPEN 権限を持っ てい る 必要があ り ます。
表 16 Create サブ フ ァ ン ク シ ョ ン -キー バ ッ フ ァ ーでの URI パラ メ ー タ ーの使用
URI パラメーター
file=
URI パラメーター
dbfile=
URI パラメーター
table=
名前変更
○
○
×
削除
○
○
×
機能
表 17 Create サブ フ ァ ン ク シ ョ ン -デー タ バ ッ フ ァ ーでの URI パラ メ ー タ ーの使用
機能
file=
dbfile=
table=
名前変更
○
○
×
適用外
適用外
適用外
削除
名前変更および削除サブ フ ァ ン ク シ ョ ン での注意
„
以前の Create オペレーシ ョ ンの機能は変更 さ れてい ません。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス デー タ
フ ァ イ ルを新規作成す る 場合は、 既存マニ ュ アルの Create オペレーシ ョ ンの説明に従っ て く だ さ い。
„
RenameFile お よ び DeleteFile サブ フ ァ ン ク シ ョ ンは種々雑多なページの内容には影響 し ないため、 特定の
デー タ ベース にバ イ ン ド さ れてい る フ ァ イ ルに使用する こ と はで き ません。
„
フ ァ イ ルにオーナー ネームが含まれてい る 場合、新 し いサブ フ ァ ン ク シ ョ ンではオーナー ネームのチ ェ ッ ク
は行われません。 オーナー ネームはフ ァ イ ルの内容を表示 さ せ る ためには、 引 き 続 き 必要です。
結果
Create オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 同名の フ ァ イ ルが既
に存在す る と 警告 さ れ る か、 仕様に従っ て新 し い フ ァ イ ルが作成 さ れます。 新規フ ァ イ ルには レ コ ー ド は含まれ
てい ません。 Create オペレーシ ョ ン では作成 し た フ ァ イ ルを開き ません。 し たが っ て、 フ ァ イ ルにア ク セ スす る
には、 アプ リ ケーシ ョ ンで Open オペレーシ ョ ン を実行す る 必要があ り ます。
Create オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー
タ ス コ ー ド のいずれかが返 さ れます。
36
2
アプ リ ケーシ ョ ンで I/O エ ラ ーが発生 し ま し た。
11
指定 さ れた フ ァ イ ル名は不正です。
18
デ ィ ス ク がいっぱいです。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。 次の ス テー タ ス コ ー ド
24
ページ サ イ ズ ま たはデー タ バ ッ フ ァ ー サ イ ズが不正です。
25
アプ リ ケーシ ョ ンが指定 さ れた フ ァ イ ルを作成で き ません。
26
指定 さ れた キーの数が不正です。
27
キー ポジシ ョ ンが不正です。
28
レ コ ー ド 長が不正です。
29
キー長が不正です。
Create (14)
48
オル タ ネー ト コ レーテ ィ ン グ シーケ ン ス定義が不正です。
49
拡張キー タ イ プが不正です。
59
指定 さ れた フ ァ イ ルは既に存在 し ます。
104
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が ロ ケールを認識 し ません。
105
こ の フ ァ イ ルは、 可変長部割 り 当て テーブル (VAT) 付 き で作成す る こ と はで き ません。
134
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) を読み取れません。
135
指定 さ れた イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) テーブルは破損 し てい る か、 ま たは不正です。
ポジ シ ョ ニ ング
Create オペレーシ ョ ン を実行 し て も 、 フ ァ イ ルにカ レ ン シーは確立 し ません。
37
Btrieve API オペ レーシ ョ ン
Create Index (31)
Create Index オペレーシ ョ ン (B_BUILD_INDEX) では、 既存の フ ァ イ ルにキーを追加 し ます。
パラ メ ー タ ー
オペレーション
コード
ポジション
ブロック
○
○
送り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
戻り値
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ル内の既存のキー セグ メ ン ト 数は、 許容 さ れ る キー セグ メ ン ト の最大数か ら 追加す る キー セグ メ ン
ト 数を差 し 引いた値以下でなければな り ません。
„
許容 さ れ る キー セグ メ ン ト の最大数は、 フ ァ イ ルのページ サ イ ズに よ っ て決ま り ます。 次の表に、 ページ
サ イ ズ と キー セグ メ ン ト の最大数を示 し ます。
ページ サイズ (バイト数)
キー セグメントの最大数 (ファイル バージョン別)
8.x 以前
9.0
9.5
512
8
8
切 り 上げ 2
1,024
23
23
97
1,536
24
24
切 り 上げ 2
2,048
54
54
97
2,560
54
54
切 り 上げ 2
3,072
54
54
切 り 上げ 2
3,584
54
54
切 り 上げ 2
4,096
119
119
204 (ま たは 119)
3
8,192
N/A1
119
420 (ま たは 119)
3
16,384
N/A1
N/A1
420 (ま たは 119)
3
1
N/A は 「適用外」 を意味 し ます。
2
「切 り 上げ」 は、 ページ サ イ ズ を、 フ ァ イ ル バージ ョ ン でサポー ト さ れ る 次のサ イ ズへ切 り 上げ る こ と を意味
し ます。 た と えば、 512 は 1,024 に切 り 上げ ら れ、 2,560 は 4,096 に切 り 上げ る と い う こ と です。
3
リ レーシ ョ ナル イ ン タ ーフ ェ イ ス で使用で き る イ ンデ ッ ク ス セグ メ ン ト の最大数は 119 です。 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス の場合、 最大数は、 ページ サ イ ズ 4,096 では 204、 ページ サ イ ズ 8,192 お よ び 16,384 では
420 です。
『Status Codes and Messages』 の ス テー タ ス コ ー ド 「26 : 指定 さ れた キーの数が不正です。」 お よ び 「29 : キー
長が不正です。」 を参照 し て く だ さ い。
38
Create Index (31)
„
新 し いキーのキー フ ラ グ、 位置お よ び長 さ が、 キーを追加 し よ う と し てい る フ ァ イ ルに対 し て適切であ る こ
と を確認 し ます。
„
ト ラ ンザ ク シ ョ ンが実行中でない こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 31 を設定 し ます。
2
キーを追加す る フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
キーの各セグ メ ン ト について、16 バ イ ト のキー仕様ブ ロ ッ ク をデー タ バ ッ フ ァ ーに格納 し ます。表 8 で定義
さ れてい る も の と 同 じ 構造体を使用 し ます。 キー ポジシ ョ ンお よ びキー長の情報は整数で格納 し ます。 シ ス
テ ム定義の ロ グ キー (シ ス テ ム デー タ と も 言い ます) を再構築 し てい る 場合、 デー タ バ ッ フ ァ ーは少な く
と も 16 バ イ ト の長 さ で、 ゼ ロ に初期化 さ れてい る 必要があ り ます。
4
新 し いキーに ACS を定義す る には、 次のいずれかの手順を実行 し ます。
Š
デフ ォ ル ト の ACS、 つま り 、 フ ァ イ ルに既に定義 さ れてい る 先頭の ACS を使用す る には、 キー フ ラ グ
ワ ー ド に 「デフ ォ ル ト の ACS を使用」 属性を指定 し ます。
Š
新 し い ACS を定義す る には、 キー フ ラ グ ワ ー ド に 「番号付き の ACS を使用」 属性を指定 し 、 ACS 番
号フ ィ ール ド にゼ ロ (0) を設定 し ます。 さ ら に、 デー タ バ ッ フ ァ ーの最後のキー仕様ブ ロ ッ ク の後に
265 バ イ ト の ACS を格納 し ます。
Š
名前に よ っ て既存の ACS を指定す る には、 キー フ ラ グ ワー ド に 「名前付き の ACS を使用」 属性を指定
し 、 ACS 番号フ ィ ール ド にゼ ロ (0) を設定 し ま す。 さ ら に、 ACS 名を、 デー タ バ ッ フ ァ ーの最後の
キー仕様ブ ロ ッ ク の後にあ る 265 バ イ ト のブ ロ ッ ク の先頭か ら 格納 し ます(名前 よ り 後の ACS ブ ロ ッ ク
の残 り 部分は無視 さ れます)。 名前の形式は次のいずれかに従っ てい る 必要があ り ます。
ACS の種類
長さ (バイト単位)
説明
ユーザー定義の ACS
1
識別バ イ ト 0xAC
8
ACS テーブル名
1
識別バ イ ト 0xAE
16
ISR テーブル名
〃
ISR
〃
5
デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーにデー タ バ ッ フ ァ ー内のバ イ ト 数を設定 し ます。 新 し いキーが ACS を持
た ない、 も し く はデフ ォ ル ト の ACS を使用す る 場合は、 次の式を使っ て正 し いデー タ バ ッ フ ァ ー長を決定
し ます。
16 * ( セグ メ ン ト 数 )
新 し いキーでデフ ォ ル ト 以外の ACS を指定す る 場合は、 次の式を使っ て正 し いデー タ バ ッ フ ァ ー長を決定
し ます。
16 * ( セグ メ ン ト 数 ) + 265
6
作成 さ れ る キーに特定のキー番号を割 り 当て る には、目的のキー番号に 0x80 を加算 し 、 その合計値を キー番
号パ ラ メ ー タ ーに入れます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を再構築 し てい る 場合は、 0xFD
(つま り 、 キー番号 125 + 128) を指定 し ます。
メ モ キー番号はフ ァ イ ルで一意であ る こ と が必要です。 ま た、 有効な値でなければな り ません (つま り 、 各
キー番号の値は、 フ ァ イ ルのページ サ イ ズに対 し て許容 さ れ る キーの最大数 よ り も 小 さ い値でなければな り
ません)。
39
Btrieve API オペ レーシ ョ ン
詳細
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 キーを作成す る と き に特定のキー番号を割 り 当て る こ と がで き ま
す。 こ の機能は、 キーを削除 し て、 その削除 し た キー よ り も 大 き な キー番号を持つすべてのキーの番号を ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に付け替え さ せない よ う にす る 機能 と 相補関係にあ り ます。 アプ リ ケーシ ョ ンが
イ ンデ ッ ク ス を削除 し 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス にそれ よ り も 大 き な番号を持つキーの番号を付け
替え ない よ う に指示を出 し た場合、 その後でユーザーが具体的な キー番号を割 り 当てずに影響を受けた フ ァ イ ル
を複製す る と 、 複製 し た フ ァ イ ルには元の フ ァ イ ル と は別のキー番号が割 り 当て ら れます。
デー タ バ ッ フ ァ ーで ACS を定義す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は ACS 定義を フ ァ イ ルに追加す
る 前に、 まず指定 さ れた名前を使っ て既存の ACS をチ ェ ッ ク し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が
指定 さ れた名前を持つ既存の ACS を検出 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はフ ァ イ ル内で ACS
定義の複製は行わず、 既存の ACS と 新 し いキー と の関連付け を行い ます。
キー フ ラ グ ワ ー ド に 「名前付 き の ACS を使用」 属性を指定 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ スは
デー タ バ ッ フ ァ ーに指定 さ れた ACS 名を使っ て フ ァ イ ル内で同名の ACS を検索 し てか ら 、 その ACS を新 し い
キーに割 り 当て ます。
フ ァ イ ルが複数の ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て開かれてお り 、あ る ク ラ イ ア ン ト が Create Index
プ ロ セ ス を開始 し た場合、 リ モー ト ク ラ イ ア ン ト は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て キーが作成
さ れてい る 間 も 、 同 じ フ ァ イ ルに対 し て Get お よ び Step オペレーシ ョ ン を実行で き ます。
作成 さ れ る キーが AUTOINCREMENT キーでない場合は、リ モー ト ク ラ イ ア ン ト の Get お よ び Step オペレーシ ョ
ンに ロ ッ ク バ イ ア ス を使用で き 、 Create Index プ ロ セ ス が完了 し た と き に、 読み取 り オペレーシ ョ ン を さ ら に発
行 し な く て も 、 ロ ッ ク さ れていた レ コ ー ド を更新 し た り 削除 し た り で き ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス ではキーを作成す る ために レ コ ー ド の イ メ ージ を変更する 必要がないため、 こ の よ う な処理が可能にな り ま
す。
ただ し 、 作成 さ れ る キーが AUTOINCREMENT キーであ る 場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では イ
ンデ ッ ク ス を構築 し 、かつ適切な フ ィ ール ド でゼ ロ 値を使っ てすべての レ コ ー ド を変更す る 必要があ り ます。キー
の作成前ま たは最中に ロ ッ ク バ イ ア ス を使わずに Get ま たは Step オペレーシ ョ ン を実行 し た リ モー ト ク ラ イ ア
ン ト は、キーの作成が正常に終了 し た後で Update ま たは Delete オペレーシ ョ ン を実行す る と き 、ス テー タ ス コ ー
ド 80 を受け取 り ます。
ま た、 あ る ク ラ イ ア ン ト が レ コ ー ド を ロ ッ ク し てい る 最中に、 別の ク ラ イ ア ン ト が AUTOINCREMENT キーを作
成 し よ う と す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 84 が返 さ れます。 同様に、 あ
る ク ラ イ ア ン ト が AUTOINCREMENT キーの イ ンデ ッ ク ス を作成 し てい る 最中に、別の ク ラ イ ア ン ト が ロ ッ ク バ
イ ア ス を使っ て Get ま たは Step オペレーシ ョ ン を実行 し よ う と す る と 、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か
ら ス テー タ ス コ ー ド 85 が返 さ れます。
結果
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はフ ァ イ ルに新 し いキーを直ちに追加 し ます。 こ のオペレーシ ョ ンの所要
時間は、 イ ンデ ッ ク ス が作成 さ れ る 総レ コ ー ド 数、 フ ァ イ ルのサ イ ズお よ び新 し い イ ンデ ッ ク ス の長 さ に よ っ て
変わ り ます。
Create Index オペレーシ ョ ンが正常に終了 し た場合、 新 し いキーの番号は指定 し た番号にな る か、 ま たは次のいず
れかにな り ます。
„
キー番号が飛んでいない フ ァ イ ルの場合は、 新 し いキー番号は以前の最大のキー番号 よ り 1 つ大 き く な り ま
す。
„
キー番号が飛んでい る フ ァ イ ルの場合は、 新 し いキー番号は欠けてい る キー番号の う ちの最小の番号にな り
ます。
オペレーシ ョ ンの終了 し だい、 新 し いキーを使っ てデー タ にア ク セ スす る こ と がで き る よ う にな り ます。
Create Index オペレーシ ョ ンが正常に実行 さ れなか っ た場合、新 し い イ ンデ ッ ク ス の一部が既に構築 さ れていた と
し て も 、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はそれをすべて削除 し ま す。 エ ラ ーが発生す る 前に新 し い イ ン
デ ッ ク ス に割 り 当て ら れた フ ァ イ ル ページは、 フ ァ イ ルの空き 領域 リ ス ト に置かれ、 レ コ ー ド を挿入 し た り 別の
キーを作成 し た り す る と き に再利用 さ れます。
40
Create Index (31)
AUTOINCREMENT キーの作成中にエ ラ ーが発生する と 、 それま でに変更 さ れてい る 値はその ま ま残 り ます。 ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れ る 可能性のあ る ス テー タ ス コ ー ド は次の と お り です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
27
キー ポジシ ョ ンが不正です。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
45
指定 し た キー フ ラ グが不正です。
49
拡張キー タ イ プが不正です。
56
イ ンデ ッ ク ス が不完全です。
84
レ コ ー ド ま たはページが ロ ッ ク さ れてい ます。
85
フ ァ イ ルは ロ ッ ク さ れてい ます。
104
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が ロ ケールを認識 し ません。
134
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) を読み取れません。
135
指定 さ れた イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) テーブルは破損 し てい る か、 ま たは不正です。
136
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 指定 さ れたオル タ ネー ト コ レーテ ィ ン グ シーケ ン ス を フ ァ イ ル内
に見つけ ら れません。
キーの作成中に処理が中断 さ れて も 、 フ ァ イ ルのほかのキーを使っ て フ ァ イ ルのデー タ にア ク セ スす る こ と はで
き ま す。 し か し 、 不完全な イ ンデ ッ ク ス を使っ てデー タ にア ク セ ス し よ う と す る と 、 ト ラ ン ザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス か ら 0 以外の ス テー タ ス コ ー ド が返 さ れます。 こ の問題を解決する には、 Drop Index オペレーシ ョ
ン (32) を使っ て不完全な イ ンデ ッ ク ス を削除 し 、 Create Index オペレーシ ョ ン を再発行 し て く だ さ い。
ポジ シ ョ ニ ング
Create Index オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報に ま っ た く 影響 し ません。
41
Btrieve API オペ レーシ ョ ン
Delete (4)
Delete オペレーシ ョ ン (B_DELETE) では、 フ ァ イ ルか ら 既存の レ コ ー ド を削除 し ます。 削除 し た レ コ ー ド が占
有 し ていた スペース は、 新 し い レ コ ー ド を挿入する ために再利用 さ れます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
対象 と な る フ ァ イ ルの物理カ レ ン シーま たは論理カ レ ン シーを確立 し てお く こ と が必要です。 こ の要件を満
たすオペレーシ ョ ンには次の も のがあ り ます。 Get、 Step、 Insert お よ び Update オペレーシ ョ ンです。 ただ し 、
Get ... Extended、 Get Key、 Step ... Extended は除き ます。
手順
1
オペレーシ ョ ン コ ー ド に 4 を設定 し ます。
2
削除す る レ コ ー ド を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
詳細
Delete オペレーシ ョ ン を Extended Get ま たは Extended Step オペレーシ ョ ンの直後に実行 し た場合、 こ れは有効な
オペレーシ ョ ンにな り ません。
Get オペレーシ ョ ンの直後に Delete オペレーシ ョ ン を実行する 場合は、Get オペレーシ ョ ンか ら 返 さ れ る キー番号
を変更 し ないで く だ さ い。 変更 し て し ま う と 、 レ コ ー ド は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で正常に削除 さ
れますが、 レ コ ー ド 削除後に実行す る 最初の Get オペレーシ ョ ン で ス テー タ ス コ ー ド 7 が返 さ れます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 Get Key オペレーシ ョ ン (+50) の後に Delete オペレーシ ョ ン を実
行す る こ と はで き ません。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で Delete オペレーシ ョ ン を実行する 前に、 変更
し よ う と し てい る デー タ ページの現在の使用回数 と 、レ コ ー ド を読み取っ た時点のデー タ ページの使用回数が比
較 さ れます。使用回数を取得す る には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がデー タ ページ を読み取 る 必要が
あ り ます。
Get Key オペレーシ ョ ンではデー タ ページ を読み取 ら ないので、 Delete オペレーシ ョ ンで比較す る ための使用回
数が利用可能にな り ま せん。 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 比較な し にパ ッ シブ並行制御の矛盾
チ ェ ッ ク を実行で き ないため、 Delete オペレーシ ョ ンは正常に実行 さ れ ません。 Delete オペレーシ ョ ンが正常に
実行 さ れない と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 8 が返 さ れます。
結果
Delete オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て フ ァ イ ルか ら レ
コ ー ド が削除 さ れ、 削除 し た レ コ ー ド に ロ ッ ク が設定 さ れていた場合はその ロ ッ ク が解除 さ れ、 さ ら に削除の結
果を反映 し て、 すべてのキー イ ンデ ッ ク ス を調整 さ れます。
42
Delete (4)
Delete オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー
タ ス コ ー ド のいずれかが返 さ れます。
8
現在のポジシ ョ ンが不正です。
80
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で レ コ ー ド レベルの矛盾が発生 し ま し た。
84
レ コ ー ド ま たはページが ロ ッ ク さ れてい ます。
85
フ ァ イ ルは ロ ッ ク さ れてい ます。
Delete オペレーシ ョ ン を実行 し て も フ ァ イ ル サ イ ズは小 さ く な り ません。 レ コ ー ド の削除に よ っ て生 じ る 空 き 領
域は、 今後レ コ ー ド を追加す る と き に再利用 さ れ ます。 デ ィ ス ク 容量を回復す る には、 フ ァ イ ルを再作成 し て、
その フ ァ イ ルにすべての レ コ ー ド を挿入す る し かあ り ません。
ポジ シ ョ ニ ング
Delete オペレーシ ョ ン を実行す る と 、 すべての物理位置情報 と 現在の レ コ ー ド の論理位置は消去 さ れ ますが、 次
の レ コ ー ド ま たは前の レ コ ー ド の論理位置は変わ り ません。
43
Btrieve API オペ レーシ ョ ン
Drop Index (32)
Drop Index オペレーシ ョ ン (B_DROP_INDEX) では、 既存の フ ァ イ ルか ら キーを削除 し ます。
パラ メ ー タ ー
送り値
オペレーショ
ン コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ル内にキーが存在 し てい る こ と が必要です。
„
ト ラ ンザ ク シ ョ ンが実行中でない こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 32 を設定 し ます。
2
削除す る キーを含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
キー番号パ ラ メ ー タ ーに削除す る キーの番号を格納 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ と も
言い ます) を削除す る には、 125 を指定 し ます。
詳細
シ ス テ ム定義の ロ グ キーを削除 し た場合、 Create Index (31) オペレーシ ョ ン を使っ てそれを再構築す る こ と がで
き ます。
キーを削除す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では特に指定がなければ、 削除 し た キー よ り も キー番
号の大 き な キーはすべて自動的に番号が付け替え ら れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 削除 し
た キー よ り も キー番号の大 き な キーは、 番号が 1 ずつ小 さ く な り ます。 た と えば、 キー番号 1、 4、 お よ び 7 を含
むフ ァ イ ルがあ る と し ます。 キー 4 を削除す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では残っ た キーの番号
が 1 と 6 に付け替え ら れます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て キー番号を自動的に付け替え ら れた く ない場合は、 128 と い う バ
イ ア ス を キー番号パ ラ メ ー タ ーに入れ る 値に加算 し ます。 こ れに よ り 、 キー番号は飛んだ ま ま に し てお く こ と が
で き 、 その結果、 フ ァ イ ル内のほかのキー番号に影響を及ぼす こ と な く 、 壊れた イ ンデ ッ ク ス を削除 し 、 その イ
ンデ ッ ク ス を作成 し 直す こ と がで き ます。 イ ンデ ッ ク ス を再構築する には、 Create Index オペレーシ ョ ン (31) を
使い ます。 こ のオペレーシ ョ ンではキー番号を指定で き ます。
ただ し 、 キーを削除 し 、 それ よ り キー番号の大き な キーの番号を付け替えなか っ た場合、 その後でユーザーが具
体的な キー番号を割 り 当てずに影響を受けた フ ァ イ ルを複製す る と 、 複製 し た フ ァ イ ルには元の フ ァ イ ル と は別
のキー番号が割 り 当て ら れます。(ユーザーは Btrieve Maintenance ユーテ ィ リ テ ィ を使っ て フ ァ イ ルを複製で き ま
す。 複製 と は、 あ る 既存の フ ァ イ ル と 同 じ 統計情報を使っ て新 し い空の フ ァ イ ルを作成す る 処理です。)
結果
Drop Index オペレーシ ョ ンが正常に終了 し た場合、 指定 し た イ ンデ ッ ク ス は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス に よ っ て削除 さ れ、 その イ ンデ ッ ク ス に割 り 当て ら れていたページは、 今後の使用のために空 き 領域の リ ス ト
に配置 さ れ ま す。 ま た、 特に指定 し な ければ、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では削除 し た キー よ り も
キー番号の大き な キーの番号が付け替え ら れます。
44
Drop Index (32)
Drop Index オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
6
キー番号パ ラ メ ー タ ーが不正です。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が イ ンデ ッ ク ス を削除中に処理が中断 さ れて も 、 フ ァ イ ルのほかのキーを
使っ て フ ァ イ ルのデー タ にア ク セ スす る こ と はで き ます。 し か し 、 不完全な イ ンデ ッ ク ス を使っ て フ ァ イ ルにア
ク セ ス し よ う と す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 56 が返 さ れます。 処理が
中断 さ れた場合は、 Drop Index オペレーシ ョ ン を再発行 し て く だ さ い。
ポジ シ ョ ニ ング
Drop Index オペレーシ ョ ンは、 フ ァ イ ルの物理カ レ ン シー情報には ま っ た く 影響 し ません。 ただ し 、 直前に論理
カ レ ン シーを確立す る ために使用 し た キーを削除する と 、 論理カ レ ン シーは消去 さ れます。
45
Btrieve API オペ レーシ ョ ン
End Transaction (20)
End Transaction オペレーシ ョ ン (B_END_TRAN) では、 ト ラ ン ザ ク シ ョ ン を終了 し 、 デー タ フ ァ イ ルに適切な
変更を加え ます。 ま た、 ト ラ ンザ ク シ ョ ンに よ っ て設定 さ れたすべての フ ァ イ ル と レ コ ー ド の ロ ッ ク を解除 し ま
す。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
前提条件
End Transaction オペレーシ ョ ン を発行す る 前に、 Begin Transaction オペレーシ ョ ン (19 ま たは 1019) が正常に終
了 し てい る 必要があ り ます。
手順
オペレーシ ョ ン コ ー ド に 20 を設定 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 オペレーシ ョ ン コ ー ド
以外の End Transaction 呼び出 し パ ラ メ ー タ ーはすべて無視 さ れますが、 将来の リ リ ース と の互換性を確保す る た
めに 0 に初期化 し て く だ さ い。
結果
End Transaction オペ レ ーシ ョ ン が正常に終了 し た場合は、 ト ラ ン ザ ク シ ョ ン内で実行 さ れたすべてのオペ レ ー
シ ョ ンの結果が フ ァ イ ルに保存 さ れます。 End Transaction オペレーシ ョ ン を実行 し た後で ト ラ ンザ ク シ ョ ン を中
止す る こ と はで き ません。
End Transaction オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次
の ス テー タ ス コー ド が返 さ れます。
38
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で、 ト ラ ンザ ク シ ョ ン制御フ ァ イ ル I/O エ ラ ーが発生 し ま し た。
ポジ シ ョ ニ ング
End Transaction オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報に ま っ た く 影響 し ません。
46
Find Percentage (45)
Find Percentage (45)
Find Percentage オペ レ ーシ ョ ン (B_GET_PERCENT) は、 ス ク ロ ール バーを 実装す る ウ ィ ン ド ウ 指向の ア プ リ
ケーシ ョ ン で使用す る こ と ので き る 2 つの Btrieve API オペレーシ ョ ンの う ちの 1 つです。 も う 1 つのオペレー
シ ョ ンは Get By Percentage オペレーシ ョ ン (44) です。 Find Percentage では、 キー パ ス ま たはフ ァ イ ル内での レ
コ ー ド の物理位置を基準 と し て、 それに対応する レ コ ー ド のおお よ その位置を検出 し ます。 位置はパーセ ン テー
ジ値で表 さ れます。 パーセ ン テージ値の範囲の定義については、 「結果」 のセ ク シ ョ ン を参照 し て く だ さ い。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
○
○
キー バッ
ファー
キー番号
○
○
メ モ Find Percentage を使っ て、キー パス を基準に対応す る パーセ ン テージ を シー ク す る 場合は、デー タ バ ッ
フ ァ ー パ ラ メ ー タ ーに値を入力す る 必要はあ り ません。 フ ァ イ ル内での レ コ ー ド の物理位置を基準に対応す
る パーセ ン テージ を シー ク する 場合は、 キー バ ッ フ ァ ー パ ラ メ ー タ ーに値を入力する 必要はあ り ません。
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
キー パ ス に基づいてパーセ ン テージ を シー ク す る 場合は、対象 と な る フ ァ イ ルがデー タ オン リ ー フ ァ イ ルで
あ っ てはいけ ません。
„
フ ァ イ ル内の レ コ ー ド の物理位置に基づいてパーセ ン テージ を シー ク す る 場合は、 その レ コ ー ド の 4 バ イ ト
物理位置をデー タ バ ッ フ ァ ー パ ラ メ ー タ ーに指定する 必要があ り ます。 こ の値は、Get Position オペレーシ ョ
ン (22) を使っ て取得で き ます。
手順
1
オペレーシ ョ ン コ ー ド に 45 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
フ ァ イ ル内の レ コ ー ド の物理位置を基準にパーセ ン テージ を シー ク す る 場合は、 レ コ ー ド の物理ア ド レ ス を
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーに格納 し ます。レ コ ー ド のキー パ ス を基準にパーセ ン テージ を シー ク し 、そ
の検索に精度を指定す る 場合は、 「精度」 で指定 さ れてい る よ う にデー タ バ ッ フ ァ ー パ ラ メ ー タ ーを設定 し
ます。 それ以外の場合は、 デー タ バ ッ フ ァ ー パ ラ メ ー タ ーに値を入れ る 必要はあ り ません。
4
デー タ バ ッ フ ァ ー長に最小値であ る 4 バ イ ト を設定 し ます ( こ の 4 バ イ ト と い う 最小長は、 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス の内部的な実装に必要 と さ れます)。検索に精度を設定する 場合は、デー タ バ ッ フ ァ ー
長を最小値の 12 バ イ ト に設定 し ます。
5
キー パス を基準にパーセ ン テージ を シー ク する 場合は、 キー値を キー バ ッ フ ァ ー パ ラ メ ー タ ーに設定 し ま
す。 それ以外の場合は、 キー バ ッ フ ァ ー パ ラ メ ー タ ーに値を入れ る 必要はあ り ません。
6
キー番号パ ラ メ ー タ ーを以下の と お り に設定 し ます。
a. キー パ ス に よ っ てパーセ ン テージ を シー ク す る 場合は、 キー番号パ ラ メ ー タ ーに実際のキー番号を設定
し ます。
47
Btrieve API オペ レーシ ョ ン
b. レ コ ー ド の物理位置に よ っ てパーセ ン テージ を シー ク す る 場合は、 キー番号パ ラ メ ー タ ーに -1 (0xFF)
を設定 し ます。
詳細
Find Percentage オペレーシ ョ ンは、 特に ス ク ロ ール バーの実装をサポー ト す る 目的で用意 さ れてい ます。 こ のオ
ペレーシ ョ ンの精度、 つま り 、 返 さ れたパーセ ン テージ値が レ コ ー ド ま たはキー値の位置を どれだけ精確に反映
し てい る か ど う かは、 さ ま ざ ま な要因に よ っ て影響を受け ます。 こ のため、 ス ク ロ ール バーの実装以外の目的で
使用す る 場合は、 こ のオペレーシ ョ ンの精度を信頼 し ないで く だ さ い。
Find Percentage オペレーシ ョ ン を最適化す る ため、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、フ ァ イ ルの レ コ ー
ド はデー タ ページ間に、 キーは イ ンデ ッ ク ス ページ間に均等に分布 し てい る こ と を前提 と し てい ます。 ただ し 、
分布状態は次の よ う な状況に よ っ て影響を受け ます。
„
フ ァ イ ルが イ ンデ ッ ク ス バ ラ ン ス を使用 し ておら ず、同一範囲内のキーで多数のレ コー ド が削除 さ れてい る。
„
同一範囲内の物理ア ド レ ス で多数の レ コ ー ド が削除 さ れてい る 。
„
フ ァ イ ルに多数の重複す る キー値が含まれてお り 、 そのキーが リ ン ク 重複キーにな っ てい る 。
精度
精度の設定はオプシ ョ ン で、 パーセ ン テージ を測定す る 要素を選択す る こ と がで き ます。 Pervasive PSQL 9 よ り
前の リ リ ース では、 こ の値は常に 10,000 で し た。
精度を指定す る 場合は、 以下の手順に従っ て く だ さ い。
¾
Find Percentage オペ レーシ ョ ンの精度を指定するには
1
デー タ バ ッ フ ァ ーの 2 番目の 4 バ イ ト に ExPc を設定 し ます。
2
3 番目の 4 バ イ ト に希望す る 精度を LoHi Intel 整数で指定 し ます。 選択で き る 精度は、 1 か ら 0xFFFFFFFF ま
での数値です。
3
デー タ バ ッ フ ァ ー長が少な く と も 12 バ イ ト あ る こ と を確認 し て く だ さ い。
た と えば、 365 件の レ コ ー ド が入っ てい る フ ァ イ ルか ら 100 番目の レ コ ー ド を取得 し たい場合、 パーセ ン テージ
に 100、 精度に 365 を使用 し て FindPercentage を実行す る こ と がで き ます。
結果
Find Percentage オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て、 指定
し た キー値ま たはレ コ ー ド の相対位置がデー タ バ ッ フ ァ ーに返 さ れます。 こ の位置は、 キー パ ス ま たはフ ァ イ ル
におけ る オ フ セ ッ ト のパーセ ン テージ と し て表 さ れ、 0 (0 %) か ら 10,000 (100.00%) ま での範囲の値にな り ま
す。 こ れは、 物理位置で も 論理位置で も ないので注意 し て く だ さ い。
パーセ ン テージ値は、 下位バ イ ト 、 上位バ イ ト の順の 2 バ イ ト 整数 と し て返 さ れます。 た と えば、 次の よ う にな
り ます。
16 進数の戻り値
10 進数の戻り値
キー パスまたはファイル内での
パーセンテージ
88h 13h
00 50
50%
ま た、 オペレーシ ョ ンが正常に終了 し た場合には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら デー タ バ ッ フ ァ ー
長に 4 が返 さ れます。
48
Find Percentage (45)
Find Percentage オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次
の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
7
キー番号が変更 さ れま し た。
8
現在のポジシ ョ ンが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
43
指定 さ れた レ コ ー ド ア ド レ ス が不正です。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
ポジ シ ョ ニ ング
Find Percentage オペレーシ ョ ン を実行 し て も 、 カ レ ン シー情報は変更 さ れません。
49
Btrieve API オペ レーシ ョ ン
Get By Percentage (44)
Get By Percentage オペレーシ ョ ン (B_SEEK_PERCENT) は、 ス ク ロ ール バーを実装す る ウ ィ ン ド ウ 指向のアプ
リ ケーシ ョ ンで使用す る こ と ので き る 2 つの Btrieve API オペレーシ ョ ンの う ちの 1 つです。 も う 1 つは 「Find
Percentage (45) 」 です。 Get By Percentage オペレーシ ョ ンは、 フ ァ イ ル内の レ コ ー ド の相対位置に よ っ て レ コ ー
ド を取得 し ます。 こ の位置は、 オペレーシ ョ ン を呼び出す と き に指定 し たパーセ ン テージ値に基づ き ます。 ま た、
こ の位置は特定のキー パ ス を基準 と す る のか、 フ ァ イ ル内の レ コ ー ド の実際の物理位置を表すのか を指定す る 必
要があ り ます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
○
○
○
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
○
メ モ フ ァ イ ル内の レ コ ー ド の物理位置を基準 と し て レ コ ー ド を シー ク す る 場合、Get By Percentage オペレー
シ ョ ンか ら キー バ ッ フ ァ ー パ ラ メ ー タ ーには何の情報 も 返 さ れません。
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
キー パ ス に基づいて レ コ ー ド を シー ク す る 場合は、対象 と な る フ ァ イ ルがデー タ オ ン リ ー フ ァ イ ルであ っ て
はいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 44 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
パーセ ン テージの値を 2 バ イ ト 整数でデー タ バ ッ フ ァ ーに格納 し ます。 パーセ ン テージ値の許容範囲お よ び
関連情報については、 「詳細」 を参照 し て く だ さ い。
4
デー タ バ ッ フ ァ ー長に、 返 さ れ る 可能性のあ る 最大レ コ ー ド 長以上の値を設定 し ます ( ト ラ ンザ ク シ ョ ナル
イ ン タ ーフ ェ イ ス の内部的な実装は、デー タ バ ッ フ ァ ー長に最小値の 4 バ イ ト が設定 さ れてい る こ と を必要
と し ます)。 検索に精度を設定す る 場合は、 デー タ バ ッ フ ァ ー長を最小値の 12 バ イ ト に設定 し ます。
5
キー番号パ ラ メ ー タ ーを設定 し ます。
a. キー パス に よ っ て レ コ ー ド を シー ク する 場合は、 キー番号パ ラ メ ー タ ーに実際のキー番号を設定 し ま
す。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用する には、 125 を指定 し ます。
b. フ ァ イ ル内の レ コ ー ド の物理位置に よ っ て レ コ ー ド を シー ク す る 場合は、 キー番号パ ラ メ ー タ ーに
(0xFF) を設定 し ます。
50
-1
Get By Percentage (44)
詳細
精度を指定 し ない場合 ( 「精度」 を参照) 、 デー タ バ ッ フ ァ ー パ ラ メ ー タ ーの最初の 2 バ イ ト に対す る パーセ ン
テージ値の許容範囲は、 0 (キー パ ス ま たはフ ァ イ ルの先頭を表 し ます) か ら 10,000 (キー パ ス ま たはフ ァ イ ル
の末尾を表 し ます) ま でです。 こ の値は、 小数点以下 2 桁を含む も の と し て、 0% か ら 100.00% の範囲に対応 し
てい ます。 フ ァ イ ル中の 33.33% あ た り にあ る レ コ ー ド を検索す る 場合は、 デー タ バ ッ フ ァ ーに値 3333 を渡 し ま
す。 値は、 下位バ イ ト 、 上位バ イ ト の順の整数 と し て格納 し て く だ さ い。 た と えば、 フ ァ イ ル内の 50% の地点を
シー ク す る には、 5,000 (0x1388) と い う 値を使い ます。 0x1388 の下位バ イ ト と 上位バ イ ト を入れ替え、 0x88 と
0x13 をデー タ バ ッ フ ァ ー パ ラ メ ー タ ーの先頭の 2 バ イ ト に格納 し ます。
レ コ ー ド のキー パ ス を基準にパーセ ン テージ を シー ク し 、 その検索に精度を指定す る 場合は、 「精度」 で指定 さ
れてい る よ う にデー タ バ ッ フ ァ ー パ ラ メ ー タ ーを設定 し ます。
Get By Percentage オペレーシ ョ ンは、 特に ス ク ロ ール バーの実装をサポー ト す る 目的で用意 さ れてい ます。 こ の
オペレーシ ョ ンの精度、 つま り 、 返 さ れた レ コ ー ド が フ ァ イ ル内の指定 し たパーセ ン テージ地点に実際に位置 し
てい る か ど う かは、 さ ま ざ ま な要因に よ っ て影響を受け ます。 こ のため、 ス ク ロ ール バーの実装以外の目的で使
用す る 場合は、 こ のオペレーシ ョ ンの精度を信頼 し ないで く だ さ い。
Get By Percentage オペレーシ ョ ン を最適化す る ため、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 フ ァ イ ルの レ
コ ー ド はデー タ ページ間に、 キーは イ ンデ ッ ク ス ページ間に均等に分布 し てい る こ と を前提 と し てい ます。 ただ
し 、 分布状態は次の よ う な状況に よ っ て影響を受け ます。
„
フ ァ イ ルが イ ンデ ッ ク ス バ ラ ン ス を使用 し ておら ず、同一範囲内のキーで多数のレ コー ド が削除 さ れてい る。
„
同一範囲内の物理ア ド レ ス で多数の レ コ ー ド が削除 さ れてい る 。
„
フ ァ イ ルに多数の重複す る キー値が含まれてお り 、 そのキーが リ ン ク 重複キーにな っ てい る 。
精度
精度の設定はオプシ ョ ン で、 パーセ ン テージ を測定す る 要素を選択す る こ と がで き ます。 Pervasive PSQL 9 よ り
前の リ リ ース では、 こ の値は常に 10,000 で し た。
精度を指定す る 場合は、 以下の手順に従っ て く だ さ い。
¾
Get By Percentage オペ レーシ ョ ンの精度を指定する には
1
デー タ バ ッ フ ァ ーの 2 番目の 4 バ イ ト に ExPc を設定 し ます。
2
3 番目の 4 バ イ ト に希望す る 精度を LoHi Intel 整数で指定 し ます。 選択で き る 精度は、 1 か ら 0xFFFFFFFF ま
での数値です。
3
デー タ バ ッ フ ァ ー長が少な く と も 12 バ イ ト あ る こ と を確認 し て く だ さ い。
た と えば、 365 件の レ コ ー ド が入っ てい る フ ァ イ ルか ら 100 番目の レ コ ー ド を取得 し たい場合、 パーセ ン テージ
に 100、 精度に 365 を使用 し て GetByPercentage を実行する こ と がで き ます。
結果
Get By Percentage オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て、 指
定 し た キー パ ス を基準 と す る 位置 ま たは フ ァ イ ル内の物理位置にあ る レ コ ー ド がデー タ バ ッ フ ァ ーに返 さ れ ま
す。 さ ら に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら は、デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに レ コ ー ド 長がバ イ
ト 単位で返 さ れます。 キー パス に よ っ て レ コ ー ド を シー ク し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か
ら キー バ ッ フ ァ ー パ ラ メ ー タ ーに指定 し た キー パ ス のキー値が返 さ れます。 物理レ コ ー ド 順に よ っ て レ コ ー ド
を シー ク し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら キー バ ッ フ ァ ー パ ラ メ ー タ ーには何の情報 も
返 さ れません。
メ モ Get By Percentage オペレーシ ョ ン でキー パ ス を基準 と し て レ コ ー ド を シー ク し た場合、 そのキーに重
複値が含まれてい る と き は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では常に重複値を含む先頭の レ コ ー ド が
返 さ れます。 こ の よ う な実装の細部に よ っ て、 オペレーシ ョ ンの精度が影響を受け る 場合があ り ます。
51
Btrieve API オペ レーシ ョ ン
Get By Percentage オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら
次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
7
キー番号が変更 さ れま し た。
8
現在のポジシ ョ ンが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
43
指定 さ れた レ コ ー ド ア ド レ ス が不正です。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
ポジ シ ョ ニ ング
指定 し た キー パス を基準 と し て レ コ ー ド を シー ク する と き 、 Get By Percentage オペレーシ ョ ンが正常に終了 し た
場合は、 指定 し た キー番号 と 取得 し た レ コ ー ド のそれぞれに基づいて新 し い論理カ レ ン シーお よ び物理カ レ ン
シーが確立 さ れます。
フ ァ イ ル内の レ コ ー ド の物理位置を基準 と し て レ コ ー ド を シー ク す る と き 、 Get By Percentage オペレーシ ョ ンが
正常に終了 し た場合は、 取得 し た レ コ ー ド に基づいて新 し い物理カ レ ン シーが確立 さ れます。
Get By Percentage オペレーシ ョ ンが正常に実行 さ れなか っ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではカ
レ ン シーは変更 さ れません。
52
Get Direct/Chunk (23)
Get Direct/Chunk (23)
Get Direct/Chunk オペレーシ ョ ン (B_GET_DIRECT) では、 チ ャ ン ク と 呼ばれ る レ コ ー ド の部分を 1 つま たは複
数取得で き ます。 こ のオペレーシ ョ ンは、 65,535 バ イ ト よ り 長い レ コ ー ド を含むフ ァ イ ルで特に役に立ち ます。
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーの長 さ には制限があ る ため、 こ の よ う な レ コ ー ド は長すぎて、 ほかの Get お よ び
Step オペレーシ ョ ンでは取得で き ません。 アプ リ ケーシ ョ ンでは、 物理ア ド レ ス を指定す る こ と で、 チ ャ ン ク が
取得 さ れ る レ コ ー ド を指定 し ます。 通常、 レ コ ー ド 内でのチ ャ ン ク の位置は、 そのオ フ セ ッ ト と 長 さ で指定 さ れ
ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
○
○
キー バッ
ファー
キー番号
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
4 バ イ ト か ら 成 る レ コ ー ド の物理位置を用意す る 必要があ り ます。 こ の値は、 Get Position オペレーシ ョ ン
(22) を使っ て取得で き ます。
„
Get Direct/Chunk オペレーシ ョ ンか ら 返 さ れ る すべての値を格納する のに十分な大き さ のデー タ バ ッ フ ァ ー
を用意す る 必要があ り ます。 ま た、 Get Direct/Chunk オペレーシ ョ ン が間接チ ャ ン ク オペレーシ ョ ン を実行
す る と き 、 デー タ バ ッ フ ァ ーにはチ ャ ン ク デ ィ ス ク リ プ タ ー全体 (すべてのチ ャ ン ク 定義) を格納で き なけ
ればな り ません。 デー タ バ ッ フ ァ ーの最大サ イ ズは、 表 18 に示す よ う に制限 さ れてい ます。
表 18 環境によ るデー タ バ ッ フ ァ ー サイ ズの制限
環境
最大データ バッファー サイズ
サーバー ま た は ワ ー ク ス テーシ ョ ン エ ン ジ ン への
ロ ーカル呼び出 し
64,512 バ イ ト
DOS リ ク エ ス タ ー (BREQNT) を経由 し た リ モー ト
呼び出 し
55,512 バ イ ト
Windows ま た は Linux リ ク エ ス タ ー を 経由 し た リ
モー ト 呼び出 し
65,153 バ イ ト
手順
1
オペレーシ ョ ン コ ー ド に 23 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
53
Btrieve API オペ レーシ ョ ン
3
「詳細」 の説明に従っ て、 デー タ バ ッ フ ァ ーを指定 し ます。
4
デー タ バ ッ フ ァ ー長に、 入力構造体の長 さ (表 19 ま たは表 20) と ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に
取得す る よ う に要求 し たバ イ ト 数の、 ど ち ら か大き い方を指定 し ます。
Get Direct/Chunk オペレーシ ョ ンの一部のオプシ ョ ン では、 デー タ バ ッ フ ァ ー以外の場所にチ ャ ン ク を取得
し ます。 デー タ バ ッ フ ァ ー長を計算す る 方法については、 「詳細」 を参照 し て く だ さ い。
5
キー番号パ ラ メ ー タ ーに -2 (0xFE) を設定 し ます。
詳細
デー タ バ ッ フ ァ ーでは、 次のチ ャ ン ク デ ィ ス ク リ プ タ ーのいずれか を使用 し ます。
„
ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー - オペレーシ ョ ンに付 き 1 つのチ ャ ン ク を取得する ため、ま たはチ ャ ン
ク が レ コ ー ド 全体にわた っ て ラ ン ダ ムに配置 さ れてい る と き に、 1 回のオペレーシ ョ ンで複数のチ ャ ン ク を
取得す る ために使用 し ます。
„
矩形チ ャ ン ク デ ィ ス ク リ プ タ ー - 各チ ャ ン ク の長 さ が同 じ で、 チ ャ ン ク が レ コ ー ド 内に等間隔に配置 さ れて
い る と き に、 1 回のオペレーシ ョ ンで複数のチ ャ ン ク を取得す る ために使用 し ます。
ラ ン ダム チ ャ ン ク
次の例は、 ラ ン ダ ムに配置 さ れてい る 3 つのチ ャ ン ク ([*] があ る 部分) を含むレ コ ー ド を示 し てい ます。 チ ャ ン
ク 0(バ イ ト 0x12 か ら 0x16)、チ ャ ン ク 1(バ イ ト 0x2A か ら 0x31)お よ びチ ャ ン ク 2(バ イ ト 0x41 か ら 0x4E)です。
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
[*]
[*]
[*]
[*]
[*]
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
4F
ラ ン ダ ム チ ャ ン ク を取 り 出すには、 次の表に基づいてデー タ バ ッ フ ァ ー内に構造体を作成する 必要があ り ます。
表 19 ラ ン ダム チ ャ ン ク オペ レーシ ョ ンのデー タ バ ッ フ ァ ー
要素
長さ (バイト単位)
説明
レ コー ド ア ド レ ス
4
レ コ ー ド の 4 バ イ ト 物理ア ド レ ス。 こ の値は、 Get Position オペレーシ ョ ン (22)
を使っ て取得で き ます。
ラ ン ダム チ ャ ン ク デ ィ ス ク リ プ タ ー
サブフ ァ ン ク シ ョ ン
4
チ ャ ン ク デ ィ ス ク リ プ タ ーの種類。 次のいずれかを指定 し ます。
‹ 0x80000000 (直接 ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク を直接
デー タ バ ッ フ ァ ーに取得 し ま す。 1 つ目のチ ャ ン ク が取得 さ れ る と デー タ
バ ッ フ ァ ーのオ フ セ ッ ト 0 に格納 さ れ、 2 つ目のチ ャ ン ク が 1 つ目のチ ャ ン
ク の直後に続 き 、 と 以下同様に続 き ます。
‹ 0x80000001 (間接 ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク をチ ャ ン
ク 定義に よ っ て指定 さ れ る ア ド レ ス内に取得 し ます。
チャ ン ク数
54
4
取得す る チ ャ ン ク 数。 こ の値は少な く と も 1 以上であ る こ と が必要です。 明確
な最大値はあ り ませんが、チ ャ ン ク デ ィ ス ク リ プ タ ーはデー タ バ ッ フ ァ ーに収
ま ら なければな り ません。 デー タ バ ッ フ ァ ーのサ イ ズは、 表 18 の説明の と お
り 制限 さ れてい ます。
Get Direct/Chunk (23)
表 19 ラ ン ダム チ ャ ン ク オペ レーシ ョ ンのデー タ バ ッ フ ァ ー
要素
長さ (バイト単位)
説明
チ ャ ン ク 定義
(各チ ャ ン ク につい
て繰 り 返す)
12 (32 ビ ッ ト アプ
リ ケーシ ョ ン用)
各チ ャ ン ク 定義は、 以下に示す よ う に、 4 バ イ ト のチ ャ ン ク オ フ セ ッ ト 、 それ
に続 く 4 バ イ ト のチ ャ ン ク 長、 さ ら に 32 ビ ッ ト アプ リ ケーシ ョ ンの場合は 4
バ イ ト のユーザー デー タ 、 ま たは 64 ビ ッ ト アプ リ ケーシ ョ ンの場合は 8 バ イ
ト のユーザー デー タ か ら 構成 さ れます。
16 (64 ビ ッ ト アプ
リ ケーシ ョ ン用)
‹ チ ャ ン ク オ フ セ ッ ト - チ ャ ン ク の開始地点を、 レ コ ー ド の先頭か ら のオ フ
セ ッ ト (バ イ ト 単位) で示 し ます。 最小値は 0、 最大値はレ コ ー ド の末尾の
バ イ ト のオ フ セ ッ ト です。
‹ チ ャ ン ク 長 - チ ャ ン ク 内のバ イ ト 数を示 し ます。最小値は 0、最大値は 65,535
です。 ただ し 、 チ ャ ン ク デ ィ ス ク リ プ タ ーはデー タ バ ッ フ ァ ーに収ま ら な
ければな り ません。 デー タ バ ッ フ ァ ーのサ イ ズは、 表 18 の説明の と お り 制
限 さ れてい ます。
‹ ユーザー デー タ - (間接デ ィ ス ク リ プ タ ーでのみ使用 し ます。) 32 ビ ッ ト ア
プ リ ケーシ ョ ンの場合、実際のチ ャ ン ク デー タ への 32 ビ ッ ト ポ イ ン タ ーで
す。64 ビ ッ ト アプ リ ケーシ ョ ンの場合、実際のチ ャ ン ク デー タ への 64 ビ ッ
ト ポ イ ン タ ーです。 使用すべ き 形式は、 オペレーテ ィ ン グ シ ス テ ムに よ っ
て異な り ます。1 直接チ ャ ン ク デ ィ ス ク リ プ タ ーのサブ フ ァ ン ク シ ョ ンの場
合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要素は無視 さ れます。
1
DOS アプ リ ケーシ ョ ンの場合、 ユーザー デー タ は 16 ビ ッ ト オ フ セ ッ ト お よ び 16 ビ ッ ト セグ メ ン ト と し て初期化 し て く
だ さ い。 ユーザー デー タ では、 そのセグ メ ン ト の最後を越え て メ モ リ を ア ド レ ス指定す る こ と はで き ません。 チ ャ ン ク 長を
ユーザー デー タ のオ フ セ ッ ト 部分に加算 し た と き 、 その結果は、 ユーザー デー タ に よ っ て定義 さ れ る セ グ メ ン ト の範囲内
でな ければな り ま せん。 デフ ォ ル ト で、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の規則に対す る 違反はチ ェ ッ ク さ れ
ず、 こ の よ う な違反は適切に処理 さ れません。
次の表は、直接 ラ ン ダ ム チ ャ ン ク を取 り 出す場合の 32 ビ ッ ト アプ リ ケーシ ョ ン用デー タ バ ッ フ ァ ーの例を示 し
てい ます。
要素
サンプル値
長さ (バイト単位)
レ コー ド ア ド レ ス
0x00000628
4
サブ フ ァ ン ク シ ョ ン
0x80000000
4
チャ ン ク数
3
4
チャ ン ク オフセ ッ ト
18
4
チャ ン ク長
5
4
ユーザー デー タ
適用外
4
チャ ン ク オフセ ッ ト
42
4
チャ ン ク長
8
4
ユーザー デー タ
適用外
4
チャ ン ク オフセ ッ ト
65
4
チャ ン ク長
14
4
ユーザー デー タ
適用外
4
チャンク 0
チャンク 1
チャンク 2
55
Btrieve API オペ レーシ ョ ン
矩形チ ャ ン ク デ ィ ス ク リ プ タ ー構造体
同 じ 長 さ のチ ャ ン ク が レ コ ー ド 全体にわた っ て等間隔に配置 さ れてい る 場合は、矩形チ ャ ン ク デ ィ ス ク リ プ タ ー
を使っ て、 取得す る すべてのチ ャ ン ク を記述する こ と がで き ます。 た と えば、 次の よ う な図を考えてみま し ょ う 。
こ の図は、 レ コ ー ド 内のオ フ セ ッ ト 0x00 か ら 0x4F ま でを表 し てい ます。
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
[*]
[*]
[*]
[*]
1D
1E
1F
20
21
22
23
24
25
26
27
28
[*]
[*]
[*]
[*]
2D
2E
2F
30
31
32
33
34
35
36
37
38
[*]
[*]
[*]
[*]
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
こ の レ コ ー ド には 3 つのチ ャ ン ク ([*] があ る 部分) が含まれてい ます。 チ ャ ン ク 0 (バ イ ト 0x19 か ら 0x1C) 、
チ ャ ン ク 1 (バ イ ト 0x29 か ら 0x2C)、 お よ びチ ャ ン ク 2 (バ イ ト 0x39 か ら 0x3C) です。 各チ ャ ン ク はどれ も 4
バ イ ト の長 さ で、 チ ャ ン ク 同士は、 各チ ャ ン ク の先頭か ら 計算す る と 、 いずれ も 合計 16 (0x10) バ イ ト ずつ離れ
てい ます。
1 つの矩形デ ィ ス ク リ プ タ ーを使っ て、 3 つのチ ャ ン ク をすべて取得で き ます。 矩形チ ャ ン ク を取 り 出すには、 次
の表に基づいてデー タ バ ッ フ ァ ー内に構造体を作成す る 必要があ り ます。
表 20 矩形チ ャ ン クのデー タ バ ッ フ ァ ー
要素
長さ (バイト単位)
説明
レ コー ド ア ド レ ス
4
レ コ ー ド の 4 バ イ ト 物理ア ド レ ス。 こ の値は、 Get Position オペレーシ ョ ン (22)
を使っ て取得で き ます。
矩形チ ャ ン ク デ ィ ス ク リ プ タ ー
サブフ ァ ン ク シ ョ ン
4
チ ャ ン ク デ ィ ス ク リ プ タ ーの種類。 次のいずれかを指定 し ます。
‹ 0x80000002 (直接矩形チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク を直接デー タ
バ ッ フ ァ ーに取得 し ま す。 1 つ目のチ ャ ン ク が取得 さ れ る と デー タ バ ッ
フ ァ ーのオ フ セ ッ ト 0 に格納 さ れ、 2 つ目のチ ャ ン ク が 1 つ目のチ ャ ン ク の
直後に続 き 、 と 以下同様に続 き ます。
‹ 0x80000003 (間接矩形チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク をユーザー
デー タ 要素お よ びア プ リ ケーシ ョ ン の行間隔要素に よ っ て指定 さ れ る ア ド
レ ス内に取得 し ます。
行数
4
矩形チ ャ ン ク デ ィ ス ク リ プ タ ーの操作対象 と す る チ ャ ン ク 数。 最小値は 1 で
す。 明確な最大値はあ り ません。
位置 (オ フ セ ッ ト )
4
取得す る 最初のバ イ ト の、 レ コ ー ド の先頭か ら のオ フ セ ッ ト 。 最小値は 0、 最
大値は レ コ ー ド の末尾のバ イ ト のオ フ セ ッ ト です。 レ コ ー ド が 1 つの矩形 と し
て表 さ れ る 場合、 こ の要素は、 取得 さ れ る 先頭行にあ る 先頭バ イ ト のオ フ セ ッ
ト を指 し ます。
行のバ イ ト 数
4
各チ ャ ン ク で取得す る バ イ ト 数。 最小値は 0、 最大値は 65,535 です。 ただ し 、
チ ャ ン ク デ ィ ス ク リ プ タ ーはデー タ バ ッ フ ァ ーに収ま ら なければな り ません。
デー タ バ ッ フ ァ ーのサ イ ズは、 表 18 の説明の と お り 制限 さ れてい ます。
行間隔
4
チ ャ ン ク の先頭か ら 次のチ ャ ン ク の先頭ま でのバ イ ト 数。
56
Get Direct/Chunk (23)
表 20 矩形チ ャ ン クのデー タ バ ッ フ ァ ー
要素
長さ (バイト単位)
説明
ユーザー デー タ
4 (32 ビ ッ ト アプ
リ ケーシ ョ ン用)
(間接デ ィ ス ク リ プ タ ーでのみ使用 し ます。 ) 32 ビ ッ ト アプ リ ケーシ ョ ンの場
合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が各行か ら バ イ ト を取得 し た後でそ
れ ら を格納す る 場所への 32 ビ ッ ト ポ イ ン タ ー。 64 ビ ッ ト アプ リ ケーシ ョ ンの
場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が各行か ら バ イ ト を取得 し た後で
それ ら を格納す る 場所への 64 ビ ッ ト ポ イ ン タ ー。
8 (64 ビ ッ ト アプ
リ ケーシ ョ ン用)
使用すべ き 形式は、 オペレーテ ィ ン グ シ ス テ ムに よ っ て異な り ます。 1 直接矩
形デ ィ ス ク リ プ タ ーの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要
素は無視 さ れ ま す。 ただ し それで も 、 こ の要素を割 り 当て、 0 に初期化 し てお
く 必要があ り ます。
アプ リ ケーシ ョ ン
の行間隔
4
(間接矩形デ ィ ス ク リ プ タ ーでのみ使用 し ます。) 矩形がアプ リ ケーシ ョ ンの メ
モ リ (つま り 、 ユーザー デー タ で指定 し た ア ド レ ス) に格納 さ れ る と き の、 矩
形内のチ ャ ン ク の先頭か ら 次のチ ャ ン ク の先頭ま でのバ イ ト 数。 直接矩形デ ィ
ス ク リ プ タ ーの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要素は無
視 さ れ ます。 ただ し それで も 、 こ の要素を割 り 当て、 0 に初期化 し てお く 必要
があ り ます。
1
DOS アプ リ ケーシ ョ ンの場合、 ユーザー デー タ は 16 ビ ッ ト オ フ セ ッ ト と それに続 く 16 ビ ッ ト セグ メ ン ト で表 し て く だ
さ い。
間接矩形デ ィ ス ク リ プ タ ーを使用す る と き は、取得 さ れたチ ャ ン ク がチ ャ ン ク デ ィ ス ク リ プ タ ーを上書 き し ない
よ う に、ユーザー デー タ ポ イ ン タ ーが初期化 さ れてい る こ と を確認 し て く だ さ い。 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス は、 返 さ れたチ ャ ン ク を ユーザー デー タ 要素が示す場所に コ ピーする と き 、 デ ィ ス ク リ プ タ ーを使用 し
ます。 チ ャ ン ク デ ィ ス ク リ プ タ ーを上書 き し て し ま っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス
テー タ ス コ ー ド 62 が返 さ れます。
矩形が メ モ リ 内にあ る と き 、 各行の間隔が レ コ ー ド と し て格納 さ れてい る と き と 同 じ バ イ ト 数にな る 場合は、 ア
プ リ ケーシ ョ ンの行間隔に行間隔 と 同 じ 値を設定 し ます。 し か し 、 矩形がアプ リ ケーシ ョ ンの メ モ リ 内で再配置
さ れ、 行の間隔が何バ イ ト か増減す る 場合は、 アプ リ ケーシ ョ ンの行間隔に よ り 、 その情報を ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス に渡す こ と がで き ます。
間接矩形デ ィ ス ク リ プ タ ーを使用す る と き は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はユーザー デー タ 要素お よ
びアプ リ ケーシ ョ ンの行間隔要素を使っ て、 取得後のデー タ の格納場所を決定 し ます。 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス では 1 行目のデー タ はユーザー デー タ のオ フ セ ッ ト 0 に格納 さ れ ます。 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス では 2 行目のデー タ は、ユーザー デー タ + アプ リ ケーシ ョ ンの行間隔で指定 さ れ る ア ド レ ス に格納
さ れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では 3 行目のデー タ は、 ユーザー デー タ + ( アプ リ ケーシ ョ ン
の行間隔 * 2) で指定 さ れ る ア ド レ ス に格納 さ れ、 以下同様です。
次の表は、 直接矩形チ ャ ン ク を取 り 出す場合の 32 ビ ッ ト アプ リ ケーシ ョ ン用デー タ バ ッ フ ァ ーの例を示 し てい
ます。
要素名
サンプル値
長さ (バイト単位)
レ コー ド ア ド レ ス
0x00000628
4
サブ フ ァ ン ク シ ョ ン
0x80000002
4
行数
3
4
位置 (オ フ セ ッ ト )
25
4
行のバ イ ト 数
4
4
行間隔
16
4
ユーザー デー タ
0
4
アプ リ ケーシ ョ ンの行間隔
0
4
57
Btrieve API オペ レーシ ョ ン
ネ ク ス ト イ ン レ コ ー ド サブ フ ァ ン ク シ ョ ン バイ ア ス
こ れ ま でに述べたサブ フ ァ ン ク シ ョ ンの値にバ イ ア ス 0x40000000 を加算す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス ではレ コ ー ド 内の物理カ レ ン シー (つま り 、レ コ ー ド 内の現在の物理位置) に基づいてサブ フ ァ ン ク シ ョ
ンのオ フ セ ッ ト 要素の値が算出 さ れます。 ネ ク ス ト イ ン レ コ ー ド サブ フ ァ ン ク シ ョ ン を使用する 場合、 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス ではチ ャ ン ク デ ィ ス ク リ プ タ ーのオ フ セ ッ ト 要素は無視 さ れます。
結果
Get Direct/Chunk オペレーシ ョ ン が正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では直接チ ャ ン
ク デ ィ ス ク リ プ タ ーを使用 し てい る と き は、デー タ バ ッ フ ァ ーにチ ャ ン ク が順に返 さ れます。間接 ラ ン ダ ム チ ャ
ン ク デ ィ ス ク リ プ タ ーを使用 し てい る と き 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では各チ ャ ン ク のユーザー
デー タ 要素で指定 し た場所にデー タ が返 さ れます。 ま た、 間接矩形デ ィ ス ク リ プ タ ーを使用 し てい る と き 、 ト ラ
ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではユーザー デー タ 要素お よ びアプ リ ケーシ ョ ン の行間隔要素か ら 計算 さ れ
る 場所にデー タ が返 さ れます。
さ ら に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 、デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーには、取得 さ れたチ ャ ン ク
の長 さ の総計が格納 さ れます ( こ の戻 り 値は、 チ ャ ン ク が取得 さ れて直接デー タ バ ッ フ ァ ーに格納 さ れたか、 間
接デ ィ ス ク リ プ タ ーに よ っ てチ ャ ン ク が取得 さ れ別の場所に格納 さ れたか ど う かに関係な く 、 取得 さ れた全バ イ
ト 数を反映 し てい ます) 。 オペレーシ ョ ンが部分的に し か正常に実行 さ れなか っ た場合、 アプ リ ケーシ ョ ン では
デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに返 さ れた値を使っ て、 ど のチ ャ ン ク が取得 さ れなか っ たか、 ま た最後のチ ャ
ン ク の何バ イ ト ま でが取得 さ れたか を調べ る こ と がで き ます。
いずれかのチ ャ ン ク で、 開始位置が レ コ ー ド の末尾を超え て し ま う 場合 (結果 と し て、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 103 が返 さ れます)、 ま たはチ ャ ン ク のオ フ セ ッ ト と 長 さ の合計が レ コ ー ド
長を超え て し ま う 場合には、 Get Direct/Chunk オペレーシ ョ ンの一部だけが正常に実行 さ れます。 後者の場合は ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 0 が返 さ れますが、こ のオペレーシ ョ ンに後続のチ ャ
ン ク があ る 場合、 その処理は中止 さ れます。
メ モ すべてのチ ャ ン ク が適切に取得 さ れたか ど う かを知 ら せ る も のは、 デー タ バ ッ フ ァ ー長パ ラ メ ー タ ー
だけです。 こ のため、 Get Direct/Chunk オペレーシ ョ ン の実行後は、 必ずデー タ バ ッ フ ァ ー長パ ラ メ ー タ ー
に返 さ れた値をチ ェ ッ ク し て く だ さ い。
次の ス テー タ ス コ ー ド は、 Get Direct/Chunk オペレーシ ョ ンの一部だけが実行 さ れた こ と を示 し ます。 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら こ れ ら の ス テー タ ス コ ー ド のいずれかが返 さ れた場合は、アプ リ ケーシ ョ ン で
デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーの戻 り 値を調べて、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 実際に返 さ れた
デー タ 量を確認す る 必要があ り ます。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
54
レ コ ー ド の可変長部分が破損 し てい ます。
103
チ ャ ン ク オ フ セ ッ ト が大 き すぎ ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー タ ス コ ー ド が返 さ れ る 場合、デー タ は ま っ た く 取得 さ れま
せん。
58
43
指定 さ れた レ コ ー ド ア ド レ ス が不正です。
58
圧縮バ ッ フ ァ ー長が短すぎ ます。
62
デ ィ ス ク リ プ タ ーが不正です。
97
デー タ バ ッ フ ァ ーが小 さ すぎ ます。
106
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 Get Next Chunk オペレーシ ョ ン を実行で き ません。
Get Direct/Chunk (23)
ポジ シ ョ ニ ング
Get Direct/Chunk オペレーシ ョ ンは、 論理カ レ ン シーに ま っ た く 影響 し ません。 物理カ レ ン シーについては、 チ ャ
ン ク が取 り 出 さ れた レ コ ー ド が現在の物理レ コ ー ド にな り ます。
59
Btrieve API オペ レーシ ョ ン
Get Direct/Record (23)
Get Direct/Record オペレーシ ョ ン (B_GET_DIRECT) では、 定義 さ れてい る キー パ ス ではな く 、 フ ァ イ ル内の物
理位置を使っ て レ コ ー ド を取得 し ます。
以下の よ う な操作を実行す る 場合は、 Get Direct/Record オペレーシ ョ ン を使用 し て く だ さ い。
„
キー値の代わ り に物理位置を使っ て、 よ り 高速に レ コ ー ド を取得す る 。
„
Get Position オペレーシ ョ ン (22) を使っ て レ コ ー ド の 4 バ イ ト 物理位置を取得 し 、 その位置を保存す る 。 そ
れか ら 、 カ レ ン シーに影響を与え る ほかのオペレーシ ョ ン を実行 し た後で Get Direct/Record オペレーシ ョ ン
を使っ て、 その位置に直接戻 る 。
„
一連の重複レ コ ー ド の中か ら 1 つの レ コ ー ド を取得する と き 、 その一連の レ コ ー ド を先頭か ら すべて読み取
り し 直す こ と な く 、 4 バ イ ト の物理位置を使っ て取得す る 。
„
現在のキー パ ス を変更す る 。 Get Position オペレーシ ョ ンに続けて、 別のキー番号を使っ た Get Direct/Record
オペレーシ ョ ン を実行す る と 、 別の イ ンデ ッ ク ス パ ス に現在の レ コ ー ド のポジシ ョ ニ ン グが確立 し ます。 こ
の後で Get Next オペレーシ ョ ン を実行する と 、新 し いキー パス に基づいて フ ァ イ ル内の次の レ コ ー ド が返 さ
れます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
○
○
キー バッ
ファー
キー番号
○
○
メ モ デー タ オン リ ー フ ァ イ ルで Get Direct/Record オペレーシ ョ ン を実行す る 場合は、キー番号パ ラ メ ー タ ー
は必要あ り ません。
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
4 バ イ ト か ら 成 る レ コ ー ド の物理位置を用意する 必要があ り ます。 こ の値は、 Get Position オペレーシ ョ ン
(22) を使っ て取得で き ます。 こ のオペレーシ ョ ン を実行する と 、 現在の レ コ ー ド の物理ア ド レ ス が返 さ れま
す。
手順
1
オペレーシ ョ ン コ ー ド に 23 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ーの先頭の 4 バ イ ト に、 目的の レ コ ー ド の位置を表す 4 バ イ ト 値を格納 し ます。
4
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
60
Get Direct/Record (23)
5
キー番号には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で論理カ レ ン シーを確立す る パ ス のキー番号を設定 し
ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で論理カ レ ン シーの確立を必要 と し ない場合は、 -1 を指定 し ま
す。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用する には、 125 を指定 し ます。
結果
Get Direct/Record オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求 し た レ
コ ー ド がデー タ バ ッ フ ァ ーに、 レ コ ー ド 長がデー タ バ ッ フ ァ ー長に、 指定 し た キー パ ス のキー値がキー バ ッ
フ ァ ーにそれぞれ返 さ れます。
Get Direct/Record オペレーシ ョ ンが正常に実行 さ れず、 要求 し た レ コ ー ド を ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス が取得で き なか っ た場合は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー タ ス コ ー ド のいずれかが返
さ れます。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。 (論理カ レ ン シーは ま だ確立 さ れてい ます)
43
指定 さ れた レ コ ー ド ア ド レ ス が不正です。 (論理カ レ ン シーは確立 さ れてい ません)
44
指定 さ れた キー パ ス が不正です。 (論理カ レ ン シーは確立 さ れてい ません)
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジ シ ョ ニ ン グ を失い ま し た。 (論理カ レ ン シーは確立 さ れてい ませ
ん)
ポジ シ ョ ニ ング
Get Direct/Record オペレーシ ョ ン を実行す る と 、既存の論理カ レ ン シー情報が消去 さ れ、指定 し た キー番号に従っ
て新 し い論理カ レ ン シーが確立 さ れます。 物理カ レ ン シー情報には ま っ た く 影響 し ません。
61
Btrieve API オペ レーシ ョ ン
Get Directory (18)
Get Directory オペレーシ ョ ン (B_GET_DIR) では、 指定 さ れた論理デ ィ ス ク ド ラ イ ブの現在のデ ィ レ ク ト リ を返
し ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
○
○
前提条件
Get Directory オペレーシ ョ ンはいつで も 発行す る こ と がで き ます。 キー バ ッ フ ァ ーには少な く と も 65 文字の長
さ が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 18 を設定 し ます。
2
キー番号パ ラ メ ー タ ーに論理デ ィ ス ク ド ラ イ ブ番号を格納 し ます。 ド ラ イ ブは、 A の場合は 1、 B の場合は
2、 と い う よ う に指定 し ます。 デフ ォ ル ト の ド ラ イ ブ を使用する には 0 を指定 し ます。
結果
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 オペレーシ ョ ンが正常に終了 し た場合、 バ イ ナ リ 0 で終端す る 現在
のデ ィ レ ク ト リ がキー バ ッ フ ァ ーに返 さ れます。
ポジ シ ョ ニ ング
Get Directory オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報にはま っ た く 影響 し ません。
62
Get Equal (5)
Get Equal (5)
Get Equal オペレーシ ョ ン (B_GET_EQUAL) では、 キー バ ッ フ ァ ーに指定 さ れた キー値 と 等 し いキー値を持つ
レ コ ー ド を取得 し ます。 キーの重複が可能な場合は、 同 じ キー値を持つグループの中で先頭の レ コ ー ド (作成順)
が取得 さ れます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す る か ど う か を検出す る こ と も で
き ます。 一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 5 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ーに目的のキー値を指定 し ます。 キーが複数のセグ メ ン ト か ら 成る 場合は、 必ずすべてのセグ
メ ン ト を記述 し 、 それ ら すべてに値を設定す る よ う キー バ ッ フ ァ ーを定義 し て く だ さ い。 すべてのセグ メ ン
ト について検索条件を設定 し ない場合は、代わ り に Get Greater Than Or Equal オペレーシ ョ ン を使用 し て く だ
さ い。
5
キー番号に正 し いキー パス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用す る には、
125 を指定 し ます。
結果
Get Equal オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求 し た レ コ ー
ド がデー タ バ ッ フ ァ ーに、 その レ コ ー ド の長 さ がデー タ バ ッ フ ァ ー長に返 さ れます。
Get Equal オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
4
アプ リ ケーシ ョ ンがキー値を見つけ ら れません。
6
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
63
Btrieve API オペ レーシ ョ ン
こ のオペレーシ ョ ンは、キーの ヌ ル イ ン ジ ケー タ ー セグ メ ン ト にゼ ロ 以外の値が含まれてい る 場合には ス テー タ
ス コ ー ド 4 を返 し ます。 Get Equal を使っ て ヌ ルの レ コ ー ド は検索で き ません。 こ れは、 ヌ ルの定義はあい ま い
な も のであ り 、 ど の値 と も 等 し く な ら ないか ら です。 ヌ ル値の検索が必要な場合は、 Get First オペレーシ ョ ンに
続けて Get Next オペレーシ ョ ン を使用 し ます。
ポジ シ ョ ニ ング
Get Equal オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ コ ー
ド が現在の レ コ ー ド にな り ます。
64
Get First (12)
Get First (12)
Get First オペレーシ ョ ン (B_GET_FIRST) では、 指定 さ れた キーに基づいて先頭の論理レ コ ー ド を取得 し ます。
「Get Key (+50) 」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す る か ど う か を検出す る こ と も で き ます。 一般に、
Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
○
○
○
キー番号
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 12 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー番号にキー パ ス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用する には、 125 を指
定 し ます。
結果
Get First オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求 し た レ コ ー ド
がデー タ バ ッ フ ァ ーに返 さ れ、対応す る キー値がキー バ ッ フ ァ ーに格納 さ れ、 さ ら にその レ コ ー ド の長 さ がデー
タ バ ッ フ ァ ー長に返 さ れます。
Get First オペレ ーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
65
Btrieve API オペ レーシ ョ ン
ポジ シ ョ ニ ング
Get First オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ コ ー
ド が現在の レ コ ー ド にな り ます。 論理位置の直前は、 フ ァ イ ルの先頭 よ り も 前を指す こ と にな り ます。
66
Get Greater (8)
Get Greater (8)
Get Greater オペレーシ ョ ン (B_GET_GT) では、 キー番号で指定 さ れた フ ィ ール ド が、 キー バ ッ フ ァ ーの値 よ り
も 次に大 き な値を含むレ コ ー ド を取得 し ます。 キーの重複が可能な場合は、 同 じ キー値を持つグループの中で先
頭の レ コ ー ド (作成順) が取得 さ れます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す る か ど
う か を検出す る こ と も で き ます。 一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
メ モ 降順キーで Get Greater オペ レーシ ョ ン を実行す る 場合、 「次に大 き な値」 と い う のは、 実際にはキー
バ ッ フ ァ ーで指定 さ れた値 よ り も 小 さ な値を指す こ と にな り ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 8 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ー パ ラ メ ー タ ーに目的のキー値を指定 し ます。
5
キー番号パ ラ メ ー タ ーに正 し いキー パス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使
用す る には、 125 を指定 し ます。
結果
Get Greater オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求 し た レ コ ー ド
がデー タ バ ッ フ ァ ーに、 キー値がキー バ ッ フ ァ ーに、 さ ら にその レ コ ー ド の長 さ がデー タ バ ッ フ ァ ー長に格納
さ れます。
67
Btrieve API オペ レーシ ョ ン
Get Greater オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Get Greater オペレーシ ョ ン を実行す る と 、完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、取得 し た レ コ ー
ド が現在の レ コ ー ド にな り ます。
68
Get Greater Than or Equal (9)
Get Greater Than or Equal (9)
Get Greater Than or Equal オペレーシ ョ ン (B_GET_GE) では、 キー番号で指定 さ れた キーが、 キー バ ッ フ ァ ーに
指定 さ れた値 と 等 し いかそれ よ り も 大 き な値を持つレ コ ー ド を取得 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス では まず、 等 し い と い う 条件を満たすレ コ ー ド が検索 さ れます。 キーの重複が可能な場合は、 同 じ キー値を持
つグループの中で先頭の レ コ ー ド (作成順) が取得 さ れます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内
に値が存在す る か ど う か を検出す る こ と も で き ます。一般に、Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
メ モ 降順キーで Get Greater Than or Equal オペレーシ ョ ン を実行す る 場合、 「次に大 き な値」 と い う のは、 実
際にはキー バ ッ フ ァ ーで指定 さ れた値 よ り も 小 さ な値を指す こ と にな り ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 9 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ー パ ラ メ ー タ ーにキー値を指定 し ます。
5
キー番号パ ラ メ ー タ ーに正 し いキー パス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使
用す る には、 125 を指定 し ます。
結果
Get Greater Than or Equal オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求
し た レ コ ー ド がデー タ バ ッ フ ァ ーに、 キー値が キー バ ッ フ ァ ーに、 さ ら にその レ コ ー ド の長 さ がデー タ バ ッ
フ ァ ー長に格納 さ れます。
69
Btrieve API オペ レーシ ョ ン
Get Greater Than or Equal オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス か ら 次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Get Greater Than or Equal オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、
取得 し た レ コ ー ド が現在の レ コ ー ド にな り ます。
70
Get Key (+50)
Get Key (+50)
Get Key バ イ ア ス を使用す る と 、実際にデー タ レ コ ー ド を取得する こ と な く Get オペレーシ ョ ン を実行で き ます。
Get Key を使っ て、 フ ァ イ ル内にあ る 値が存在す る か ど う か を検出で き ます。 一般に、 Get Key オペレーシ ョ ンは
対応す る Get オペレーシ ョ ン よ り も 高速に実行で き ます。Get Key オペレーシ ョ ンは、以下のいずれかの Get オペ
レーシ ョ ン と 共に使用 し ます。
„
「Get Equal (5)」
„
「Get Next (6)」
„
「Get Previous (7)」
„
「Get Greater (8)」
„
「Get Greater Than or Equal (9)」
„
「Get Less Than (10)」
„
「Get Less Than or Equal (11)」
„
「Get First (12)」
„
「Get Last (13)」
„
「Get By Percentage (44)」
パラ メ ー タ ー
パ ラ メ ー タ ーは対応す る Get オペ レ ーシ ョ ン と 同様です。 ただ し 、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では
デー タ バ ッ フ ァ ー長の設定は無視 さ れ、 デー タ バ ッ フ ァ ーにはレ コ ー ド が返 さ れません。
前提条件
Get Key オペレーシ ョ ンの前提条件は、 対応する Get オペレーシ ョ ンの前提条件 と 同 じ です。
手順
1
対応す る Get オペレーシ ョ ンの場合 と 同 じ よ う にパ ラ メ ー タ ーを設定 し ます。 デー タ バ ッ フ ァ ー長を初期化
す る 必要はあ り ません。
2
オペレーシ ョ ン コ ー ド には、 実行す る Get オペレーシ ョ ンのオペレーシ ョ ン コ ー ド に 50 を加算 し た値を設
定 し ます。 た と えば、 Get Equal オペレーシ ョ ン (5) と 共に Get Key (+50) を実行す る には、 オペレーシ ョ
ン コ ー ド に 55 を設定 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、Get Key オペレーシ ョ ン (+50) の後に Delete ま たは Update オペレー
シ ョ ン を実行す る こ と はで き ません。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で、 Delete ま たは Update オペレー
シ ョ ン を実行す る 前に、 変更 し よ う と し てい る デー タ ページの現在の使用回数 と 、 レ コ ー ド を読み取っ た時点の
デー タ ページの使用回数が比較 さ れ ます。 使用回数を取得す る には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が
デー タ ページ を読み取 る 必要があ り ます。
Get Key オペレーシ ョ ンではデー タ ページ を読み取 ら ないので、 Delete ま たは Update オペレーシ ョ ン で比較す る
ための使用回数が利用可能にな り ません。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 比較な し にパ ッ シブ並行
制御の矛盾チ ェ ッ ク を実行で き ないため、 Update ま たは Delete オペレーシ ョ ンは正常に実行 さ れません。 Update
ま たは Delete オペレーシ ョ ン が正常に実行 さ れない と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス
コ ー ド 8 が返 さ れます。
結果
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で要求 し た キーが検出 さ れ る と 、 そのキー値がキー バ ッ フ ァ ーに格納 さ
れ、 ス テー タ ス コ ー ド 0 が返 さ れます。 そ う でない場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら キー値を
検出で き なか っ た理由を示すス テー タ ス コー ド が返 さ れます。
71
Btrieve API オペ レーシ ョ ン
ポジ シ ョ ニ ング
Get Key オペレーシ ョ ン を実行す る と 、 対応す る Get オペレーシ ョ ン と 同様の方法で現在のポジ シ ョ ニ ン グが確
立 さ れ ます。 ただ し 、 Get Key オペレーシ ョ ンの対象 と な る キーが重複を許可 し てい る 場合、 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス では取得 さ れた現在のキー値の重複 イ ン ス タ ン ス は無視 さ れます。 Get Key オペレーシ ョ ン
の実行後、 論理位置の直前は次に小 さ な キー値を含むレ コ ー ド を指 し ます。 ま た、 論理位置の直後は次に大 き な
キー値を含むレ コ ー ド を指 し ます。
た と えば、 Smith が 8 回 と Smythe が 1 回出現する 姓のキーを対象に、 Get Key を Get Equal オペレーシ ョ ン (55)
と 共に実行 し た と し ます。 論理位置の直後は次の Smith ではな く 、 Smythe を指す こ と にな り ます。
Get Key オペ レ ーシ ョ ン では ど れか 1 つの レ コ ー ド が識別 さ れ る わけではないため、 ト ラ ン ザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス では Get Key オペレーシ ョ ンに続けて Update ま たは Delete オペレーシ ョ ン を実行す る こ と はで き ま
せん。
72
Get Last (13)
Get Last (13)
Get Last オペ レ ーシ ョ ン (B_GET_LAST) では、 指定 さ れた キーに基づいて末尾の論理レ コ ー ド を取得 し ま す。
末尾のキー値が重複 し てい る 場合は、 同 じ キー値を持つグループの中で末尾の レ コ ー ド が返 さ れます。 「Get Key
(+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在する か ど う か を検出する こ と も で き ます。 一般に、 Get Key オ
ペレーシ ョ ンの方が高速に処理 さ れます。
パラ メ ー タ ー
送り値
オペレーショ
ン コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
○
○
○
キー番号
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 13 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー番号にキー パ ス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用する には、 125 を指
定 し ます。
結果
Get Last オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では要求 し た レ コ ー ド が
デー タ バ ッ フ ァ ーに返 さ れ、対応す る キー値がキー バ ッ フ ァ ーに格納 さ れ、 さ ら にその レ コ ー ド の長 さ がデー タ
バ ッ フ ァ ー長に返 さ れます。
Get Last オペ レ ーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
73
Btrieve API オペ レーシ ョ ン
ポジ シ ョ ニ ング
Get Last オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ コ ー
ド が現在の レ コ ー ド にな り ます。 論理位置の直後は、 フ ァ イ ルの末尾 よ り も 後を指す こ と にな り ます。
74
Get Less Than (10)
Get Less Than (10)
Get Less Than オペレーシ ョ ン (B_GET_LT) では、 キー番号で指定 さ れた キーが、 キー バ ッ フ ァ ーに指定 さ れた
値 よ り も 次に小 さ な値を持つレ コ ー ド を取得 し ます。 キーの重複が可能な場合は、 同 じ キー値を持つグループの
中で末尾の レ コ ー ド (作成順) が取得 さ れます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す
る か ど う か を検出す る こ と も で き ます。 一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
メ モ 降順キーで Get Less Than オペレーシ ョ ン を実行する 場合、 「次に小 さ な値」 と い う のは、 実際にはキー
バ ッ フ ァ ーで指定 さ れた値 よ り も 大 き な値を指す こ と にな り ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 10 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ー パ ラ メ ー タ ーに目的のキー値を指定 し ます。
5
キー番号パ ラ メ ー タ ーにキー パス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用す る
には、 125 を指定 し ます。
結果
Get Less Than オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では レ コ ー ド がデー
タ バ ッ フ ァ ーに、 その レ コ ー ド のキー値がキー バ ッ フ ァ ーに、 さ ら にその レ コ ー ド の長 さ がデー タ バ ッ フ ァ ー
長に返 さ れます。
75
Btrieve API オペ レーシ ョ ン
Get Less Than オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の
ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Get Less Than オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ
コ ー ド が現在の レ コ ー ド にな り ます。
76
Get Less Than or Equal (11)
Get Less Than or Equal (11)
Get Less Than or Equal オペレーシ ョ ン (B_GET_LE) では、 キー番号で指定 さ れた キーが、 キー バ ッ フ ァ ーに指
定 さ れた値 と 等 し いかそれ よ り も 小 さ な値を持つレ コ ー ド を取得 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス
では まず、 等 し い と い う 条件を満たすレ コ ー ド が検索 さ れます。 キーの重複が可能な場合は、 同 じ キー値を持つ
グループの中で末尾の レ コ ー ド (作成順) が取得 さ れます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に
値が存在す る か ど う か を検出す る こ と も で き ます。 一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
メ モ 降順キーで Get Less Than or Equal オペレーシ ョ ン を実行する 場合、 「次に小 さ な値」 と い う のは、 実際
にはキー バ ッ フ ァ ーで指定 さ れた値 よ り も 大 き な値を指す こ と にな り ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 11 を設定 し ます。 オプシ ョ ンで、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ー パ ラ メ ー タ ーにキー値を指定 し ます。
5
キー番号パ ラ メ ー タ ーにキー パス を設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用す る
には、 125 を指定 し ます。
結果
Get Less Than or Equal オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では レ コ ー
ド がデー タ バ ッ フ ァ ーに、その レ コ ー ド のキー値がキー バ ッ フ ァ ーに、さ ら にその レ コ ー ド の長 さ がデー タ バ ッ
フ ァ ー長に返 さ れます。
77
Btrieve API オペ レーシ ョ ン
Get Less Than or Equal オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス
か ら 次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Get Less Than or Equal オペレーシ ョ ン を実行する と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取
得 し た レ コ ー ド が現在の レ コ ー ド にな り ます。
78
Get Next (6)
Get Next (6)
Get Next オペレーシ ョ ン (B_GET_NEXT) では、 指定 さ れた キーに基づいて、 論理位置で次にあ る レ コ ー ド を取
得 し ます。 Get Next オペレーシ ョ ン を使 う と 、 重複する キー値を持つレ コ ー ド のグループの中で レ コ ー ド を検索
で き ます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す る か ど う か を検出す る こ と も で き ます。
一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
„
アプ リ ケーシ ョ ンでは、 指定 し た キーに基づ く 次の論理位置を確立 し てお く こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 6 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ーに前のオペレーシ ョ ンで取得 し た キー値を指定 し ます。
キー バ ッ フ ァ ーには、前の呼び出 し で ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れた キー値 と ま っ た く
同 じ も のを渡 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 フ ァ イ ル内の現在の位置を決定す る ため
に、 直前にキー バ ッ フ ァ ーに格納 さ れた情報が必要 と な る か ら です。
5
キー番号パ ラ メ ー タ ーに、 前の呼び出 し で使用 し た キー パ ス を設定 し ます。 Get Next オペレーシ ョ ン を使っ
て キー パ ス を変更す る こ と はで き ません。
結果
Get Next オペ レーシ ョ ン が正常に終了 し た場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では レ コ ー ド がデー タ
バ ッ フ ァ ーに、 その レ コ ー ド のキー値がキー バ ッ フ ァ ーに、 さ ら にその レ コ ー ド の長 さ がデー タ バ ッ フ ァ ー長に
返 さ れます。
Get Next オペ レーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
79
Btrieve API オペ レーシ ョ ン
7
キー番号が変更 さ れま し た。
8
現在のポジシ ョ ンが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
こ のオペレーシ ョ ンの実行に よ り 、 論理位置の直後が フ ァ イ ルの末尾 よ り も 後を指す場合は、 ス テー タ ス コ ー ド
9 が返 さ れます。
ポジ シ ョ ニ ング
Get Next オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ コ ー
ド が現在の レ コ ー ド にな り ます。
80
Get Next Extended (36)
Get Next Extended (36)
Get Next Extended オペレーシ ョ ン (B_GET_NEXT_EXTENDED) では、 指定 さ れた キーに基づ き 、 論理位置の直
後か ら フ ァ イ ルの末尾へ向か っ て 1 つま たは複数の レ コ ー ド を検索 し ます。 検索 し た レ コ ー ド が フ ィ ル タ ー条件
を満た し てい る か ど う か をチ ェ ッ ク し た上で、 条件を満たすレ コ ー ド だけ を取得 し ます。 フ ィ ル タ ー条件は論理
式の形を取 り 、 キー フ ィ ール ド のみに制限 さ れません。
Get Next Extended オペレーシ ョ ンでは、レ コ ー ド か ら 指定 し た部分だけ を抽出 し 、その部分だけ を アプ リ ケーシ ョ
ンに返す こ と も で き ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
„
指定 し た キーに基づ く 次の論理位置を確立 し てお く こ と が必要です。 論理位置は、 Get Equal な ど の Extended
でない Get オペレーシ ョ ン を どれか発行す る こ と に よ っ て確立で き ます。
手順
1
オペレーシ ョ ン コ ー ド に 36 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
入力デー タ バ ッ フ ァ ー と 戻 り デー タ バ ッ フ ァ ーの ど ち ら か大き い方を格納で き る よ う に、十分な長 さ のデー
タ バ ッ フ ァ ーを指定 し ます。 表 21 に示す構造体に従っ て、 デー タ バ ッ フ ァ ーを初期化 し ます。
4
デー タ バ ッ フ ァ ー長に、入力構造体 (表 21) と 戻 り 構造体 (表 22) の ど ち ら か大 き い方の長 さ を指定 し ます。
5
キー バ ッ フ ァ ーに前のオペレーシ ョ ンで取得 し た キー値を指定 し ます。 キー バ ッ フ ァ ーには、前の呼び出 し
で ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れた キー値 と ま っ た く 同 じ も の を渡 し ま す。 ト ラ ン ザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では、 フ ァ イ ル内の現在の位置を決定す る ために、直前にキー バ ッ フ ァ ーに格納
さ れた情報が必要 と な る か ら です。
6
キー番号パ ラ メ ー タ ーに、 前の呼び出 し で使用 し た キー パス を設定 し ます。 Get Next Extended オペレーシ ョ
ン を使っ て キー パ ス を変更す る こ と はで き ません。
81
Btrieve API オペ レーシ ョ ン
詳細
次の表は、 入力デー タ バ ッ フ ァ ーの構造体を示 し てい ます。
表 21 Extended Get / Step オペ レーシ ョ ンの入力デー タ バ ッ フ ァ ー構造体
要素
長さ (バ
イト単位)
説明
ヘ ッ ダー
2
デー タ バ ッ フ ァ ー全体の長 さ 。
2
2 つの文字列定数値のいずれか を指定 し ます (固定長で、 ヌ ル終端に し てはいけ ません)。
"EG" - ポジシ ョ ニ ン グ さ れてい る レ コ ー ド の次の レ コ ー ド か ら 検索を開始 し ます。
"UC" - ポジ シ ョ ニ ン グ さ れてい る レ コ ー ド か ら 検索を開始 し ます。
Step Next Extended オペレーシ ョ ンの場合は、 こ の値には常に "EG" を設定 し て く だ さ い。
フ ィ ル タ ー (固
定部分)
フ ィ ル タ ー (論
理式の各項に
ついて、 こ のセ
グメントを 1
回繰 り 返す)
2
リ ジ ェ ク ト カ ウ ン ト の最大数。 こ れは、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で レ コ ー ド の
検索中に、 フ ィ ル タ ー条件を満た さ ない も の と し て ス キ ッ プで き る レ コ ー ド の件数です。 0 か
ら 65,535 ま での範囲の値を指定で き ます (0 を指定す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス ではシ ス テ ム定義の最大 リ ジ ェ ク ト カ ウ ン ト 、 4,095 が使用 さ れます)。
2
フ ィ ル タ ー条件 と し て使用す る 論理式の項の数。 (0 を指定す る と 、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス ではフ ィ ル タ ー処理が実行 さ れません)。 項の数はデー タ バ ッ フ ァ ーのサ イ ズに
よ っ てのみ制限 さ れます。Pervasive.SQL 2000i SP3 でのみ、項の数が 119 に制限 さ れてい ます。
1
フ ィ ール ド のデー タ 型。 表 11 に記載 さ れてい る コ ー ド のいずれか を使用 し ます。
2
フ ィ ール ド 長。
2
フ ィ ール ド のオ フ セ ッ ト (ゼ ロ を基準に し た相対的なオ フ セ ッ ト )。
1
比較演算子の コ ー ド を指定 し ます。
1 等しい
2 よ り 大きい
3 よ り 小さい
4 等 し く ない
5 以上
6 以下
フ ァ イ ルの既存の ACS のいずれか を使っ て文字列を比較す る には、+8 バ イ ア ス を加算 し ます。
フ ァ イ ルのデフ ォ ル ト の ACS を使っ て文字列を比較す る には、+32 バ イ ア ス を加算 し ます。デ
フ ォ ル ト の ACS と は、 フ ァ イ ルで定義 さ れてい る 先頭の ACS の こ と です。 +8 バ イ ア ス と +32
バ イ ア ス の両方を使用す る と 、 +32 バ イ ア ス は無視 さ れます。
2 番目のオペ ラ ン ド が定数ではな く 、 レ コ ー ド 内の別の フ ィ ール ド の場合は、 +64 バ イ ア ス を
加算 し ます。
大文字 と 小文字を区別 し ないで文字列を比較す る には、 +128 バ イ ア ス を加算 し ます。
82
1
AND/OR 論理演算子を指定 し ます。
0 - 最後の項を示 し ます。
1 - 次の項を AND で結合 し ます。
2 - 次の項を OR で結合 し ます。
2 ま たは
n
2 つの フ ィ ール ド を比較す る 場合は、 2 バ イ ト の、 2 番目の フ ィ ール ド に対す る ゼ ロ 基準の相
対的なオ フ セ ッ ト を指定 し ます (2 番目の フ ィ ール ド は、 同 じ デー タ 型かつ同 じ 長 さ でなけれ
ばな り ません)。
ま たは
フ ィ ール ド を 定数 と 比較す る 場合は、 定数の実際の値 を 指定 し ま す。 定数の長 さ (n) は、
フ ィ ール ド の長 さ と 等 し く なければな り ません。
0、5、9、17
名前に よ っ て ACS を指定 (バ イ ア ス +8) す る と き は、 表 12 に示 さ れてい る 名前の形式のい
ずれかを使っ て、 ACS 識別子を指定 し ます。
Get Next Extended (36)
表 21 Extended Get / Step オペ レーシ ョ ンの入力デー タ バ ッ フ ァ ー構造体
要素
長さ (バ
イト単位)
説明
ディ スク リプ
タ ー (固 定 部
分)
2
取得す る レ コ ー ド 数。 レ コ ー ド のセ ッ ト ではな く 1 つの レ コ ー ド だけ を取得す る には、 1 を指
定 し ます。
2
各レ コ ー ド か ら 抽出す る フ ィ ール ド 数。
2
抽出す る フ ィ ール ド 長。
2
フ ィ ール ド のオ フ セ ッ ト (ゼ ロ を基準に し た相対的なオ フ セ ッ ト )。
ディ スク リプ
タ ー (抽出 さ れ
る 各 フ ィ ール
ド について、 こ
のセグ メ ン ト
を繰 り 返す)
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では Extended Get お よ び Step オペレーシ ョ ンの フ ィ ル タ ーで使用 さ れて
い る AND お よ び OR 演算子は、 厳密に左か ら 右へ向かっ て解釈 さ れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス は、 次の規則に従っ て フ ィ ル タ ー内の式の評価を続けてい き ます。
„
現在の レ コ ー ド に適用 さ れた式が真で、 次の演算子が OR の場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で
はその レ コ ー ド はフ ィ ル タ ー条件を満たす も の と 見な さ れます。
„
式が真で、 次の演算子が AND の場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次のいずれかの状況にな
る ま で各式の評価が継続 さ れます。
Š
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が次の OR 式に達す る 。
Š
式の 1 つが偽 と 評価 さ れ る 。
Š
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が フ ィ ル タ ーの末尾に達す る 。
„
式が偽で、 次の演算子が OR の場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ィ ル タ ー内の次の式が引
き 続き 評価 さ れます。
„
式が偽で、 次の演算子が AND の場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではその レ コ ー ド は拒否 さ れ
ます。
次のいずれかの条件が成立す る と 、 レ コ ー ド の検索は中止 さ れます。
„
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で、 フ ィ ル タ ー条件を満たす、 指定 し た数の レ コ ー ド が検出 さ れ る 。
„
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が フ ィ ル タ ー条件を満たすレ コ ー ド を検索 し てい る 間に、検索 し た レ
コ ー ド 数が指定 し た リ ジ ェ ク ト カ ウ ン ト の最大数を超え る 。
„
現在のキー パ ス が フ ィ ル タ ー条件の フ ィ ール ド と し て使用 さ れてお り 、 それ以降フ ァ イ ルの残 り 部分に フ ィ
ル タ ー条件を満たす レ コ ー ド はない と す る 、 拒否 レ コ ー ド に ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が達す
る。
„
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が フ ァ イ ルの末尾に達す る 。
例
フ ィ ル タ ー条件を満たす次の レ コ ー ド 全体を取得する には、 フ ィ ル タ ー部分を希望どお り に設定 し 、 次の よ う に
デ ィ ス ク リ プ タ ー フ ィ ール ド を設定 し ます。
1
レ コ ー ド 数に 1 を設定 し ます。
2
フ ィ ール ド 数に 1 を設定 し ます。
3
フ ィ ール ド 長に取得す る レ コ ー ド 全体の長 さ を設定 し ます。
4
フ ィ ール ド のオ フ セ ッ ト に 0 を設定 し ます。
83
Btrieve API オペ レーシ ョ ン
フ ィ ル タ ー条件を使わずに次の 12 件の レ コ ー ド を取得 し 、各レ コ ー ド か ら 4 つの フ ィ ール ド を抽出す る には、論
理式の項の数に 0 を設定 し 、 次の よ う にデ ィ ス ク リ プ タ ー フ ィ ール ド を設定 し ます。
1
レ コ ー ド 数に 12 を設定 し ます。
2
フ ィ ール ド 数に 4 を設定 し ます。
3
抽出す る 4 つの フ ィ ール ド ご と にフ ィ ール ド 長お よ びフ ィ ール ド のオ フ セ ッ ト パ ラ メ ー タ ーを設定 し ます。
レ コ ー ド からのフ ィ ール ド の取得
Extended オペレーシ ョ ン を使っ て レ コ ー ド の フ ィ ール ド (レ コ ー ド の一部) を取得す る と き は、デー タ バ ッ フ ァ ー
がオペレーシ ョ ンか ら 返 さ れ る 情報を十分に格納で き る こ と を確認 し てお く 必要があ り ます。
表 22 は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れ る デー タ バ ッ フ ァ ーの構造体を示 し てい ます。
表 22 Extended Get / Step オペ レーシ ョ ンの戻 り デー タ バ ッ フ ァ ー構造体
要素
長さ (バ
イト単位)
説明
レ コー ド 数
2
返 さ れた レ コ ー ド 数。
繰 り 返 し 部分 (取得 さ れた レ コ ー ド ご と に 1 つあ り ます)
長さ 0
2
先頭レ コ ー ド の イ メ ージ(すべての フ ィ ール ド を結合
し た も の) の長 さ 。
位置 0
4
先頭レ コ ー ド の物理カ レ ン シー (ア ド レ ス)。
レ コー ド 0
n
先頭レ コ ー ド の イ メ ージ(すべての フ ィ ール ド を結合
し た も の)。
長さ x
2
末尾レ コ ー ド の イ メ ージ(すべての フ ィ ール ド を結合
し た も の) の長 さ (バ イ ト 単位)。
位置 x
4
末尾レ コ ー ド の物理カ レ ン シー (ア ド レ ス)。
レ コー ド x
n
末尾レ コ ー ド の イ メ ージ(すべての フ ィ ール ド を結合
し た も の)。
.
.
.
返 さ れたすべての レ コ ー ド (ま たは レ コ ー ド の フ ィ ール ド ) が固定長で あ る 場合、 戻 り デー タ バ ッ フ ァ ー内の
デー タ の位置は簡単に計算で き ま す。 し か し 、 Extended オペレ ーシ ョ ン か ら 返 さ れたデー タ バ ッ フ ァ ーか ら レ
コ ー ド の可変長部分を抽出す る には、 さ ら に特別な手順を踏む必要があ り ます。
レ コ ー ド の可変長部分が返 さ れ る と き 、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は戻 り デー タ バ ッ フ ァ ー内に余分
な レ コ ー ド イ メ ージ を詰め込みません。 し たが っ て、 レ コ ー ド の可変長部分が占有す る 最大のバ イ ト 数を想定 し
て戻 り デー タ バ ッ フ ァ ー内の領域を確保 し て も 、 実際に返 さ れたデー タ がその最大値を下回る 場合、 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では次に返 さ れた フ ィ ール ド の フ ィ ール ド 記述は現在の フ ィ ール ド のデー タ の直後
か ら 始ま る こ と にな り ます。
た と えば、 固定レ コ ー ド 長が 100 バ イ ト で、 可変長部分は最大 300 バ イ ト にな る と 推定 さ れ る と き に、 5 件の レ
コ ー ド の可変長部分だけ を取得 し たい と し ます。 入力バ ッ フ ァ ーのデ ィ ス ク リ プ タ ー要素を使っ て、 フ ィ ール ド
長に 300 を設定 し 、 フ ィ ール ド のオ フ セ ッ ト に 100 を設定 し ます。 戻 り バ ッ フ ァ ーについては、 次の計算式で示
す よ う に、 レ コ ー ド 数を示す 2 バ イ ト と 、 レ コ ー ド 当た り 306 バ イ ト (つま り 、 長 さ の 2 バ イ ト 、 ア ド レ ス の 4
バ イ ト 、 お よ びデー タ の 300 バ イ ト ) を加算する 必要があ り ます。
2 + ((2 バ イ ト + 4 バ イ ト + 300 バ イ ト ) * 5) = 1532 バ イ ト
84
Get Next Extended (36)
し か し 、 返 さ れた先頭レ コ ー ド の可変長部分には 50 バ イ ト のデー タ し かなか っ た と し ます。 その結果、 2 バ イ ト
か ら 成る 2 番目に返 さ れ る レ コ ー ド の長 さ は、デー タ バ ッ フ ァ ーのオ フ セ ッ ト 58、つま り 先頭レ コ ー ド の フ ィ ー
ル ド イ メ ージの直後に格納 さ れ る こ と にな り ます。 こ う し た状況で も アプ リ ケーシ ョ ンでは、 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス か ら デー タ バ ッ フ ァ ーに返 さ れた長 さ 、位置、お よ びデー タ を正確に解析す る 必要があ り ま
す。
結果
Get Next Extended オペレーシ ョ ンが正常に終了 し た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の情報
が返 さ れます。
„
デー タ バ ッ フ ァ ーには、取得 さ れた 1 つま たは複数の レ コ ー ド に含まれ る 1 つま たは複数の フ ィ ール ド が格
納 さ れます (表 22 を参照 し て く だ さ い)。
„
デー タ バ ッ フ ァ ー長には、 受け取っ た総バ イ ト 数が格納 さ れます。
„
キー バ ッ フ ァ ーには、 受け取っ た最後のデー タ レ コ ー ド のキー値が格納 さ れます。
Get Next Extended オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら
次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
7
キー番号が変更 さ れま し た。
8
現在のポジシ ョ ンが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
60
指定 さ れた リ ジ ェ ク ト カ ウ ン ト に達 し ま し た。
61
作業領域が小 さ すぎ ます。
62
デ ィ ス ク リ プ タ ーが不正です。
64
フ ィ ル タ ー制限に達 し ま し た。
65
フ ィ ール ド オ フ セ ッ ト が不正です。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
134
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) を読み取れません。
135
指定 さ れた イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) テーブルは破損 し てい る か、 ま たは不正です。
136
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 指定 さ れたオル タ ネー ト コ レーテ ィ ン グ シーケ ン ス を フ ァ イ ル内
に見つけ ら れません。
ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 0 以外の ス テー タ ス コ ー ド が返 さ れて も 、 有効なデー タ がデー タ
バ ッ フ ァ ーに返 さ れ る こ と があ り ます。 ただ し こ の場合、 返 さ れた最後の レ コ ー ド は不完全な も のであ る 可能性
があ り ます。デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに 0 を超え る 値が返 さ れてい る 場合は、デー タ バ ッ フ ァ ーに抽出
さ れたデー タ を確認 し て く だ さ い。
デー タ バ ッ フ ァ ーが短すぎ る ために フ ィ ール ド を部分的に し か格納で き ない場合は、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス ではその一部だけの フ ィ ール ド も 含め、 格納で き る だけの レ コ ー ド 部分が返 さ れます。 部分フ ィ ー
ル ド が抽出 さ れ る 最後の フ ィ ール ド であ る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオペレーシ ョ ンが続
行 さ れます。 そ う でない場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオペレーシ ョ ンは中止 さ れ、 ス テー タ
ス コ ー ド 22 が返 さ れます。
た と えば、 2 件の可変長レ コ ー ド か ら 3 つの フ ィ ール ド を取得す る Get Next Extended オペレーシ ョ ン を考えてみ
ま し ょ う 。 最初の レ コ ー ド は 55 バ イ ト で、 2 番目の レ コ ー ド は 50 バ イ ト の長 さ だ と し ます。 デー タ バ ッ フ ァ ー
には 50 バ イ ト のデー タ を返す こ と がで き ます。 取得する 3 つの フ ィ ール ド は次の よ う に定義 さ れてい ます。
85
Btrieve API オペ レーシ ョ ン
„
フ ィ ール ド 1 はオ フ セ ッ ト 2 か ら 始ま り 、 2 バ イ ト 長です。
„
フ ィ ール ド 2 はオ フ セ ッ ト 45 か ら 始ま り 、 10 バ イ ト 長です。
„
フ ィ ール ド 3 はオ フ セ ッ ト 6 か ら 始ま り 、 2 バ イ ト 長です。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で Get Next Extended オペレーシ ョ ンが実行 さ れ る と き 、最初の レ コ ー ド は
問題な く 返 さ れます。 し か し 、 2 番目の レ コ ー ド か ら フ ィ ール ド 2 の 10 バ イ ト を抽出 し よ う と す る と 、 オ フ セ ッ
ト 45 と レ コ ー ド の末尾のオ フ セ ッ ト 49 の間では 5 バ イ ト し か取得で き ない こ と が ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス に よ っ て検出 さ れます。 こ の時点で、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はフ ィ ール ド 2 の不足 し て
い る 5 バ イ ト 分を詰め込ま ないため、 フ ィ ール ド 3 は抽出で き な く な り ます。 その代わ り に、 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 22 が返 さ れ、 フ ィ ール ド 1 全体 と フ ィ ール ド 2 の先頭 5 バ イ ト が戻
り デー タ バ ッ フ ァ ーに格納 さ れます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ィ ル タ ー条件で使用す る フ ィ ール ド と 演算子に よ っ て、要求を最適
化で き る 場合があ り ます。 拒否レ コ ー ド に達す る と 、 ス テー タ ス コ ー ド 64 が返 さ れ、 フ ァ イ ルの未検索の部分
にはフ ィ ル タ ー条件を満たすレ コ ー ド がそれ以上ない こ と が示 さ れます。
ポジ シ ョ ニ ング
Get Next Extended オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 さ れ ます。
検索 さ れた最後の レ コ ー ド が現在の レ コ ー ド にな り ます。 こ の レ コ ー ド は、 フ ィ ル タ ー条件を満た し て取得 さ れ
た レ コ ー ド か、ま たはフ ィ ル タ ー条件を満た さ ないために拒否 さ れたが、ま だ最適化の範囲を超えていない レ コ ー
ド のいずれかです。 た と えば、 Extended オペ レ ーシ ョ ン が ス テー タ ス 9 を返 し た場合は、 フ ァ イ ルの末尾の レ
コ ー ド が現在の レ コ ー ド にな り ます。 ス テー タ ス 60 ( リ ジ ェ ク ト カ ウ ン ト に達 し ま し た) が返 さ れた場合は、 拒
否 さ れた最後の レ コ ー ド が現在の レ コ ー ド です。 ス テー タ ス 64 (フ ィ ル タ ー制限に達 し ま し た) が返 さ れた場合
には、 最適化条件を満たす最後の レ コ ー ド が現在の レ コ ー ド にな り ます。 こ れ以降の レ コ ー ド は最適化の範囲を
超え てい る こ と を確認す る ために、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が次の レ コ ー ド を検索す る 必要があ っ
た と し て も 、 現在の レ コ ー ド の設定は条件を満たす前の レ コ ー ド に戻 さ れます。
メ モ ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 Get Next Extended オペ レ ーシ ョ ン の後に Delete ま たは
Update オペレーシ ョ ン を実行す る こ と はで き ません。 現在の レ コ ー ド は検索 さ れた最後の レ コ ー ド であ る た
め、 アプ リ ケーシ ョ ンには、 意図 し た レ コ ー ド を適切に削除ま たは更新 し てい る か ど う か を確認す る 方法が
あ り ません。
86
Get Position (22)
Get Position (22)
Get Position オペレーシ ョ ン (B_GET_POSITION) では、 4 バ イ ト で表 し た現在の レ コ ー ド の物理位置を返 し ます。
Get Position オペレーシ ョ ン を発行す る と き に物理カ レ ン シーが確立 さ れていない と 、 オペレーシ ョ ンは正常に実
行 さ れません。 レ コ ー ド の位置 (ア ド レ ス) を決定で き れば、 Get Direct/Record オペレーシ ョ ン (23) を使っ て、
フ ァ イ ル内の物理位置を基にその レ コ ー ド を直接取得で き る よ う にな り ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス では、 Get Position 要求を処理す る ためにデ ィ ス ク I/O は行われません。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
○
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
○
○
キー番号
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
アプ リ ケーシ ョ ンでは、 物理カ レ ン シーを確立 し てお く こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 22 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に少な く と も 4 バ イ ト を設定 し ます。
4
キー番号に 0 を設定 し ます。
結果
Get Position オペレーシ ョ ンが正常に終了 し た場合は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら レ コ ー ド の位置
がデー タ バ ッ フ ァ ーに返 さ れ ます。 位置は、 High-Low で記録 さ れ る 4 バ イ ト のバ イ ナ リ 値で、 フ ァ イ ル内での
レ コ ー ド のオ フ セ ッ ト (バ イ ト 単位) を示 し ます。 ま た、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではデー タ バ ッ
フ ァ ー長に も 4 バ イ ト が設定 さ れます。
Get Position オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
8
現在のポジシ ョ ンが不正です。
ポジ シ ョ ニ ング
Get Position オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
87
Btrieve API オペ レーシ ョ ン
Get Previous (7)
Get Previous オペレーシ ョ ン (B_GET_PREVIOUS) では、 指定 さ れた キーに基づいて、 論理位置で前にあ る レ コ ー
ド を取得 し ます。 Get Previous オペレーシ ョ ン を使 う と 、 重複す る キー値を持つレ コ ー ド のグループの中で レ コ ー
ド を検索で き ます。 「Get Key (+50)」 バ イ ア ス を使 う と 、 フ ァ イ ル内に値が存在す る か ど う か を検出す る こ と も
で き ます。 一般に、 Get Key オペレーシ ョ ンの方が高速に処理 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
„
アプ リ ケーシ ョ ンでは、 指定 し た キーに基づ く 前の論理位置を確立 し てお く こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 7 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
4
キー バ ッ フ ァ ーに前のオペレーシ ョ ンで取得 し た キー値を指定 し ます。 キー バ ッ フ ァ ーには、前の呼び出 し
で ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が返 し た キー値 と ま っ た く 同 じ も のを渡 し ます。 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス では、 フ ァ イ ル内の現在の位置を決定す る ために、直前にキー バ ッ フ ァ ーに格納 さ れた
情報が必要 と な る か ら です。
5
キー番号パ ラ メ ー タ ーに、 前の呼び出 し で使用 し た キー パ ス を設定 し ます。 Get Previous オペレーシ ョ ン を
使っ て キー パ ス を変更す る こ と はで き ません。
結果
Get Previous オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではキー バ ッ フ ァ ー
が新 し い レ コ ー ド のキー値を使っ て更新 さ れ、デー タ バ ッ フ ァ ーに前の レ コ ー ド が返 さ れ、デー タ バ ッ フ ァ ー長
にその レ コ ー ド の長 さ が返 さ れます。
Get Previous オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の
ス テー タ ス コ ー ド のいずれかが返 さ れます。
88
3
フ ァ イ ルが開いてい ません。
6
キー番号パ ラ メ ー タ ーが不正です。
Get Previous (7)
7
キー番号が変更 さ れま し た。
8
現在のポジシ ョ ンが不正です。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
こ のオペレーシ ョ ンの実行に よ り 、 論理位置の直前が フ ァ イ ルの先頭 よ り も 前を指す場合は、 ス テー タ ス コ ー ド
9 が返 さ れます。
ポジ シ ョ ニ ング
Get Previous オペ レーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 し 、 取得 し た レ
コ ー ド が現在の レ コ ー ド にな り ます。
89
Btrieve API オペ レーシ ョ ン
Get Previous Extended (37)
Get Previous Extended オペレーシ ョ ン (B_GET_PREV_EXTENDED) では、 指定 さ れた キーに基づき 、 論理位置の
直前か ら フ ァ イ ルの先頭へ向か っ て 1 つま たは複数の レ コ ー ド を検索 し ます。 検索 し た レ コ ー ド が フ ィ ル タ ー条
件を満た し てい る か ど う か をチ ェ ッ ク し た上で、 条件を満たすレ コ ー ド だけ を取得 し ます。 フ ィ ル タ ー条件は論
理式の形を取 り 、 キー フ ィ ール ド のみに制限 さ れません。
Get Previous Extended オペレーシ ョ ンでは、 レ コ ー ド か ら 指定 し た部分だけ を抽出 し 、 その部分だけ を アプ リ ケー
シ ョ ンに返す こ と も で き ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
キー バッ
ファー
キー番号
○
○
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルがデー タ オン リ ー フ ァ イ ルであ っ てはいけ ません。
„
指定 し た キーに基づ く 前の論理位置を確立 し てお く こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 37 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
入力デー タ バ ッ フ ァ ー と 戻 り デー タ バ ッ フ ァ ーの ど ち ら か大き い方を格納で き る よ う に、十分な長 さ のデー
タ バ ッ フ ァ ーを指定 し ます。 表 21 に示す構造体に従っ て、 デー タ バ ッ フ ァ ーを初期化 し ます。
4
デー タ バ ッ フ ァ ー長に、入力構造体 (表 21) と 戻 り 構造体 (表 22) の ど ち ら か大 き い方の長 さ を指定 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではバ ッ フ ァ ーを用意 し て、Extended オペレーシ ョ ンの ワー ク スペー
ス と し て使用で き る よ う に し ます。 こ のバ ッ フ ァ ーのサ イ ズは、 [拡張オペレーシ ョ ン バ ッ フ ァ ー サ イ ズ]
オプシ ョ ン を使っ て構成 し ま す。 デー タ バ ッ フ ァ ー構造体、 取得 さ れ る 最長の レ コ ー ド 、 お よ び リ ク エ ス
タ ーのオーバーヘ ッ ド の 355 バ イ ト 、 こ れ ら の合計が設定 し たバ ッ フ ァ ー サ イ ズ を超え る こ と はで き ま せ
ん。 ( リ ク エ ス タ ーのオーバーヘ ッ ド は、 DOS ワー ク ス テーシ ョ ンのエン ジ ンには適用で き ません。)
5
キー バ ッ フ ァ ーに前のオペレーシ ョ ンで取得 し た キー値を指定 し ます。 キー バ ッ フ ァ ーには、前の呼び出 し
で ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れた キー値 と ま っ た く 同 じ も の を渡 し ま す。 ト ラ ン ザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では、 フ ァ イ ル内の現在の位置を決定す る ために、直前にキー バ ッ フ ァ ーに格納
さ れた情報が必要 と な る か ら です。
6
キー番号パ ラ メ ー タ ーに、 前の呼び出 し で使用 し た キー パ ス を設定 し ます。 Get Previous Extended オペレー
シ ョ ン を使っ て キー パ ス を変更す る こ と はで き ません。
90
Get Previous Extended (37)
詳細
こ のオペレーシ ョ ンでは、 Get Next Extended オペレーシ ョ ンの場合 と 同 じ 入力デー タ バ ッ フ ァ ーお よ び戻 り デー
タ バ ッ フ ァ ーを使用 し ます。 詳 し く は 「詳細」 を ご覧 く だ さ い。
結果
こ のオペレーシ ョ ンでは、 Get Next Extended オペレーシ ョ ン と 同様の結果が返 さ れます。 詳 し く は 「結果」 を ご
覧 く だ さ い。
ポジ シ ョ ニ ング
Get Previous Extended オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シーが確立 さ れ ま
す。 検索 さ れた最後の レ コ ー ド が現在の レ コ ー ド にな り ます。 こ の レ コ ー ド は、 フ ィ ル タ ー条件を満た し て取得
さ れた レ コ ー ド か、 ま たはフ ィ ル タ ー条件を満た さ ないために拒否 さ れた レ コ ー ド のいずれかです。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、Get Previous Extended オペレーシ ョ ンの後に Delete ま たは
Update オペレーシ ョ ン を実行す る こ と はで き ません。 現在の レ コ ー ド は検索 さ れた最後の レ コ ー ド であ る た
め、 アプ リ ケーシ ョ ンには、 意図 し た レ コ ー ド を適切に削除ま たは更新 し てい る か ど う か を確認す る 方法が
あ り ません。
91
Btrieve API オペ レーシ ョ ン
Insert (2)
Insert オペレーシ ョ ン (B_INSERT) では、 フ ァ イ ルに レ コ ー ド を挿入 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ
イ ス では新 し い レ コ ー ド のキー値を反映 し て、 キーの B-ツ リ ーが調整 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
○
キー バッ
ファー
○
キー番号
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
挿入す る レ コ ー ド は適切な レ コ ー ド 長を持つ必要があ り ます。 ま た、 キー値は対象 と な る フ ァ イ ルで定義 さ
れてい る キー と 一致 し ていなければな り ません。
手順
1
オペレーシ ョ ン コ ー ド に 2 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ーに、 挿入す る レ コ ー ド を格納 し ます。
4
デー タ バ ッ フ ァ ー長を指定 し ます。 こ の値は、 少な く と も レ コ ー ド の固定長部分 と 同 じ 長 さ でなければな り
ません。
5
ポジシ ョ ニ ン グ情報 (カ レ ン シー) の確立に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が使用す る キー番号を指
定 し ます。 NCC オプシ ョ ン を使用す る には、 キー番号に -1 (0xFF) を指定 し ます。 シ ス テ ム定義の ロ グ キー
(シ ス テ ム デー タ ) を使用す る には、 125 を指定 し ます。
メ モ NCC (No-currency-change : カ レ ン シー変更な し ) オプシ ョ ン を使用す る と 、 Insert オペレ ーシ ョ ンは
キー バ ッ フ ァ ー パ ラ メ ー タ ーの値を更新 し ません。 つま り 、 キー バ ッ フ ァ ー パ ラ メ ー タ ーには何の情報 も
返 さ れません。
結果
Insert オペ レ ーシ ョ ン が正常に終了 し た場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では フ ァ イ ルに新 し い レ
コ ー ド が挿入 さ れ、 新 し い レ コ ー ド を反映 し て キーの B ツ リ ーが更新 さ れます。 ま た、 指定 し た キーの値がキー
バ ッ フ ァ ーに返 さ れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 AUTOINCREMENT キーの値がバ イ ナ リ
0 に初期化 さ れてい る レ コ ー ド を挿入す る と 、 挿入 し た レ コ ー ド も デー タ バ ッ フ ァ ーに返 さ れ、 レ コ ー ド には ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て割 り 当て ら れた AUTOINCREMENT 値が入っ てい ます。 NCC Insert
オペレーシ ョ ンでは、 キー バ ッ フ ァ ー パ ラ メ ー タ ーの値は変更 さ れません。
Insert オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー
タ ス コ ー ド のいずれかが返 さ れます。
92
2
アプ リ ケーシ ョ ンで I/O エ ラ ーが発生 し ま し た。
3
フ ァ イ ルが開いてい ません。
Insert (2)
5
レ コ ー ド のキー フ ィ ール ド に重複す る キー値があ り ます。
18
デ ィ ス ク がいっぱいです。
21
キー バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
NCC オプシ ョ ン を指定 し ない Insert オペレーシ ョ ン を実行す る と 、 完全な論理カ レ ン シーお よ び物理カ レ ン シー
が確立 し 、 挿入 し た レ コ ー ド が現在の レ コ ー ド にな り ます。 論理カ レ ン シーは指定 し た キーに基づ き ます。
NCC Insert オペレ ーシ ョ ン を実行す る と 、 論理カ レ ン シーは影響を受けずに、 物理カ レ ン シーが確立 さ れ ま す。
つま り 、 NCC Insert オペレーシ ョ ン を実行 し た アプ リ ケーシ ョ ン では、 フ ァ イ ル内の論理位置は Insert オペレー
シ ョ ン を実行す る 前 と 変わ ら ない と い う こ と です。 こ の よ う な状況で、 NCC Insert オペレーシ ョ ンに続けて、 Get
Next (6)、 Get Next Extended (36)、 Get Previous (7)、 お よ び Get Previous Extended (37) な ど のオペレーシ ョ ン
を実行す る と 、 NCC Insert オペレーシ ョ ン実行以前のアプ リ ケーシ ョ ンの論理カ レ ン シーに基づ く 値が返 さ れま
す。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 NCC Insert オペレーシ ョ ン を実行 し て も 、 その結果 と し
て何の情報 も キー バ ッ フ ァ ーには返 さ れ ま せん。 し たが っ て、 論理カ レ ン シーの維持が必要な ア プ リ ケー
シ ョ ンでは、 NCC Insert オペレーシ ョ ン後にキー バ ッ フ ァ ーの値を変更 し ないで く だ さ い。 変更する と 、 次
の Get オペレーシ ョ ンの結果は予測で き ない も のにな り ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では標準の Insert オペレーシ ョ ン と NCC Insert オペレーシ ョ ンの ど ち ら を
実行 し て も 、 新 し く 挿入 さ れた レ コ ー ド に対 し 物理カ レ ン シーが確立 さ れます。 NCC Insert オペレーシ ョ ンに続
く Step Next (24)、 Step Next Extended (38)、 Step Previous (35)、 Step Previous Extended (39)、 Update (3)、 Delete
(4)、 お よ び Get Position (22) な ど のオペレーシ ョ ンは、 新 し い物理カ レ ン シーに基づいて機能 し ます。
93
Btrieve API オペ レーシ ョ ン
Insert Extended (40)
Insert Extended オペレーシ ョ ン (B_EXT_INSERT) では、 フ ァ イ ルに 1 つま たは複数の レ コ ー ド を挿入 し ます。 ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、新 し い レ コ ー ド のキー値を反映 し て、キーの B ツ リ ーが調整 さ れます。
パラ メ ー タ ー
オペレーション
コード
ポジション
ブロック
○
○
○
○
○
送り値
戻り値
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
○
キー番号
○
○
メ モ NCC (No-currency-change : カ レ ン シー変更な し ) オプシ ョ ン を使用す る と 、 Insert Extended オペレ ー
シ ョ ンはキー バ ッ フ ァ ー パ ラ メ ー タ ーの値を更新 し ません。 つま り 、 キー バ ッ フ ァ ー パ ラ メ ー タ ーには何
の情報 も 返 さ れません。
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
挿入す る レ コ ー ド は適切な レ コ ー ド 長を持つ必要があ り ます。 ま た、 キー値は対象 と な る フ ァ イ ルで定義 さ
れてい る キー と 一致 し ていなければな り ません。
手順
1
オペレーシ ョ ン コ ー ド に 40 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
表 23 に示す構造体に従っ て、 デー タ バ ッ フ ァ ーを指定 し ます。
4
デー タ バ ッ フ ァ ー長を指定 し ます。 こ の値は、デー タ バ ッ フ ァ ー構造体のサ イ ズ と 一致 し てい る こ と が必要
です。
5
カ レ ン シーの確立に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が使用する キー番号を指定 し ます。NCC オプシ ョ
ン を使用す る には、 キー番号に -1 (0xFF) を指定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を
使用す る には、 125 を指定 し ます。
詳細
次の表は、 デー タ バ ッ フ ァ ーの構造体を示 し てい ます。
表 23 Insert Extended オペ レーシ ョ ンのデー タ バ ッ フ ァ ー構造体
要素
長さ (バイト単位)
説明
固定部分
2
挿入す る レ コ ー ド 数。
繰 り 返 し 部分 (レ コ ー ド ご と に 1 つあ り ます)
94
2
レ コ ー ド イ メ ージの長 さ 。
n
レ コ ー ド イ メ ージ。
Insert Extended (40)
結果
Insert Extended オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ルに新
し い レ コ ー ド が挿入 さ れ、 新 し い レ コ ー ド を反映 し てすべて の B ツ リ ーが更新 さ れ ま す。 さ ら に、 NCC Insert
Extended オペレーシ ョ ンの場合を除 き 、 最後に挿入 し た レ コ ー ド か ら 、 指定 し た キーの値がキー バ ッ フ ァ ーに返
さ れます。 ま た、 戻 り デー タ バ ッ フ ァ ーの先頭 ワー ド には、 フ ァ イ ルに正常に挿入 さ れた レ コ ー ド の数が ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て格納 さ れます。デー タ バ ッ フ ァ ーの先頭ワー ド の後には、挿入 さ れた レ
コ ー ド のア ド レ ス が ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て格納 さ れます。
オペレーシ ョ ン の一部 し か正常に実行 さ れず、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 0 以外の ス テー タ ス
コ ー ド が返 さ れた場合、 デー タ バ ッ フ ァ ーの先頭 ワ ー ド の値は正常に挿入 さ れた レ コ ー ド の数 と 等 し く な り ま
す。 エ ラ ーの原因 と な っ た レ コ ー ド は、 正常に挿入 さ れた レ コ ー ド 数 + 1 番目の レ コ ー ド です。
Insert Extended オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次
の ス テー タ ス コ ー ド のいずれかが返 さ れます。
2
アプ リ ケーシ ョ ンで I/O エ ラ ーが発生 し ま し た。
3
フ ァ イ ルが開いてい ません。
5
レ コ ー ド のキー フ ィ ール ド に重複す る キー値があ り ます。
18
デ ィ ス ク がいっぱいです。
21
キー バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
NCC オプシ ョ ン を指定 し ない Insert Extended オペレーシ ョ ン を実行する と 、 完全な論理カ レ ン シーお よ び物理カ
レ ン シーが確立 し 、 挿入 さ れた レ コ ー ド のキー値が ヌ ルでなければ、 最後に挿入 さ れた レ コ ー ド が現在の レ コ ー
ド にな り ます。 論理カ レ ン シーは指定 し た キーに基づき ます。
NCC Insert Extended オペレーシ ョ ン を実行す る と 、 論理カ レ ン シーは影響を受けずに、 物理カ レ ン シーが確立 さ
れます。 つま り 、 NCC Insert Extended オペレーシ ョ ン を実行 し た アプ リ ケーシ ョ ンでは、 フ ァ イ ル内の論理位置
はオペレーシ ョ ン を実行す る 前 と 変わ ら ない と い う こ と です。 こ の よ う な状況で、 NCC Insert Extended オペレー
シ ョ ンに続けて、 Get Next (6)、 Get Next Extended (36)、 Get Previous (7)、 お よ び Get Previous Extended (37) な
ど のオペレーシ ョ ン を実行す る と 、 NCC Insert Extended オペレーシ ョ ン実行以前のアプ リ ケーシ ョ ンの論理カ レ
ン シーに基づ く 値が返 さ れます。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 NCC Insert Extended オペレーシ ョ ン を実行 し て も 、 その
結果 と し て何の情報 も キー バ ッ フ ァ ーには返 さ れません。 し たがっ て、 論理カ レ ン シーの維持が必要な アプ
リ ケーシ ョ ン では、 NCC Insert Extended オペレーシ ョ ン後にキー バ ッ フ ァ ーの値を変更 し ないで く だ さ い。
変更す る と 、 次の Get オペレーシ ョ ンの結果は予測で き ない も のにな り ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では標準の Insert Extended オペレーシ ョ ン と NCC Insert Extended オペレー
シ ョ ン の ど ち ら を実行 し て も 、 新 し く 挿入 さ れた レ コ ー ド に対 し 物理カ レ ン シーが確立 さ れ ます。 し たが っ て、
NCC Insert Extended オペレーシ ョ ンに続 く Step Next (24) 、 Step Next Extended (38) 、 Step Previous (35) 、 Step
Previous Extended (39)、 Update (3)、 Delete (4)、 お よ び Get Position (22) な ど のオペレーシ ョ ンは、 新 し い物
理カ レ ン シーに基づいて機能 し ます。
Get Next オペレーシ ョ ン (6) の よ う な、 元の論理カ レ ン シーに基づ く オペレーシ ョ ン を実行す る ために、 アプ リ
ケーシ ョ ン で Insert Extended オペ レ ーシ ョ ン 実行前の フ ァ イ ルの論理位置 を 保存 し てお く 必要が あ る 場合に、
NCC Insert Extended オペレーシ ョ ンが役立ち ます。
95
Btrieve API オペ レーシ ョ ン
NCC Insert Extended オペレーシ ョ ン を実行 し ないで同様の結果を得 る には、 アプ リ ケーシ ョ ン で以下の手順を実
行す る 必要があ り ます。
1
Get Position (22) - 現在の論理レ コ ー ド の、 4 バ イ ト 長の物理ア ド レ ス を取得 し ます。 アプ リ ケーシ ョ ン で こ
の値を保存 し 、 手順 3 で こ れを渡 し て元に戻 し ます。
2
Insert Extended (40) - 新 し い レ コ ー ド を挿入 し ます。 こ のオペレーシ ョ ンに よ り 、 新 し い論理カ レ ン シーお
よ び物理カ レ ン シーが確立 さ れます。
3
Get Direct/Record (23) - 手順 1 での状態に論理カ レ ン シー と 物理カ レ ン シーを戻 し ます。
NCC Insert Extended オペレーシ ョ ンは、 論理カ レ ン シーについては こ の手順 と 同様の結果を得 ら れますが、 物理
カ レ ン シーについては異な り ます。 た と えば、 こ れ ら 2 つの手順のいずれかに続けて Get Next (6) オペレーシ ョ
ン を実行 し た場合は、 ど ち ら の手順で も 結果は変わ り ませんが、 Step Next (24) を実行 し た場合は、 異な る レ コ ー
ド が返 さ れ る 可能性があ り ます。
96
Login/Logout (78)
Login/Logout (78)
Login/Logout オペレ ーシ ョ ン (B_LOGIN/B_LOGOUT) を使用す る と 、 ユーザーは自身のユーザー資格情報を指
定 し た り 、 デー タ ベース エン ジ ンか ら 認証 ト ー ク ンお よ び許可 ト ー ク ン を取得 し た り する こ と がで き ます。 こ の
オペレーシ ョ ンでは、 ユーザーが自身の ロ グ イ ン資格情報を リ セ ッ ト す る こ と も 可能であ る ため、 デー タ ベース
ヘのア ク セ ス を取得す る ために ロ グ イ ン資格情報を再入力する 必要があ り ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
○
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
○
戻り値
前提条件
デー タ ベース名お よ びユーザー ID はあ ら か じ め定義 さ れてい る 必要があ り ます。
„
ログ イ ン手順
1
オペレーシ ョ ン コ ー ド に 78 を設定 し ます。
2
キー番号に 0 を設定 し ます。
3
デー タ ベース URI の形式を用いて、 キー バ ッ フ ァ ーにサーバー名、 デー タ ベース名、 ユーザー ID、 お よ び
パス ワ ー ド を設定 し ます URI 接続文字列の詳細については、 『Pervasive PSQL Programmer's Guide』 の 「デー
タ ベース URI」 を参照 し て く だ さ い。
ログアウ ト 手順
1
オペレーシ ョ ン コ ー ド に 78 を設定 し ます。
2
キー番号に 1 を設定 し ます。
3
デー タ ベース URI の形式を用いて、 キー バ ッ フ ァ ーにサーバー名、 デー タ ベース名、 ユーザー ID、 お よ び
パス ワ ー ド を設定 し ます (『Pervasive PSQL Programmer's Guide』の「デー タ ベース URI」 を参照 し て く だ さ い)。
結果
Login ま たは Logout オペ レ ーシ ョ ン が正常に終了 し た場合は、 ス テー タ ス 0 が返 さ れ ま す。 正常に実行 さ れな
か っ た場合は、 次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
1
不正な操作です。
172
デー タ ベース名が見つか り ません。
3103
不明なサーバーです。
注記
デー タ ベース URI を結合 し た長 さ は 255 バ イ ト 未満でなければな り ません。こ れがキー バ ッ フ ァ ーの最大サ イ ズ
だか ら です。
Login オペレーシ ョ ン ではパフ ォーマ ン ス に負荷がかか り ます。 アプ リ ケーシ ョ ン、 フ ァ イ ルご と に ロ グ イ ンお
よ び ロ グ ア ウ ト す る よ う な コ ーデ ィ ン グ を し ないで く だ さ い。 代わ り に、 セ ッ シ ョ ンの始めに一度デー タ ベース
に ロ グ イ ン し 、 デー タ ベース作業が完了 し た ら ロ グ ア ウ ト する よ う に し て く だ さ い。
97
Btrieve API オペ レーシ ョ ン
ポジ シ ョ ニ ング
Login/Logout オペレーシ ョ ンは、 フ ァ イ ルのカ レ ン シー情報には ま っ た く 影響 し ません。
98
Open (0)
Open (0)
Open オペレーシ ョ ン (B_OPEN) は、 フ ァ イ ルへのア ク セ ス を可能に し ます。 アプ リ ケーシ ョ ン で フ ァ イ ルにア
ク セ スす る には、 まず Open オペレーシ ョ ン を実行す る 必要があ り ます。 フル パ ス名ま たは相対パ ス名を指定す
る 限 り 、 対象 と な る フ ァ イ ルが現在のデ ィ レ ク ト リ に保存 さ れてい る 必要はあ り ません。
パラ メ ー タ ー
オペレーション
コード
送り値
戻り値
ポジション
ブロック
○
データ バッ データ バッ
ファー
ファー長
○
○
キー バッ
ファー
キー番号
○
○
○
前提条件
„
開 く フ ァ イ ルは、 ア ク セ ス可能な論理デ ィ ス ク ド ラ イ ブ上にあ る こ と が必要です。
„
その フ ァ イ ルで使用可能な フ ァ イ ル ハン ド ルが存在す る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 0 を設定 し ます。
2
フ ァ イ ルにオーナーが設定 さ れてい る 場合は、デー タ バ ッ フ ァ ー パ ラ メ ー タ ーにオーナー ネーム を指定 し 、
末尾にバ イ ナ リ 0 を付け ます。
3
デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに、 バ イ ナ リ 0 を含めたオーナー ネームの長 さ を指定 し ます。
キー バ ッ フ ァ ー パ ラ メ ー タ ーに、 開 く フ ァ イ ルのパス名を入れます。 埋め込みスペース の設定に応 じ て、 パ
ス名の終端は ヌ ル (バ イ ナ リ ゼ ロ ) に し ます。 パ ス名は半角 255 文字ま での範囲で指定で き ます。 ヌ ル終端
文字を含む完全修飾 UNC (Unified Naming Convention) パ ス名は、 半角 255 文字ま での範囲で指定で き ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は通常、 フ ァ イ ル名を完全修飾 UNC フ ァ イ ル名に拡張 し ます。 た と
えば、 J:\Data\File.dat は \\ サーバー名 \ 共有名 \Data\File.dat に変換 さ れます。 こ の拡張 さ れた フ ァ イ ル名
が、ヌ ル終端文字を含めて半角 255 文字ま でにな ら なければな り ません。『Pervasive PSQL Programmer's Guide』
の 「デー タ ベース URI」 も 参照 し て く だ さ い。
ただ し 、 Btrieve の Open 要求が ロ ーカル エン ジ ンに送 ら れ る 場合は、 MIF は ロ ーカルの ド ラ イ ブ文字を コ ン
ピ ュ ー タ ー名お よ び共有名に置 き 換え ません。 ロ ーカルで開 く 場合に も っ と 長い名前で も 受け入れ ら れた と
し て も 、 リ モー ト ク ラ イ ア ン ト ではその フ ァ イ ルを開けない こ と があ り ます。
ク ラ イ ア ン ト の設定オプシ ョ ン [スペース を含むフ ァ イ ル / デ ィ レ ク ト リ 名] に よ っ て、 埋め込みスペース
を含むフ ァ イ ル名がサポー ト さ れます。 デフ ォ ル ト では、 こ の設定パ ラ メ ー タ ーはオンにな っ てい ます。 つ
ま り 、 スペース はパ ス の一部 と 見な さ れます。 こ の設定がオンの場合、 フ ァ イ ル名は ヌ ル バ イ ト で区切 る 必
要があ り ます。 こ の設定がオ フ の場合、埋め込みスペース を含むフ ァ イ ル ("C:\My Folder\my file.mkd"
な ど) を使用す る こ と はで き ません。 『Advanced Operations Guide』 の 「長い フ ァ イ ル名 と 埋め込みスペース
のサポー ト 」 を参照 し て く だ さ い。
Pervasive PSQL ク ラ イ ア ン ト でサポー ト す る パ ス名の詳細については、 『Getting Started with Pervasive PSQL』
の 「Pervasive リ ク エ ス タ ーでサポー ト す る ネ ッ ト ワー ク パ ス の形式」 を参照 し て く だ さ い。
4
キー番号パ ラ メ ー タ ーに、 表 24 に記載 さ れてい る モー ド 値のいずれか を指定 し ます。
99
Btrieve API オペ レーシ ョ ン
詳細
こ こ では、 サポー ト さ れてい る オープン モー ド について説明 し ます。
注意 デー タ ベース エン ジ ンは、 ク ラ イ ア ン ト がア ク セ ラ レ イ テ ィ ド モー ド を使用 し てい る 間は、 ク ラ イ ア
ン ト の ト ラ ンザ ク シ ョ ン ア ト ミ シテ ィ 、 ト ラ ンザ ク シ ョ ン一貫性保守、お よ びアーカ イ ブ ロ グの安全性を保
証で き ません。 こ の制約があ る のは、 ロ グか ら の復元が必要な場合に、 完全な復元を行 う ために十分な情報
が ロ グに含まれていない可能性があ る か ら です。 なぜな ら 、 ロ グは、 1 つのデー タ フ ァ イ ル上で行っ た操作
の部分的な記録で し かないか ら です。
た と えば、 ア ク セ ラ レ イ テ ィ ド モー ド を使用 し て追加を実行中の ク ラ イ ア ン ト と 、 ノ ーマル モー ド を使用 し
て更新を実行中の ク ラ イ ア ン ト が同 じ フ ァ イ ルへア ク セ ス中にシ ス テ ム障害が発生 し た場合、 メ モ リ 上のア
ク セ ラ レ イ テ ィ ド の追加操作はデ ィ ス ク に書き 出 さ れませんが、 ト ラ ンザ ク シ ョ ナルな更新操作は ト ラ ンザ
ク シ ョ ン ロ グに書 き 込まれ る ため、デー タ フ ァ イ ルに ま だ存在 し ていない レ コ ー ド に対す る 更新が ト ラ ンザ
ク シ ョ ン ロ グに含まれ る 可能性があ り ます。
こ の操作の組み合わせを含むアーカ イ ブ ロ グ を ロ ール フ ォ ワー ド し よ う と す る と 、 失敗 し ます。
フ ァ イ ルを開 く 際に、 オープ ン モー ド に よ っ て、 ロ ーカル エン ジ ン と リ モー ト エン ジ ンの ど ち ら を使用す る か
を ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に指示で き ます。キー番号パ ラ メ ー タ ーにオープン モー ド の値を指定 し
ます。
メ モ ロ ーカル エン ジ ンで フ ァ イ ルを開 く よ う に指定する 場合は、 ワー ク グループ エン ジ ンで も サーバー エ
ン ジ ンで も 、 Open オペレーシ ョ ンに何 ら 違いはあ り ません。
表 24 オープ ン モー ド
説明
選択しない
ローカル エンジ
ンで実行
リモート エンジ
ンで実行
ノ ーマル
0
6
99
アクセラ レイテ ィ ド
特定の フ ァ イ ルでのパフ ォ ーマ ン ス を向上す る ために、 フ ァ イ ルを ア ク セ
ラ レ イ テ ィ ド モー ド で開 く こ と がで き ます (6.x ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス で も ア ク セ ラ レ イ テ ィ ド モー ド で開 く こ と はで き ま し たが、
ノ ーマル モー ド で開いた も の と 解釈 さ れ ま し た) 。 ア ク セ ラ レ イ テ ィ ド
モー ド で フ ァ イ ルを開 く と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 そ
の フ ァ イ ルに対す る ト ラ ン ザ ク シ ョ ン ロ グ を実行 し ま せん。 上記の 「注
意」 を参照 し て く だ さ い。
-1
7
100
リ ー ド オン リ ー
リ ー ド オ ン リ ー モー ド で フ ァ イ ルを開 く と 、フ ァ イ ルは読み取 る こ と し か
で き ず、 更新で き な く な り ます。 こ のモー ド を使 う と 、 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス では自動的に回復で き ない破損デー タ を含む フ ァ イ
ルを開 く こ と がで き ます。 フ ァ イ ルの イ ンデ ッ ク ス のデー タ が壊れてい る
場合は、 リ ー ド オ ン リ ー モー ド で フ ァ イ ル を開 き 、 Step Next (24) オペ
レーシ ョ ン を使用す る こ と に よ っ て、 レ コ ー ド を取得で き ます。
-2
8
101
100
Open (0)
表 24 オープ ン モー ド
説明
選択しない
ローカル エンジ
ンで実行
リモート エンジ
ンで実行
ベリ ファイ
こ のモー ド は無視 さ れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ
のモー ド を指定 し て も 、 フ ァ イ ルは ノ ーマル モー ド で開かれます。 以前の
バージ ョ ンの ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、ベ リ フ ァ イ モー
ド を指定す る と 、 デ ィ ス ク に書 き 込ま れたデー タ が正 し いか ど う かが検証
さ れま し た。
-3
適用外
適用外
エ ク ス ク ルーシブ
エ ク ス ク ルーシブ モー ド は フ ァ イ ルに対す る 排他的な ア ク セ ス を可能に
し ま す。 あ る アプ リ ケーシ ョ ン が排他的にア ク セ ス し てい る フ ァ イ ルは、
閉 じ る ま で、 ほかのアプ リ ケーシ ョ ンか ら 開 く こ と がで き な く な り ます。
-4
10
103
開いてい る フ ァ イ ルの最大数について定め ら れた制限はあ り ま せん。 同時に開 く こ と がで き る フ ァ イ ルの数は、
使用可能な メ モ リ に応 じ て変わ り ます。
フ ァ イ ルは、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て 1 回だけ開かれます。( ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス は、 複数の ク ラ イ ア ン ト が同時に 1 つの フ ァ イ ルを開いてい る 状況や、 単独の ク ラ イ ア ン ト が フ ァ イ ル
のポジシ ョ ン ブ ロ ッ ク を複数持っ てい る 状況を認識 し 、処理 し ます。) 拡張フ ァ イ ルを開 く と き 、 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス では 1 つのハン ド ルが使用 さ れ、 ベース フ ァ イ ル と すべてのエ ク ス テ ン シ ョ ン フ ァ イ ル
が開かれます。
結果
Open オペレーシ ョ ン が正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では目的の フ ァ イ ルに フ ァ
イ ル ハン ド ルが割 り 当て ら れ、 新 し く 開いた フ ァ イ ルの Open 呼び出 し で渡 し たポジシ ョ ン ブ ロ ッ ク が予約 さ れ
て、 その フ ァ イ ルがア ク セ ス可能な状態にな り ます。
Open オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー
タ ス コ ー ド のいずれかが返 さ れます。
2
アプ リ ケーシ ョ ンで I/O エ ラ ーが発生 し ま し た。
11
指定 さ れた フ ァ イ ル名は不正です。
12
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は指定 さ れた フ ァ イ ルを見つけ ら れません。
20
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ま たは Btrieve リ ク エ ス タ ーが非ア ク テ ィ ブです。
46
要求 し た フ ァ イ ルへのア ク セ ス は拒否 さ れま し た。
84
レ コ ー ド ま たはページが ロ ッ ク さ れてい ます。
85
フ ァ イ ルは ロ ッ ク さ れてい ます。
86
フ ァ イ ル テーブルがいっぱいです。
87
ハン ド ル テーブルがいっぱいです。
88
アプ リ ケーシ ョ ンでモー ド の不一致エ ラ ーが発生 し ま し た。
101
Btrieve API オペ レーシ ョ ン
次の表には、 ロ ーカル ク ラ イ ア ン ト で使用可能なオープン モー ド の組み合わせを示 し ます。
表 25 ロー カル ク ラ イ ア ン ト のオープ ン モー ド の組み合わせ
ローカル クライアント 1
のオープン モード
ローカル クライアント 2
のオープン モード
結果
ノ ーマル
ノ ーマル
正常終了
リ ー ド オン リ ー
正常終了
エ ク ス ク ルーシブ
ス テー タ ス コ ー ド 88
アクセラ レイテ ィ ド
正常終了
ノ ーマル
正常終了
リ ー ド オン リ ー
正常終了
エ ク ス ク ルーシブ
ス テー タ ス コ ー ド 88
アクセラ レイテ ィ ド
正常終了
ノ ーマル
ス テー タ ス コ ー ド 88
リ ー ド オン リ ー
ス テー タ ス コ ー ド 88
エ ク ス ク ルーシブ
ス テー タ ス コ ー ド 88
アクセラ レイテ ィ ド
ス テー タ ス コ ー ド 88
ノ ーマル
正常終了
リ ー ド オン リ ー
正常終了
エ ク ス ク ルーシブ
ス テー タ ス コ ー ド 88
アクセラ レイテ ィ ド
正常終了
リ ー ド オン リ ー
エ ク ス ク ルーシブ
アクセラ レイテ ィ ド
ポジ シ ョ ニ ング
Open オペレーシ ョ ン を実行 し て も 、 ポジシ ョ ニ ン グは確立 し ません。 ただ し 、 次の物理レ コ ー ド が フ ァ イ ルの先
頭の物理レ コ ー ド にな り ます。
102
Reset (28)
Reset (28)
Reset オペレーシ ョ ン (B_RESET) では、 ク ラ イ ア ン ト が保持 し てい る すべての リ ソ ース を解放 し ます。 こ のオ
ペレーシ ョ ンは、 ク ラ イ ア ン ト が実行中の ト ラ ンザ ク シ ョ ン を中止 し 、 すべての ロ ッ ク を解除 し 、 さ ら に、 ク ラ
イ ア ン ト が開いてい る フ ァ イ ルをすべて閉 じ ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
戻り値
前提条件
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ま たは リ ク エ ス タ ーが ロ ー ド さ れていて、 Reset 呼び出 し を発行す る ク ラ
イ ア ン ト が ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス と の接続を確立 し ていれば、 アプ リ ケーシ ョ ン ではいつで も
Reset オペレーシ ョ ン を発行で き ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス と の接続は、 た と えば、 フ ァ イ ル
を開いた り 、 Pervasive PSQL ユーテ ィ リ テ ィ を使っ て フ ァ イ ルの ス テー タ ス を要求 し た り す る こ と に よ り 確立 し
ます。
手順
1
オペレーシ ョ ン コ ー ド に 28 を設定 し ます。
2
キー番号お よ びキー バ ッ フ ァ ー パ ラ メ ー タ ーに 0 を設定 し ます。
結果
Reset オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では指定 し た ク ラ イ ア ン ト 、
ウ ィ ン ド ウ、 ま たはセ ッ シ ョ ンに対 し て次の動作が実行 さ れます。
1
実行中の ト ラ ンザ ク シ ョ ンがすべて中止 さ れ る 。
2
保持 さ れてい る すべての ロ ッ ク が解除 さ れ る 。
3
開いてい る フ ァ イ ルがすべて閉 じ ら れ る 。
Reset オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 0 以外の ス
テー タ ス コー ド が返 さ れます。
ポジ シ ョ ニ ング
Reset オペレーシ ョ ン を実行す る と 、 開いてい る フ ァ イ ルがすべて閉 じ ら れ る ため、 すべてのカ レ ン シーが消去 さ
れます。
103
Btrieve API オペ レーシ ョ ン
Set Directory (17)
Set Directory オペレーシ ョ ン (B_SET_DIR) では、 指定 し たパ ス名を現在のデ ィ レ ク ト リ と し て設定 し ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
○
キー番号
○
戻り値
前提条件
対象 と な る 論理デ ィ ス ク ド ラ イ ブお よ びデ ィ レ ク ト リ がア ク セ ス可能であ る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 17 を設定 し ます。
2
キー バ ッ フ ァ ーに、 論理デ ィ ス ク ド ラ イ ブお よ びデ ィ レ ク ト リ パ ス を、 最後にバ イ ナ リ 0 を付けて格納 し
ます。 ド ラ イ ブ名を省略 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではデフ ォ ル ト の ド ラ イ ブが使用
さ れます。 デ ィ レ ク ト リ の絶対パ ス を指定 し なか っ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではキー
バ ッ フ ァ ーに指定 し たデ ィ レ ク ト リ パ ス が現在のデ ィ レ ク ト リ に追加 さ れます。
Pervasive PSQL ク ラ イ ア ン ト でサポー ト す る パ ス名の詳細については、 『Getting Started with Pervasive PSQL』
の 「Pervasive リ ク エ ス タ ーでサポー ト す る ネ ッ ト ワー ク パ ス の形式」 を参照 し て く だ さ い。
結果
Set Directory オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではキー バ ッ フ ァ ー
に指定 し たデ ィ レ ク ト リ が現在のデ ィ レ ク ト リ にな り ます。
Set Directory オペレーシ ョ ンが正常に実行 さ れなか っ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では現在の
デ ィ レ ク ト リ は変更 さ れない ま ま で、 0 以外の ス テー タ ス コ ー ド が返 さ れます。
ポジ シ ョ ニ ング
Set Directory オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
104
Set Owner (29)
Set Owner (29)
Set Owner オペ レ ーシ ョ ン (B_SET_OWNER) では フ ァ イ ルにオーナー ネーム (パ ス ワ ー ド ) を割 り 当て ま す。
フ ァ イ ルにオーナー ネームが設定 さ れてい る 場合は、 ユーザーやアプ リ ケーシ ョ ンはその フ ァ イ ルにア ク セ スす
る たびにオーナー ネーム を指定す る 必要があ り ます。 オーナー ネームがすべてのア ク セ ス権に対 し 、 あ る いは更
新権限だけに対 し 要求 さ れ る よ う に指定す る こ と がで き ます。
オーナー ネーム を割 り 当て る と き に、デ ィ ス ク 上の フ ァ イ ルのデー タ を暗号化する よ う ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス に指示す る こ と も で き ます。 デー タ の暗号化を指定す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス
では Set Owner オペレーシ ョ ンの実行中にすべてのデー タ が暗号化 さ れます。 こ のため、 フ ァ イ ル サ イ ズが大 き
いほ ど、 Set Owner オペレーシ ョ ンの完了に要する 時間は長 く な り ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
○
○
キー バッ
ファー
キー番号
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
ト ラ ンザ ク シ ョ ンが実行中でない こ と が必要です。
„
フ ァ イ ルに既にオーナ ネームが設定 さ れていてはいけ ません。
手順
1
オペレーシ ョ ン コ ー ド に 29 を設定 し ます。
オプシ ョ ンで、 +17000 のバ イ ア ス を含め る と 最長 24 バ イ ト (半角 24 文字) のオーナーネーム (「長い」 オー
ナーネーム) を作成す る こ と がで き ます。 こ のバ イ ア ス は btrconst.h に B_LONG_OWNER_NAME_BIAS と し
て も 定義 さ れてい ます。 Btrconst.h は、 Btriev ソ フ ト ウ ェ ア開発キ ッ ト (SDK) で提供 さ れます。
Š
長いオーナー ネーム を指定 し た場合、 そのデー タ フ ァ イ ルは Pervasive PSQL v10 SP1 よ り 前のデー タ
ベース エン ジ ンで読み取 る こ と はで き ません。
Š
長いオーナー ネーム を使用 し たデー タ フ ァ イ ルは、v9.5 よ り 前の フ ァ イ ル形式に リ ビル ド し よ う と す る
場合、 そのオーナー ネーム を最初に削除 し ておかない と リ ビル ド す る こ と がで き ません。
2
保護す る フ ァ イ ルを識別す る ポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー と キー バ ッ フ ァ ーの両方にオーナー ネーム を格納 し ます。 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス は、 誤っ て不正な値を指定す る のを防 ぐ ために、 オーナー ネーム を両方のバ ッ フ ァ ーに格納す る こ
と を要求 し ます。
+17000 のバ イ ア ス が指定 さ れない場合、 オーナー ネームは 8 バ イ ト (半角 8 文字) ま での範囲で指定可能
で、 末尾はバ イ ナ リ 0 にな っ てい る 必要があ り ます。 こ れは 「短い」 オーナー ネーム と 呼びます。 +17000 の
バ イ ア ス が指定 さ れた場合、 オーナー ネームは 24 バ イ ト (半角 24 文字) ま での範囲で指定可能で、 末尾は
バ イ ナ リ 0 にな っ てい る 必要があ り ます。 こ れは 「長い」 オーナー ネーム と 呼びます。 ど ち ら の場合 も 、 オー
ナー ネーム をすべて スペース (0x20) で構成す る こ と はで き ません。
4
デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに、 バ イ ナ リ 0 を含めたオーナー ネームの長 さ を指定 し ます。 オーナー
ネームが、 指定可能な最大長 (8 文字ま たは 24 文字) よ り も 短い場合、 その最大長に満たない部分には空白
が埋め込まれます。
105
Btrieve API オペ レーシ ョ ン
5
キー番号に、 フ ァ イ ルに対す る ア ク セ ス制限 と 暗号化の タ イ プ を指定する 整数を設定 し ます (表 26 を参照 し
て く だ さ い)。
詳細
一度オーナー ネーム を指定す る と 、 「Clear Owner (30) 」 オペレーシ ョ ン を発行す る ま でそのオーナー ネームは
有効です。 次の表に、 キー番号に指定で き る ア ク セ ス制限コ ー ド の一覧を示 し ます。
表 26 ア ク セスおよび暗号化の コ ー ド
コード
説明
0
すべてのア ク セ ス モー ド でオーナー ネームが必要にな り ます (デー タ は
暗号化 さ れません)。
1
読み取 り 専用ア ク セ ス はオーナ ネームがな く て も 許可 さ れます (デー タ
は暗号化 さ れません)。
2
すべてのア ク セ ス モー ド でオーナー ネームが必要にな り ます (デー タ が
暗号化 さ れます)。
3
読み取 り 専用ア ク セ ス はオーナー ネームがな く て も 許可 さ れます (デー
タ が暗号化 さ れます)。
結果
Set Owner オペレーシ ョ ンが正常に終了 し た場合、 それ以降のオペレーシ ョ ンでは正 し いオーナー ネームが指定
さ れない限 り 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で フ ァ イ ルへのア ク セ スやフ ァ イ ルの変更を行えな く な り
ます。 唯一の例外は、 オーナー ネームの指定な し で読み取 り 専用ア ク セ ス が許可 さ れてい る 場合です。 さ ら に、
Set Owner オペレーシ ョ ンが正常に終了す る と 、暗号化が指定 さ れてい る 場合には、 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス で フ ァ イ ル内のデー タ が暗号化 さ れます。
暗号化は直ちに行われ、 フ ァ イ ル全体が暗号化 さ れ る ま では ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス の制御下にあ
り ます。 フ ァ イ ル サ イ ズが大 き いほ ど、 暗号化処理にかか る 時間は長 く な り ます。 暗号化 さ れた フ ァ イ ルか ら の
デー タ の読み取 り は、 暗号化 さ れていない フ ァ イ ルか ら デー タ を読み取 る 場合 よ り も 遅 く な り ます。 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス はデ ィ ス ク か ら ページ を読み込む際にそのページ を解読 し 、デ ィ ス ク に書 き 込む際に
再度ページ を暗号化 し ます。 キ ャ ッ シ ュ が小 さ い場合、 あ る いは比較的大量の変更操作を行 う 場合には、 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は暗号化ルーチン を さ ら に頻繁に実行 し なければな り ません。
Set Owner オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
41
実行 し よ う と し た操作は ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では許可 さ れてい ません。
50
フ ァ イ ルのオーナーは既に設定 さ れてい ます。
51
オーナー ネームが不正です。
ポジ シ ョ ニ ング
Set Owner オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
106
Stat (15)
Stat (15)
Stat オペレーシ ョ ン (B_STAT) では、 フ ァ イ ルに定義 さ れてい る 特性を取得 し ます。 ま た、 フ ァ イ ル内の レ コ ー
ド 数、 フ ァ イ ルの各 イ ンデ ッ ク ス に格納 さ れてい る 重複のないキー値の数、 フ ァ イ ル内の未使用ページ数な ど、
フ ァ イ ルの内容についての情報 も 返 し ます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
○
○
○
○
○
○
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 15 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
フ ァ イ ルに定義 さ れてい る 統計情報を格納する のに十分なデー タ バ ッ フ ァ ーを確保 し ます。
4
デー タ バ ッ フ ァ ー長を指定 し ます。 フ ァ イ ルの統計情報を十分に格納で き る 長 さ が必要です (詳細について
は、 表 27 お よ び表 28 を参照 し て く だ さ い)。
5
少な く と も 255 バ イ ト のキー バ ッ フ ァ ーを指定 し ます。
6
次の よ う にキー番号を設定 し ます。
Š
フ ァ イ ルのバージ ョ ンお よ び未使用の重複ポ イ ン タ ーについての情報を除外す る 場合は、 0 を指定 し ま
す。 表 27 を参考に し て、 戻 り デー タ バ ッ フ ァ ーを解析 し ます。
Š
フ ァ イ ルのバージ ョ ンお よ び未使用の重複ポ イ ン タ ーについての情報を含め る 場合は、 -1 (0xFF) を指
定 し ます。 表 28 を参考に し て、 戻 り デー タ バ ッ フ ァ ーを解析 し ます。
詳細
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 フ ァ イ ルの作成以降に追加 さ れた キー も 含めて、 フ ァ イ ル内のすべ
て の キーについ て の情報が返 さ れ ま す。 こ の キー情報には、 適用可能な ACS 定義 も 含 ま れ ま す。 デー タ バ ッ
フ ァ ー領域を確保す る 際、 こ の よ う な追加情報について考慮す る 必要があ り ま す。 特に、 こ こ では、 Create (0)
オペレーシ ョ ンで使用 し た も の と 同 じ デー タ バ ッ フ ァ ーは使用 し ないで く だ さ い。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、フ ァ イ ルに最大 119 ま でのキー と 複数の ACS を定義で き る ため、可
能な最長デー タ バ ッ フ ァ ーは 33,455 バ イ ト にな り ます (つま り 、 16 + (119 * 16) + (119 * 265) です)。 し か し 、 こ
れほ ど大 き なデー タ バ ッ フ ァ ーが必要にな る こ と はおそ ら く あ り ません。 実際、 あ る 特定の情報 し か必要ない場
合は、 デー タ バ ッ フ ァ ーを小 さ く し た方が良い場合があ り ます。 た と えば、 デー タ バ ッ フ ァ ー長を 1,920 バ イ ト
(つま り 、 16 + (16 * 119)) に設定 し た と し ます。 実際、 こ の よ う な設定に し た場合、 キー情報はすべて返 さ れ ま
すが、 ACS は必ず し も すべては返 さ れ ません。 アプ リ ケーシ ョ ン で ACS についての情報が必要ない場合は、 こ
の方法を使 う こ と がで き ます。
107
Btrieve API オペ レーシ ョ ン
キー番号パ ラ メ ー タ ーに値 0 を指定 し た場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の表に示す よ う な
Stat 情報が返 さ れます。
表 27 フ ァ イルのバージ ョ ン情報を除外 し たデー タ バ ッ フ ァ ー
要素
説明
フ ァ イ ル仕様
レ コー ド 長
2
ページ サ イ ズ
2
イ ンデ ッ ク ス数
2
レ コー ド 数
4
フ ァ イル フ ラ グ
2
予約ワ ー ド
2
未使用ページ
2
キー ポジ シ ョ ン
2
キー長
2
キー フ ラ グ
2
重複のないキー値の数
4
拡張デー タ 型
1
ヌ ル値
1
予約済み
2
キー番号
1
ACS (オル タ ネー ト コ レーテ ィ ン グ
シーケ ン ス) 番号
1
キー仕様 (各セ グ メ ン ト について繰 り 返 さ れ る )
長さ
(バイト単位)
ACS 番号 0
ACS
265
...
...
...
ACS 番号 x
ACS
265
キー番号パ ラ メ ー タ ーに値 -1 を指定 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の表に示す よ う な
Stat 情報が返 さ れます。
表 28 フ ァ イルのバージ ョ ン情報を含むデー タ バ ッ フ ァ ー
108
要素
説明
長さ
(バイト単位)
フ ァ イ ル仕様
レ コー ド 長
2
ページ サ イ ズ
2
イ ンデ ッ ク ス数
1
フ ァ イ ルのバージ ョ ン番号
1
レ コー ド 数
4
Stat (15)
表 28 フ ァ イルのバージ ョ ン情報を含むデー タ バ ッ フ ァ ー
要素
説明
長さ
(バイト単位)
フ ァ イル フ ラ グ
2
未使用の重複ポ イ ン タ ー数
1
予約バ イ ト
1
未使用ページ
2
キー ポジ シ ョ ン
2
キー長
2
キー フ ラ グ
2
重複のないキー値の数
4
拡張デー タ 型
1
ヌ ル値
1
予約済み
2
キー番号
1
(キー仕様の最後の メ ンバー。 こ こ ま でが繰 り 返 さ れ
る 要素)
ACS (オル タ ネー ト コ レーテ ィ ン グ
シーケ ン ス) 番号
1
ACS 番号 0
ACS
265
...
...
...
ACS 番号 x
ACS
265
キー仕様(各キー セ グ メ ン ト について繰 り 返 さ れ る )
フ ァ イル仕様
戻 り デー タ バ ッ フ ァ ーのフ ァ イ ル仕様フ ィ ール ド は、 次の点を除いて、 「Create (14)」 で説明 し た も の と ま っ た
く 同 じ です。
„
フ ァ イ ル仕様領域
Š
デー タ バ ッ フ ァ ーに フ ァ イ ルのバージ ョ ン情報が含まれてい る 場合は、 イ ンデ ッ ク ス数が 1 バ イ ト 長に
な り 、 その後に 1 バ イ ト の フ ァ イ ルのバージ ョ ン情報が続 き ます。 フ ァ イ ルのバージ ョ ン番号の値を 10
進数に変換 し ないで く だ さ い。 0x70 と い う 値はその フ ァ イ ルが v7.0 フ ァ イ ルであ る こ と を示 し 、 0x60
と い う 値はその フ ァ イ ルが v6.x フ ァ イ ルであ る こ と を示 し ます (以下同様)。 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス ではフ ァ イ ルを作成する と き 、 フ ァ イ ルに定義 さ れてい る 属性に従っ てバージ ョ ン番号が
割 り 当て ら れます。
Š
レ コ ー ド 数は、 フ ァ イ ル内の レ コ ー ド の数を表す 4 バ イ ト 長の値です。
Š
フ ァ イ ル フ ラ グ ワ ー ド で、 ビ ッ ト 9 と 12 は次の よ う な意味を持ち ます。
ビ ッ ト 9 = 1 かつ
ビ ッ ト 12 = 0
フ ァ イ ルはシ ス テ ム デー タ を使っ て作成 さ れま し た。 ( こ れは、 必ず し も シ ス
テ ム定義の ロ グ キーが現在使用 さ れてい る こ と を意味 し ま せん。 削除 さ れた
可能性 も あ り ます。)
ビ ッ ト 9 = 1 かつ
ビ ッ ト 12 = 1
フ ァ イ ルはシ ス テ ム デー タ を使わずに作成 さ れま し た。
Stat オペレーシ ョ ンでは、 シ ス テ ム デー タ がデフ ォ ル ト で組み込まれたのか、 明示的に組み込まれたの
かは示 さ れません。
109
Btrieve API オペ レーシ ョ ン
Š
デー タ バ ッ フ ァ ーに フ ァ イ ルのバージ ョ ン情報が含まれてい る 場合、 1 バ イ ト の未使用重複ポ イ ン タ ー
の数が フ ァ イ ル フ ラ グ フ ィ ール ド に続 き 、フ ァ イ ル内に残っ てい る 未使用の重複ポ イ ン タ ーの数が示 さ
れます。
Š
予約領域が割 り 当て ら れますが、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ スは Stat オペレーシ ョ ン では こ の
領域を無視 し ます。
キー仕様
戻 り デー タ バ ッ フ ァ ーのキー仕様フ ィ ール ド は Table 10、 表 10 で説明 し た も の と 基本的には同 じ です。 ただ し 、
キー フ ラ グ フ ィ ール ド の後に 4 バ イ ト の重複のないキー値の数が続き 、指定 さ れた キーに対 し て一意で重複のな
い値を持つレ コ ー ド の数が示 さ れ る 点が異な り ます。
ACS
戻 り デー タ バ ッ フ ァ ーの ACS 定義は、 「Create (14)」 で説明 し た も の と ま っ た く 同 じ です。
結果
Stat オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ルお よ びキーの特
性がデー タ バ ッ フ ァ ーに返 さ れ、デー タ バ ッ フ ァ ーの長 さ がデー タ バ ッ フ ァ ー長に返 さ れます。対象 と な る フ ァ
イ ルが拡張フ ァ イ ルであ る 場合、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では先頭のエ ク ス テ ン シ ョ ン フ ァ イ ルの
フ ァ イ ル名がキー バ ッ フ ァ ーに返 さ れます。 先頭のエ ク ス テ ン シ ョ ン フ ァ イ ルの フ ァ イ ル名が 63 バ イ ト を超え
る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル名が切 り 詰め ら れます。 フ ァ イ ルが拡張フ ァ イ ルで
ない場合は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではキー バ ッ フ ァ ーの先頭バ イ ト が 0 に初期化 さ れます(Stat
Extended オペレーシ ョ ン を使 う と 、 拡張フ ァ イ ルに関す る 統計情報を取得で き ます)。
Stat オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー タ
ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Stat オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
110
Stat Extended (65)
Stat Extended (65)
Stat Extended オペ レ ーシ ョ ン (B_EXTENDED_STAT) にはい く つかのサブ フ ァ ン ク シ ョ ン が あ り ま す。 こ れ を
使っ て、 アプ リ ケーシ ョ ンは開いてい る フ ァ イ ルについての情報を収集す る こ と がで き ます。
表 29 Stat Extended (65) のサブ フ ァ ン ク シ ョ ン
サブファンクション ID
説明
1
エ ク ス テ ン シ ョ ン フ ァ イ ル名の一覧表示
2
フ ァ イ ルのシ ス テ ム デー タ 情報
3
重複に よ る 競合レ コ ー ド お よ びキーの識別
4
フ ァ イ ル情報
5
ゲー ト ウ ェ イ の識別
6
ロ ッ ク オーナーの識別
7
セキ ュ リ テ ィ 情報
8
ス テー タ ス コ ー ド 71 (参照整合性の定義に違反があ り ます) の発生原因 と な る 、 テーブル名ま た
はフ ァ イ ル名の一覧表示
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
○
○
○
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 65 を設定 し ます。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ーに拡張 Stat 構造体を格納 し ます。各サブ フ ァ ン ク シ ョ ンで必要な拡張 Stat 構造体の詳細に
ついては、 以降のセ ク シ ョ ン を参照 し て く だ さ い。
4
デー タ バ ッ フ ァ ー長を指定 し ます。
5
キー番号に 0 を設定 し ます。
サブ フ ァ ン ク シ ョ ン 1 : 拡張フ ァ イル情報
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、指定デー タ フ ァ イ ル と 関連
付け ら れたエ ク ス テ ン シ ョ ン フ ァ イ ルについての情報を返 し ます。 返 さ れ る 情報には、 存在す る エ ク ス テ ン シ ョ
ン フ ァ イ ルの数、 関数に よ っ て返 さ れた番号、 お よ び返 さ れた フ ァ イ ルの名前が含まれます。
111
Btrieve API オペ レーシ ョ ン
入力デー タ バ ッ フ ァ ー構造体
エ ク ス テ ン シ ョ ン フ ァ イ ルに関す る 情報を取得す る には、 デー タ バ ッ フ ァ ーに拡張フ ァ イ ル デ ィ ス ク リ プ タ ー
を次の と お り に作成す る 必要があ り ます。
表 30 拡張 フ ァ イル デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Stat Extended 呼び出 し の タ イ プ。 Extended Stat 呼び出 し を 示す 0x45、 0x78、
0x53、 0x74 の 4 バ イ ト を指定 し ます。 こ れ ら は ASCII の ExSt、 ま たは Intel 型、
LoHi お よ び リ ト ル エ ンデ ィ ア ン方式のハー ド ウ ェ アの値 0x74537845 に相当
し ます。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000001 を指定 し ます。
名前空間
4
フ ァ イ ルの命名規則。 0x00000000 を指定 し ます。
フ ァ イ ルの最大数
4
返 さ れ る フ ァ イ ル名の最大数。 こ の値には、 拡張フ ァ イ ルを構成す る エ ク ス テ
ン シ ョ ン フ ァ イ ルの数を超え る 値を設定で き ます (拡張フ ァ イ ルには最大 32
個のエ ク ス テ ン シ ョ ン フ ァ イ ルが含まれます)。
先頭フ ァ イ ルのシーケ ン ス
4
返 さ れ る 先頭の フ ァ イ ル名のシーケ ン ス 番号。 ベー ス フ ァ イ ルか ら 始め る に
は 0 を指定 し 、 先頭のエ ク ス テ ン シ ョ ン フ ァ イ ルか ら 始め る には 1 を指定 し
ます (以下同様) 。 エ ク ス テ ン シ ョ ン フ ァ イ ルの数を超え る 値を指定す る と 、
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 0 が返 さ れます
が、 フ ァ イ ル名は何 も 返 さ れません。
バ ッ フ ァ ー スペース
n
戻 り デー タ 用に余分な空 き 領域を確保す る こ と がで き ま す。 ス テー タ ス コ ー
ド 22 が返 さ れた場合は、も っ と 大 き なデー タ バ ッ フ ァ ー サ イ ズ を指定 し てオ
ペレーシ ョ ン を再試行 し て く だ さ い。
出力デー タ バ ッ フ ァ ー構造体
拡張フ ァ イ ル サブ フ ァ ン ク シ ョ ンの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではデー タ バ ッ フ ァ ー長パ ラ
メ ー タ ーの値が更新 さ れ、表 31 で説明 さ れてい る よ う な拡張フ ァ イ ル構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 31 拡張 フ ァ イルの戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
フ ァ イ ル数
4
拡張フ ァ イ ルを構成す る オペレーテ ィ ン グ シ ス テ ム フ ァ イ ルの数。
エ ク ス テ ン シ ョ ン フ ァ イ ル数
4
返 さ れたエ ク ス テ ン シ ョ ン フ ァ イ ルの数。
フ ァ イル名部分 (返 さ れた各フ ァ イル名について繰 り 返 さ れる)
フ ァ イ ル名の長 さ
4
エ ク ス テ ン シ ョ ン フ ァ イ ル名の長 さ 。
フ ァ イ ル名
n
エ ク ス テ ン シ ョ ン フ ァ イ ル名。
サブ フ ァ ン ク シ ョ ン 2 : シス テム デー タ 情報
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、 フ ァ イ ルに定義 さ れたシ ス
テ ム キーがあ る か ど う か、 ま た、 その フ ァ イ ルは ロ グ可能 ( ト ラ ンザ ク シ ョ ン一貫性保守が可能) であ る か ど う
かに関す る 情報を返 し ます。
112
Stat Extended (65)
入力デー タ バ ッ フ ァ ー構造体
フ ァ イ ルでのシ ス テ ム デー タ の使用に関す る 情報を取得す る には、 デー タ バ ッ フ ァ ーにシ ス テ ム デー タ デ ィ ス
ク リ プ タ ーを次の と お り に作成する 必要があ り ます。
表 32 シ ス テム デー タ デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Extended Stat 呼び出 し のための一意な識別子。 ExSt を指定 し ます。 表 30 を参
照 し て く だ さ い。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000002 を指定 し ます。
出力デー タ バ ッ フ ァ ー構造体
シ ス テ ム デー タ サブ フ ァ ン ク シ ョ ン の場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の よ う な シ ス テ ム
デー タ 構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 33 シ ス テム デー タ の戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
シ ス テ ム デー タ を持つ
1
フ ァ イ ルの レ コ ー ド にシ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ と も 言い ま
す) が含ま れてい る か ど う かを示 し ます。 1 = Yes、 0 = No。
ロ グ キーを持つ
1
シ ス テ ム定義の ロ グ キーが現在使用 さ れてい る か、 それ と も 削除 さ れてい る
か ど う かを示 し ます。 1 = Yes、 0 = No (削除 さ れた)。
ロ グ可能
1
ト ラ ン ザ ク シ ョ ン一貫性保守を実現す る ために使用で き る 重複のないキーが
フ ァ イ ルにあ る か ど う かを示 し ます。 こ のキーは、 ユーザー定義の重複のない
キーか、 シ ス テ ム定義の ロ グ キーのいずれかにな り ます。 1 = Yes、 0 = No。
ロ グ キー番号
1
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で ト ラ ンザ ク シ ョ ン ロ グ キー と し て現
在使用 さ れてい る キー番号。 シ ス テ ム定義の ロ グ キーが ト ラ ンザ ク シ ョ ン ロ
グ キー と し て使用 さ れてい る 場合、 こ の値は 125 にな り ます。
シ ス テ ム デー タ のサ イ ズ
2
シ ス テ ム定義の ロ グ キーのサ イ ズで、 8 にな り ます。
シ ス テ ム デー タ のバージ ョ ン
2
デー タ ベース エン ジ ンの メ ジ ャ ー バージ ョ ン を含んでい る 2 バ イ ト フ ィ ール
ド 。 た と えば、 バージ ョ ン 9.x な ら ば 0x0009、 バージ ョ ン 10.x な ら ば 0x000a
と な り ます。
サブ フ ァ ン ク シ ョ ン 3 : 重複レ コ ー ド によ る競合情報
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、指定デー タ フ ァ イ ル と 関連
付け ら れたエ ク ス テ ン シ ョ ン フ ァ イ ルについての情報を返 し ます。 返 さ れ る 情報には、 直前の失敗 し た挿入ま た
は更新操作で ス テー タ ス コ ー ド 5 (重複キー) の発生原因 と な っ た、 レ コ ー ド ア ド レ スお よ びキー番号が含まれ
ます。
113
Btrieve API オペ レーシ ョ ン
入力デー タ バ ッ フ ァ ー構造体
一番最近ス テー タ ス コ ー ド 5 (重複キー) を発生 さ せた レ コ ー ド ア ド レ スお よ びキー番号に関す る 情報を取得す
る には、 デー タ バ ッ フ ァ ーに重複レ コ ー ド 情報デ ィ ス ク リ プ タ ーを次の と お り に作成す る 必要があ り ます。
表 34 重複レ コ ー ド によ る競合デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Extended Stat 呼び出 し のための一意な識別子。 ExSt を指定 し ます。 表 30 を参
照 し て く だ さ い。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000003 を指定 し ます。
出力デー タ バ ッ フ ァ ー構造体
シ ス テ ム デー タ サブ フ ァ ン ク シ ョ ン の場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の よ う な シ ス テ ム
デー タ 構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 35 重複レ コ ー ド によ る競合の戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
重複レ コ ー ド ア ド レ ス
4
重複す る キー値を含んでい る レ コ ー ド の物理ア ド レ ス。
キー番号
4
重複す る 値を含んでい る キーのキー番号。
サブ フ ァ ン ク シ ョ ン 4 : フ ァ イル情報
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、指定デー タ フ ァ イ ル と 関連
付け ら れたエ ク ス テ ン シ ョ ン フ ァ イ ルについての情報を返 し ます。 返 さ れ る 情報には次の も のが含まれます。 ト
ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が フ ァ イ ルの識別に使用する 内部フ ァ イ ル ID、 現在開いてい る フ ァ イ ル ハ
ン ド ル数、 フ ァ イ ルが前回開かれた と き の タ イ ム ス タ ンプ、 お よ びフ ァ イ ル プ ロ パテ ィ を示す さ ま ざ ま な フ ラ グ
があ り ます。
入力デー タ バ ッ フ ァ ー構造体
開いてい る フ ァ イ ルに関す る 情報を取得す る には、デー タ バ ッ フ ァ ーに フ ァ イ ル情報デ ィ ス ク リ プ タ ーを次の と
お り に作成す る 必要があ り ます。
表 36 フ ァ イル情報デ ィ ス ク リ プ タ ー - 開いている フ ァ イル
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Extended Stat 呼び出 し のための一意な識別子。 ExSt を指定 し ます。 表 30 を参
照 し て く だ さ い。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000004 を指定 し ます。
バ ッ フ ァ ー スペース
12
戻 り 情報に必要な追加バ イ ト 。 「出力デー タ バ ッ フ ァ ー構造体」 を参照 し て く
だ さ い。 フ ァ イ ル情報サブ フ ァ ン ク シ ョ ン の場合、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス ではデー タ バ ッ フ ァ ーに フ ァ イ ル情報構造体が返 さ れます。
114
Stat Extended (65)
出力デー タ バ ッ フ ァ ー構造体
フ ァ イ ル情報サブ フ ァ ン ク シ ョ ンの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の よ う な フ ァ イ ル情報構
造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 37 フ ァ イル情報構造体 - 開いている フ ァ イル
要素
長さ (バ
イト単位)
説明
フ ァ イ ル ID
4
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が フ ァ イ ルを識別す る ために使用す る
重複のない番号。
ハン ド ル数
4
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が こ の フ ァ イ ルで開いてい る 現在のハ
ン ド ル数。
開かれた と き の タ イ ム ス タ ン
プ
4
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が物理フ ァ イ ルを前回開いた と き のシ
ス テ ム時間。 シ ス テ ム時間は、 世界協定時刻 (UTC) を基に 1970 年 1 月 1 日
の午前零時か ら の秒数で表 さ れます。
フ ァ イ ルの使用回数
4
各チ ェ ッ ク ポ イ ン ト ま たはシ ス テ ム ト ラ ンザ ク シ ョ ン ご と に こ の数が増加 し
ます。 ま た使用回数は FCR に も 置かれ ます。 こ こ で返 さ れ る 数は、 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス のキ ャ ッ シ ュ 内で表 さ れ る フ ァ イ ルの使用回数
です。 チ ェ ッ ク ポ イ ン ト を開始す る と 、 こ の数が増加 し ます。
フラグ
4
さ ま ざ ま な値を設定で き る 4 バ イ ト の ビ ッ ト マ ッ プ。設定可能な値の説明につ
いては、 次の表を参照 し て く だ さ い。 将来的には さ ら に多 く の フ ラ グが追加 さ
れます。
フ ラ グ フ ィ ール ド に使用で き る 値については、 次の表で説明 し ます。
表 38 フ ァ イル情報 フ ラ グ
値
名前
説明
0x00000001
明示的 ロ ッ ク
現在フ ァ イ ル上で明示的 ロ ッ ク があ り ます。
0x00000002
ク ラ イ アン ト ト ラ ン
ザクシ ョ ン
現在フ ァ イ ル上で、 ク ラ イ ア ン ト ト ラ ンザ ク シ ョ ンが少な く と も 1 つ開いて
い ます。
0x00000004
読み取 り 専用
フ ァ イ ルは ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て読み取 り 専用で開
かれてい ます。 こ れは CD-ROM ド ラ イ ブ ま たは読み取 り 専用デ ィ レ ク ト リ で
す。
0x00000008
Continuous オ ペ レ ー
ション
フ ァ イ ルは現在 Continuous オペレーシ ョ ン モー ド です。
0x00000010
参照整合性
フ ァ イ ルには参照整合性制約が設定 さ れてい ます。
0x00000020
オーナー読み取 り /書
き 込み
フ ァ イ ルには読み取 り / 書 き 込みのオーナー ネームが割 り 当て ら れてい ます。
フ ァ イ ルの読み取 り / 書 き 込みにはオーナー ネームが要求 さ れます。
0x00000040
オーナー読み取 り
OK
書 き 込みを行 う 場合にのみ要求 さ れ る オーナー ネーム を持ち ます。 読み取 り
は、 オーナー ネーム な し で行 う こ と がで き ます。
0x00000080
不正な オーナーでの
オープン
こ の フ ァ イ ルには読み取 り OK のオーナー ネームが割 り 当て ら れてい ます。ハ
ン ド ルが不正なオーナー ネームで開かれま し た。
0x00000100
オーナー暗号化
フ ァ イ ルにはオーナー ネームの暗号化フ ラ グが設定 さ れてい ます。 こ の フ ラ
グは、フ ァ イ ル内のすべてのページは暗号化 さ れてお り 、テ キ ス ト エデ ィ タ ー
では読み取れない こ と を意味 し ます。
115
Btrieve API オペ レーシ ョ ン
サブ フ ァ ン ク シ ョ ン 5 : ゲー ト ウ ェ イ情報
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、 フ ァ イ ルの制御を行 う ゲー
ト ウ ェ イ エン ジ ンについての情報を返 し ます。
入力デー タ バ ッ フ ァ ー構造体
指定 さ れた フ ァ イ ルの処理を行 う ゲー ト ウ ェ イ エン ジ ンに関す る 情報を取得す る には、デー タ バ ッ フ ァ ーにゲー
ト ウ ェ イ 情報デ ィ ス ク リ プ タ ーを次の と お り に作成する 必要があ り ます。
表 39 ゲー ト ウ ェ イ情報デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Extended Stat 呼び出 し のための一意な識別子。 ExSt を指定 し ます。 表 30 を参
照 し て く だ さ い。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000005 を指定 し ます。
バ ッ フ ァ ー スペース
最 低 で
も 80
戻 り 情報に必要な追加バ イ ト 。 詳細については、 「出力デー タ バ ッ フ ァ ー構造
体」 を参照 し て く だ さ い。
出力デー タ バ ッ フ ァ ー構造体
ゲー ト ウ ェ イ 情報サブ フ ァ ン ク シ ョ ンの場合、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではデー タ バ ッ フ ァ ー長パ
ラ メ ー タ ーが更新 さ れ、 次の よ う なゲー ト ウ ェ イ 情報構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 40 フ ァ イル情報構造体 - ゲー ト ウ ェ イ情報
要素
長さ (バ
イト単位)
説明
メ ジ ャ ー バージ ョ ン
4
エ ン ジ ンの メ ジ ャ ー バージ ョ ン。 た と えば、 バージ ョ ン 7 ま たは 8 な ど です。
マ イ ナー バージ ョ ン
4
エ ン ジ ンのマ イ ナー バージ ョ ン。 た と えば、 05 ま たは 82 な ど です。
パ ッ チ レベル
4
エ ン ジ ンのパ ッ チ レベル。 た と えば、 1、 2、 ま たは 3 にな り ます。
プ ラ ッ ト フ ォ ーム
4
エ ン ジ ンが動作 し てい る オペレーテ ィ ン グ シ ス テ ム プ ラ ッ ト フ ォ ーム。
サーバー名
64
デー タ ベー ス エ ン ジ ン が動作 し て い る マ シ ン の名前を示す ヌ ル終端文字列。
Btrieve API 呼び出 し に よ っ て返 さ れ る デー タ バ ッ フ ァ ー長には、 サーバー名
と ヌ ル終端文字を含めた戻 り デー タ の実際の長 さ が格納 さ れます。
サブ フ ァ ン ク シ ョ ン 6 : ロ ッ ク オーナーの識別
入力ポジシ ョ ン ブ ロ ッ ク で指定 さ れた フ ァ イ ルの場合、 こ のサブ フ ァ ン ク シ ョ ンは、 一番最近フ ァ イ ルのア ク セ
ス時に ス テー タ ス コ ー ド 84 ま たは 85 を発生 さ せた原因に関する 情報を返 し ます。
116
Stat Extended (65)
入力デー タ バ ッ フ ァ ー構造体
ス テー タ ス 84 ま たは 85 の原因に関す る 情報を取得す る には、デー タ バ ッ フ ァ ーに ロ ッ ク オーナー情報デ ィ ス ク
リ プ タ ーを次の と お り に作成す る 必要があ り ます。
表 41 ロ ッ ク オーナー情報デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Extended Stat 呼び出 し のための一意な識別子。 ExSt を指定 し ます。 表 30 を参
照 し て く だ さ い。
サブ フ ァ ン ク シ ョ ン
4
Stat Extended 呼び出 し の タ イ プ。 0x00000006 を指定 し ます。
バ ッ フ ァ ー スペース
最 低 で
も 96
戻 り 情報に必要な追加バ イ ト 。 詳細については、 「サブ フ ァ ン ク シ ョ ン 7 : セ
キ ュ リ テ ィ 情報」 を参照 し て く だ さ い。
出力デー タ バ ッ フ ァ ー構造体
ロ ッ ク オーナー情報サブ フ ァ ン ク シ ョ ンの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではデー タ バ ッ フ ァ ー
長パ ラ メ ー タ ーが更新 さ れ、 次の よ う な ロ ッ ク オーナー情報構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 42 ロ ッ ク オーナー情報の戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
ク ラ イ ア ン ト ID
16
ブ ロ ッ ク し てい る ク ラ イ ア ン ト の 16 バ イ ト の ク ラ イ ア ン ト ID。
フラグ
4
発生 し た競合の タ イ プを示すフ ラ グ を含む 4 バ イ ト の ビ ッ ト マ ッ プ。各フ ラ グ
の値の説明については、 次の表を参照 し て く だ さ い。
ト ラ ンザ ク シ ョ ン内での時間
4
ブ ロ ッ ク し た ク ラ イ ア ン ト が ト ラ ンザ ク シ ョ ン中に ロ ッ ク す る ミ リ 秒数。こ れ
は、 オペレーシ ョ ン を再試行す る か ど う かを決定す る のに役立ち ます。
キー番号
4
競合が キー ページ上で発生 し た場合、 こ の要素は そ の競合に関与 し て い る
キーを示 し ます。 こ の情報を確認すれば、 デー タ ベース の設計で予測 さ れ る 競
合を減 ら すのに役立ち ます。
ト ラ ンザ ク シ ョ ン レベル
4
こ の数がゼ ロ 以外の場合、 ブ ロ ッ ク し てい る ク ラ イ ア ン ト は現在 ト ラ ン ザ ク
シ ョ ン中です。い く つかのページやレ コ ー ド は ト ラ ンザ ク シ ョ ンが完了す る ま
で ロ ッ ク さ れ る ので、こ の情報はオペレーシ ョ ン を再試行す る か ど う かを決定
す る のに役立ち ます。
予約済み
8
今後の使用に備え て予約 さ れてい ます。ブ ロ ッ ク し てい る ク ラ イ ア ン ト に関 し
て有用だ と 思われ る 情報が あ る 場合は、 Pervasive Software ま で ご連絡 く だ さ
い。
表示名
64
こ れは ヌ ルで終了す る 文字列です。 こ れは Monitor 内で各 ク ラ イ ア ン ト ご と に
表示 さ れ る 識別名 と 同 じ です。 最低で も 現在の表示名の長 さ の最大値で あ る
64 バ イ ト を使用 し て く だ さ い。 Btrieve API 呼び出 し に よ っ て返 さ れ る デー タ
バ ッ フ ァ ー長には、表示名 と ヌ ル終端文字を含めた戻 り デー タ の実際の長 さ が
格納 さ れます。
以前にブ ロ ッ ク し ていた ク ラ イ ア ン ト の記録が ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス にない場合、 出力デー タ
バ ッ フ ァ ー長はゼ ロ に設定 さ れます。
117
Btrieve API オペ レーシ ョ ン
フ ラ グ フ ィ ール ド に使用で き る 値については、 次の表で説明 し ます。
表 43 ロ ッ ク オーナーの フ ラ グ
値
名前
説明
0x00000001
暗黙 ロ ッ ク
ブ ロ ッ ク し た ク ラ イ ア ン ト は暗黙 ロ ッ ク を使用 し てい ます。
0x00000002
明示的 ロ ッ ク
ブ ロ ッ ク し た ク ラ イ ア ン ト は明示的 ロ ッ ク を使用 し てい ます。
0x00000010
フ ァ イル ロ ッ ク
ブ ロ ッ ク し た ク ラ イ ア ン ト はフ ァ イ ル ロ ッ ク を使用 し てい ます。
0x00000020
ページ ロ ッ ク
ブ ロ ッ ク し た ク ラ イ ア ン ト はページ ロ ッ ク を使用 し てい ます。
0x00000040
レ コー ド ロ ッ ク
ブ ロ ッ ク し た ク ラ イ ア ン ト は レ コ ー ド ロ ッ ク を使用 し てい ます。
0x00000100
デー タ ページ
競合がページ ロ ッ ク の場合、 こ の フ ラ グは競合がデー タ ページで発生 し た こ と を示
し ます。
0x00000200
キー ページ
競合がページ ロ ッ ク の場合、 こ の フ ラ グは競合がキー ページで発生 し た こ と を示 し
ます。
0x00000400
可変ページ
競合がページ ロ ッ ク の場合、こ の フ ラ グは競合が可変ページで発生 し た こ と を示 し ま
す。
0x00000800
同じプロ セス
こ の フ ラ グが設定 さ れた場合、ブ ロ ッ ク し てい る ク ラ イ ア ン ト ID の最初の 12 バ イ ト
と 、 ブ ロ ッ ク さ れた ク ラ イ ア ン ト (Stat Extended 呼び出 し を発行 し た ク ラ イ ア ン ト )
の最初の 12 バ イ ト が同 じ です。 こ の場合、 同 じ コ ン ピ ュ ー タ ー上の同 じ プ ロ セ ス か
ら ブ ロ ッ ク し た 2 つの ク ラ イ ア ン ト があ る こ と を意味 し ます。Btrieve API 呼び出 し を
行 う シ ン グル ス レ ッ ド のアプ リ ケーシ ョ ンの場合は、こ のオペレーシ ョ ン を再試行 し
て も 役立ち ません。 ブ ロ ッ ク し てい る 動作を終了ま たは中止す る 必要があ り ます。
0x00001000
書 き 込み ノ ー
ウェイ ト
ブ ロ ッ ク し た ク ラ イ ア ン ト がバ イ ア ス 500 を使用 し てい る こ と を示 し ます。
0x00002000
書 き 込み保持
ブ ロ ッ ク し た ク ラ イ ア ン ト が、 ページへの変更を行っ て、 その ト ラ ンザ ク シ ョ ンが終
了す る ま でページ全体を ロ ッ ク し た こ と を示 し ます。 こ の状況は、 変更に よ っ て キー
エ ン ト リ が別のページへ移動 し た場合に、 キー ページの暗黙 ロ ッ ク で発生 し ます。
0x00004000
読み取 り ノ ー
ウェイ ト
明示的レ コ ー ド ロ ッ ク の場合、 こ の フ ラ グは、 ブ ロ ッ ク し た ク ラ イ ア ン ト が ロ ッ ク
バ イ ア ス 200 ま たは 400 のいずれかを使用 し てい る こ と を示 し ます。
0x00008000
複数読み取 り
明示的レ コ ー ド ロ ッ ク の場合、 こ の フ ラ グは、 ブ ロ ッ ク し た ク ラ イ ア ン ト が ロ ッ ク
バ イ ア ス 300 ま たは 400 のいずれかを使用 し てい る こ と を示 し ます。
サブ フ ァ ン ク シ ョ ン 7 : セキ ュ リ テ ィ 情報
こ のサブ フ ァ ン ク シ ョ ンは、 ク ラ イ ア ン ト が現在の フ ァ イ ルにア ク セ スす る ために、 ど の よ う に認証お よ び許可
さ れたかについての情報を返 し ます。 セキ ュ リ テ ィ に使用 さ れてい る 現在のデー タ ベース に関す る 情報 も 示 し ま
す。
118
Stat Extended (65)
入力デー タ バ ッ フ ァ ー構造体
こ のハン ド ルが持っ てい る ど の ア ク セ ス 権が ど の よ う に認証 さ れたかについて セ キ ュ リ テ ィ 情報を取得す る に
は、 デー タ バ ッ フ ァ ーにセキ ュ リ テ ィ 情報デ ィ ス ク リ プ タ ーを次の と お り に作成す る 必要があ り ます。
表 44 セキ ュ リ テ ィ 情報デ ィ ス ク リ プ タ ー
要素
長さ (バ
イト単位)
説明
識別バ イ ト
4
Stat Extended 呼び出 し の タ イ プ。 0x45785374 を指定 し ま す。 ( こ れは、 ASCII
の ExSt に相当 し ます。)
識別バ イ ト
4
Stat Extended 呼び出 し の タ イ プ。 0x00000007 を指定 し ます。
バ ッ フ ァ ー スペース
最 低 で
も 142
戻 り 情報に必要な追加バ イ ト 。 詳細については 「結果」 を参照 し て く だ さ い。
出力デー タ バ ッ フ ァ ー構造体
セキ ュ リ テ ィ 情報サブ フ ァ ン ク シ ョ ンの場合、MicroKernel ではデー タ バ ッ フ ァ ー長パ ラ メ ー タ ーが更新 さ れ、次
の よ う なセキ ュ リ テ ィ 情報構造体がデー タ バ ッ フ ァ ーに返 さ れます。
表 45 セキ ュ リ テ ィ 情報の戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
ハン ド ルの フ ラ グ
4
こ のハ ン ド ルのセ キ ュ リ テ ィ に使用 さ れてい る メ ソ ッ ド を示すフ ラ グ を含む
4 バ イ ト の ビ ッ ト マ ッ プ。 各フ ラ グの値の説明については、 次の表を参照 し て
く だ さ い。
ハン ド ルの フ ラ グ
4
こ の ク ラ イ ア ン ト の、 現在のデフ ォ ル ト デー タ ベース のセ キ ュ リ テ ィ に使用
さ れてい る メ ソ ッ ド を示すフ ラ グ を含む 4 バ イ ト の ビ ッ ト マ ッ プ。各フ ラ グの
値の説明については、 次の表を参照 し て く だ さ い。
ア ク セ ス権
4
こ れ ら は、こ のハン ド ルを使用す る ク ラ イ ア ン ト に与え ら れてい る ア ク セ ス権
です。 各フ ラ グの値の説明については、 ア ク セ ス権の表を参照 し て く だ さ い。
ハ ン ド ル デー タ ベー ス 名 の
バッ フ ァー サイズ
2
ヌ ルで終わ る ハン ド ル デー タ ベー ス名文字列の格納に使用 さ れ る バ ッ フ ァ ー
の長 さ 。
ハ ン ド ル テ ーブル名のバ ッ
フ ァー サイ ズ
2
ヌ ルで終わ る ハン ド ル テーブル名文字列の格納に使用 さ れ る バ ッ フ ァ ーの長
さ 。 メ モ : テーブル名は、 フ ァ イ ルがデー タ ベース にバ イ ン ド さ れない限 り わ
か り ません (た と えば参照制約) 。 つま り 、 フ ァ イ ルは、 フ ァ イ ルのテーブル
名で参照 さ れ る URI 接続文字列を使用 し て開かれてい ま す。 URI 接続文字列
の 詳細につい て は、 『Pervasive PSQL Programmer's Guide』 の 「デー タ ベー ス
URI」 を参照 し て く だ さ い。
ハ ン ド ル ユ ー ザ ー名 の バ ッ
フ ァー サイ ズ
2
ヌ ルで終わ る ハン ド ル ユーザー名文字列の格納に使用 さ れ る バ ッ フ ァ ーの長
さ。
現在のデー タ ベー ス 名のバ ッ
フ ァー サイ ズ
2
ヌ ルで終わ る 現在のデー タ ベー ス 名文字列の格納に使用 さ れ る バ ッ フ ァ ーの
長さ。
現在のユーザー名のバ ッ
フ ァー サイ ズ
2
ヌ ルで終わ る 現在のユーザー名文字列の格納に使用 さ れ る バ ッ フ ァ ーの長 さ 。
ハン ド ル デー タ ベース名
可変
こ のハン ド ルのセキ ュ リ テ ィ を確立す る ために使用 さ れ る デー タ ベース名。
ハン ド ル テーブル名
可変
こ のハン ド ル と 関連付け ら れてい る テーブル名。
119
Btrieve API オペ レーシ ョ ン
表 45 セキ ュ リ テ ィ 情報の戻 り バ ッ フ ァ ー
要素
長さ (バ
イト単位)
説明
ハン ド ル ユーザー名
可変
こ のハン ド ルのセキ ュ リ テ ィ を確立す る ために使用 さ れ る ユーザー名。
現在のデー タ ベース名
可変
こ の ク ラ イ ア ン ト の、 現在のデフ ォ ル ト のデー タ ベース名。
現在のユーザー名
可変
こ の ク ラ イ ア ン ト の、 現在のデフ ォ ル ト デー タ ベース に関連付け ら れてい る
ユーザー名。
2 つの Flags フ ィ ール ド で使用で き る 値については、 以下の表で説明 し ます。
表 46 セキ ュ リ テ ィ フ ラ グ
値
名前
説明
0x00000001
信頼 さ れ る
こ のハン ド ルは信頼 さ れてい ます。 割 り 当て ら れたデー タ ベース はあ り ません。
0x00000002
暗黙
デー タ ベース ロ グ イ ンは暗黙です - 開いてい る 間。
0x00000004
明示的
デー タ ベース ロ グ イ ンは明示的です - Btrieve Login が実行 さ れま し た。
0x00000008
デー タ ベース に よ る 認証
認証はデー タ ベース セキ ュ リ テ ィ に よ っ て行われま し た。 こ の フ ラ グが設定 さ
れていなければ、 認証はオペレーテ ィ ン グ シ ス テ ムのセ キ ュ リ テ ィ に よ っ て行
われま し た。
0x00000010
デー タ ベース に よ る 許可
許可はデー タ ベース セキ ュ リ テ ィ に よ っ て行われま し た。 こ の フ ラ グが設定 さ
れていなければ、 許可はオペレーテ ィ ン グ シ ス テ ムのセ キ ュ リ テ ィ に よ っ て行
われま し た。
0x00000020
Windows 名前付 き パ イ プ
認証がオペレーテ ィ ン グ シ ス テ ムに よ る も のであ る 場合、 こ れはセキ ュ リ テ ィ
に NT 名前付 き パ イ プが使用 さ れた こ と を示 し ます。
0x00000040
ワー ク グループ
認証がオペレーテ ィ ン グ シ ス テ ムに よ る も のであ る 場合、 こ れは ワ ー ク グルー
プ エ ン ジ ン式のセ キ ュ リ テ ィ が行われた こ と を示 し ます。 つま り 、 認証 も 許可
も 行われていない と い う こ と です。
0x00000080
Btpasswd
認証が Linux オペ レ ーテ ィ ン グ シ ス テ ム に よ る も の で あ る 場合、 こ れは etc/
btpasswd フ ァ イ ルが使用 さ れた こ と を示 し ます。
0x00000100
PAM
認証が Linux オペレーテ ィ ン グ シ ス テ ムに よ る も のであ る 場合、 こ れは PAM 認
証が使用 さ れた こ と を示 し ます。
0x00000200
RTSS Complete
認証がオペレ ーテ ィ ン グ シ ス テ ム に よ る も ので あ る 場合、 こ れは、 "Complete"
に設定 さ れた RTSS を使用 し て認証が行われた こ と を示 し ます。
0x00000400
RTSS Preauthorized
認証が オペ レ ー テ ィ ン グ
シ ス テ ム に よ る も の で あ る 場 合、 こ れ は、
"Preauthorized" に設定 さ れた RTSS を使用 し て認証が行われた こ と を示 し ます。
0x00000800
RTSS Disabled
認証がオペレーテ ィ ン グ シ ス テ ムに よ る も のであ る 場合、 こ れは、 "Disabled" に
設定 さ れた RTSS を使用 し て認証が行われた こ と を示 し ます。
120
Stat Extended (65)
表 47 ア ク セス権 フ ラ グ
値
名前
説明
0x00000000
No Rights
デー タ ベース オブジ ェ ク ト に対す る 権限があ り ません。 ア ク セ ス権は与え ら れ
てい ません。
0x00000001
Open
フ ァ イ ル を開 く ために与え ら れ る ア ク セ ス 権。 こ れは、 レ コ ー ド の読み取 り が
可能であ る こ と も 意味 し ます。
0x00000002
Insert
レ コ ー ド を挿入す る ために与え ら れ る ア ク セ ス権。
0x00000004
Update
レ コ ー ド を更新す る ために与え ら れ る ア ク セ ス権。
0x00000008
Create
こ の フ ァ イ ルを作成す る ために与え ら れ る ア ク セ ス権。
0x00000010
Delete
レ コ ー ド を削除す る ために与え ら れ る ア ク セ ス権。
0x00000020
Execute
SQL で ス ト ア ド プ ロ シージ ャ を実行す る ために与え ら れ る ア ク セ ス権。
0x00000040
Alter
SQL で こ の フ ァ イ ルを変更す る ために与え ら れ る ア ク セ ス権。
0x00000080
Refer
SQL で こ の フ ァ イ ルを参照す る ために与え ら れ る ア ク セ ス権。
0x00000100
Create View
SQL で こ の フ ァ イ ルのビ ュ ーを作成す る ために与え ら れ る ア ク セ ス権。
0x00000200
Create Stored Procedure
SQL で こ の フ ァ イ ルの ス ト ア ド プ ロ シージ ャ を作成す る ために与え ら れ る ア ク
セ ス権。
結果
Stat Extended オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の
ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
06
キー番号パ ラ メ ー タ ーが不正です。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
62
デ ィ ス ク リ プ タ ーが不正です。
121
Btrieve API オペ レーシ ョ ン
Step First (33)
Step First オペレーシ ョ ン (B_STEP_FIRST) では、 フ ァ イ ル内の先頭の物理レ コ ー ド を取得 し ます。 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では こ の レ コ ー ド を取得す る ためにキー パス は使用 さ れません。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ
バッファー
○
データ バッ
ファー長
キー バッ
ファー
キー番号
○
○
○
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 33 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
結果
Step First オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル内の先頭の
物理レ コ ー ド がデー タ バ ッ フ ァ ーに返 さ れ、 返 さ れたバ イ ト 数がデー タ バ ッ フ ァ ー長に設定 さ れます。
Step First オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Step First オペレーシ ョ ン を実行す る と 、 論理カ レ ン シーが消去 さ れます。 取得 し た レ コ ー ド を現在の物理レ コ ー
ド と し て使用 し 、 物理カ レ ン シーが設定 さ れます。 物理位置の直前は、 フ ァ イ ルの先頭 よ り も 前を指す こ と にな
り ます。
122
Step Last (34)
Step Last (34)
Step Last オペ レーシ ョ ン (B_STEP_LAST) では、 フ ァ イ ル内の末尾の物理 レ コ ー ド を取得 し ま す。 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では こ の レ コ ー ド を取得す る ためにキー パス は使用 さ れません。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 34 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
結果
Step Last オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル内の末尾の
物理レ コ ー ド がデー タ バ ッ フ ァ ーに返 さ れ、 返 さ れたバ イ ト 数がデー タ バ ッ フ ァ ー長に設定 さ れます。
Step Last オペレ ーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。 (フ ァ イ ルが空の場合)
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Step Last オペレーシ ョ ン を実行す る と 、 論理カ レ ン シーが消去 さ れます。 取得 し た レ コ ー ド を現在の物理レ コ ー
ド と し て使用 し 、 物理カ レ ン シーが設定 さ れます。 物理位置の直後は、 フ ァ イ ルの末尾 よ り も 後を指す こ と にな
り ます。
123
Btrieve API オペ レーシ ョ ン
Step Next (24)
Step Next オペレーシ ョ ン (B_STEP_NEXT) では、 次の物理位置 と し て示 さ れ る レ コ ー ド を取得 し ます。 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の レ コ ー ド を取得す る ためにキー パス は使用 さ れません。
Step Next オペレーシ ョ ン を任意の Get ま たは Step オペレーシ ョ ンの直後に実行する と 、前のオペレーシ ョ ン で取
得 さ れた レ コ ー ド の物理的に次にあ る レ コ ー ド が返 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
前提条件
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 24 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
結果
Step Next オペレーシ ョ ンが正常に終了 し た場合、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル内の次の物
理レ コ ー ド がデー タ バ ッ フ ァ ーに返 さ れ、 返 さ れたバ イ ト 数がデー タ バ ッ フ ァ ー長に設定 さ れます。
Step Next オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス
テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Step Next オペレーシ ョ ン を実行 し て も 、 論理カ レ ン シーは確立 し ません。 取得 し た レ コ ー ド を現在の物理レ コ ー
ド と し て使用 し 、 物理カ レ ン シーが設定 さ れます。
Delete オペレーシ ョ ン (4) の直後に Step Next オペレーシ ョ ン を発行す る と 、 Delete の前のオペレーシ ョ ンで次
の物理レ コ ー ド と し て確立 さ れた レ コ ー ド が返 さ れます。
Open オペレーシ ョ ン (0) の直後に Step Next オペレーシ ョ ン を発行する と 、 フ ァ イ ル内の先頭レ コ ー ド が返 さ れ
ます。
124
Step Next Extended (38)
Step Next Extended (38)
Step Next Extended オペレーシ ョ ン (B_STEP_NEXT_EXT) では、 物理位置の直後か ら フ ァ イ ルの末尾へ向か っ て
1 つま たは複数の レ コ ー ド を検索 し ます。 検索 し た レ コ ー ド が フ ィ ル タ ー条件を満た し てい る か ど う か をチ ェ ッ
ク し た上で、 条件を満たすレ コ ー ド だけ を取得 し ます。 フ ィ ル タ ー条件は論理式の形を取 り 、 キー フ ィ ール ド の
みに制限 さ れません。
Step Next Extended オペレーシ ョ ンでは、 既存の レ コ ー ド の中か ら 指定 し た フ ィ ール ド を抽出 し 、 抽出 し た フ ィ ー
ル ド だけ を含む新 し い レ コ ー ド のセ ッ ト を返す こ と も で き ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
○
○
キー バッ
ファー
キー番号
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
次の物理位置を確立 し てお く こ と が必要です。 (た と えば、 Delete オペレーシ ョ ンの次に Step Next Extended
オペレーシ ョ ン を実行す る こ と はで き ません。)
手順
1
オペレーシ ョ ン コ ー ド に 38 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
入力デー タ バ ッ フ ァ ー と 戻 り デー タ バ ッ フ ァ ーの ど ち ら か大き い方を格納で き る よ う に、十分な長 さ のデー
タ バ ッ フ ァ ーを指定 し ます。 表 21 に示す構造体に従っ て、 デー タ バ ッ フ ァ ーを初期化 し ます。
4
上記の手順に従っ て、 デー タ バ ッ フ ァ ー長に適切な値を指定 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではバ ッ フ ァ ーを用意 し て、Extended オペレーシ ョ ンの ワー ク スペー
ス と し て使用で き る よ う に し ます。 こ のバ ッ フ ァ ーのサ イ ズは、 [拡張オペレーシ ョ ン バ ッ フ ァ ー サ イ ズ]
オプシ ョ ン を使っ て構成 し ま す。 デー タ バ ッ フ ァ ー構造体、 取得 さ れ る 最長の レ コ ー ド 、 お よ び リ ク エ ス
タ ーのオーバーヘ ッ ド の 355 バ イ ト 、 こ れ ら の合計が設定 し たバ ッ フ ァ ー サ イ ズ を超え る こ と はで き ま せ
ん。 ( リ ク エ ス タ ーのオーバーヘ ッ ド は、 DOS ワー ク ス テーシ ョ ンのエン ジ ンには適用で き ません。)
詳細
Step Next Extended オペレーシ ョ ンの 「詳細」 の内容は、 Get Next Extended オペレーシ ョ ン と 同 じ です。 詳 し く は
「詳細」 を ご覧 く だ さ い。
125
Btrieve API オペ レーシ ョ ン
結果
Step Next Extended オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では表 22 に示
す と お り 、取得 さ れた 1 つま たは複数の レ コ ー ド に含まれ る 1 つま たは複数の フ ィ ール ド がデー タ バ ッ フ ァ ーに
返 さ れます。 さ ら に ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 、 デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーには、 デー タ
バ ッ フ ァ ーに返 さ れたバ イ ト 数が設定 さ れます。
Step Next Extended オペレーシ ョ ンが正常に実行 さ れなかっ た場合は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら
次の ス テー タ ス コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
60
指定 さ れた リ ジ ェ ク ト カ ウ ン ト に達 し ま し た。
61
作業領域が小 さ すぎ ます。
62
デ ィ ス ク リ プ タ ーが不正です。
64
フ ィ ル タ ー制限に達 し ま し た。
65
フ ィ ール ド オ フ セ ッ ト が不正です。
82
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス がポジシ ョ ニ ン グ を失い ま し た。
134
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス が イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) を読み取れません。
135
指定 さ れた イ ン タ ーナシ ョ ナル ソ ー ト 規則 (ISR) テーブルは破損 し てい る か、 ま たは不正です。
136
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 指定 さ れたオル タ ネー ト コ レーテ ィ ン グ シーケ ン ス を フ ァ イ ル内
に見つけ ら れません。
ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 0 以外の ス テー タ ス コ ー ド が返 さ れて も 、 有効なデー タ がデー タ
バ ッ フ ァ ーに返 さ れ る こ と があ り ます。 ただ し こ の場合、 返 さ れた最後の レ コ ー ド は不完全な も のであ る 可能性
があ り ます。デー タ バ ッ フ ァ ー長パ ラ メ ー タ ーに 0 を超え る 値が返 さ れてい る 場合は、デー タ バ ッ フ ァ ーに抽出
さ れたデー タ を確認 し て く だ さ い。
レ コ ー ド が短すぎ て フ ィ ール ド の一部 し か使用 さ れない場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら は、
一部のみ使用 さ れた フ ィ ール ド も 含めて、 レ コ ー ド か ら 抽出で き た も ののみを返 し ます。 部分フ ィ ール ド が抽出
さ れ る 最後の フ ィ ール ド で あ る 場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオペ レ ーシ ョ ン が続行 さ れ ま
す。 そ う でない場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオペレーシ ョ ンは中止 さ れ、 ス テー タ ス コ ー ド
22 が返 さ れます。
た と えば、 2 件の可変長レ コ ー ド か ら 3 つの フ ィ ール ド を取得する Step Next Extended オペレーシ ョ ン を考えてみ
ま し ょ う 。 最初の レ コ ー ド は 55 バ イ ト で、 2 番目の レ コ ー ド は 50 バ イ ト だ と し ます。 取得す る フ ィ ール ド は次
の よ う に定義 さ れてい ます。
„
フ ィ ール ド 1 はオ フ セ ッ ト 2 か ら 始ま り 、 2 バ イ ト 長です。
„
フ ィ ール ド 2 はオ フ セ ッ ト 45 か ら 始ま り 、 10 バ イ ト 長です。
„
フ ィ ール ド 3 はオ フ セ ッ ト 6 か ら 始ま り 、 2 バ イ ト 長です。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で Step Next Extended オペレーシ ョ ンが実行 さ れ る と き 、 最初の レ コ ー ド
は問題な く 返 さ れます。 し か し 、 2 番目の レ コ ー ド のフ ィ ール ド 2 か ら 10 バ イ ト を抽出 し よ う と す る と 、 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオ フ セ ッ ト 45 と レ コ ー ド の末尾のオ フ セ ッ ト 49 の間では 5 バ イ ト し か取得
で き ない こ と が検出 さ れます。 こ の時点で、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ィ ール ド 2 の不足 し て
い る 5 バ イ ト 分は詰め込まれないため、 フ ィ ール ド 3 は抽出で き な く な り ます。 その代わ り に、 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス か ら ス テー タ ス コ ー ド 22 が返 さ れ、 フ ィ ール ド 1 全体 と フ ィ ール ド 2 の先頭 5 バ イ ト が
戻 り デー タ バ ッ フ ァ ーに格納 さ れます。
126
Step Next Extended (38)
ポジ シ ョ ニ ング
Step Next Extended オペレーシ ョ ン を実行 し て も 、 論理カ レ ン シーは確立 し ませんが、 検索 さ れた最後の レ コ ー ド
が現在の物理レ コ ー ド にな り ます。 なお、 こ の レ コ ー ド は取得 さ れてい る と は限 り ません。 こ の レ コ ー ド は、 フ ィ
ル タ ー条件を満た し て取得 さ れた レ コ ー ド か、 ま たはフ ィ ル タ ー条件を満た さ ないために拒否 さ れた レ コ ー ド の
いずれかです。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 Step Next Extended オペレーシ ョ ン の後に Delete ま たは
Update オペレーシ ョ ン を実行す る こ と はで き ません。 現在の レ コ ー ド は検索 さ れた最後の レ コ ー ド であ る た
め、 アプ リ ケーシ ョ ンには、 意図 し た レ コ ー ド を適切に削除ま たは更新 し てい る か ど う か を確認す る 方法が
あ り ません。
127
Btrieve API オペ レーシ ョ ン
Step Previous (35)
Step Previous オペレーシ ョ ン (B_STEP_PREVIOUS) では、 前の物理位置 と し て示 さ れ る レ コ ー ド を取得 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では Step Previous オペレ ーシ ョ ン で レ コ ー ド を取得す る ために イ ンデ ッ
ク ス パ ス は使用 さ れません。
Step Previous オペレーシ ョ ン を任意の Get ま たは Step オペレーシ ョ ンの直後に実行す る と 、 前のオペレーシ ョ ン
で取得 さ れた レ コ ー ド の物理的に前にあ る レ コ ー ド が返 さ れます。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
戻り値
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
キー番号
○
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
前の物理位置を確立 し てお く こ と が必要です(た と えば、Delete オペレーシ ョ ンの次に Step Previous オペレー
シ ョ ン を実行す る こ と はで き ません)。
手順
1
オペレーシ ョ ン コ ー ド に 35 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ー長に取得す る レ コ ー ド の長 さ 以上の値を設定 し ます。
結果
Step Previous オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル内の前
の物理レ コ ー ド がデー タ バ ッ フ ァ ーに返 さ れ、 返 さ れたバ イ ト 数がデー タ バ ッ フ ァ ー長に設定 さ れます。
こ のオペレーシ ョ ンが正常に実行 さ れなか っ た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー タ ス
コ ー ド のいずれかが返 さ れます。
3
フ ァ イ ルが開いてい ません。
9
オペレーシ ョ ンが EOF (end-of-file) を検出 し ま し た。 (フ ァ イ ルの先頭で実行 し た場合)
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
ポジ シ ョ ニ ング
Step Previous オペレーシ ョ ン を実行 し て も 、 論理カ レ ン シーは確立 し ません。 取得 し た レ コ ー ド を現在の物理レ
コ ー ド と し て使用 し 、 物理カ レ ン シーが設定 さ れます。
128
Step Previous Extended (39)
Step Previous Extended (39)
Step Previous Extended オペレーシ ョ ン (B_STEP_PREVIOUS_EXT) では、 物理位置の直前か ら フ ァ イ ルの先頭へ
向か っ て 1 つま たは複数の レ コ ー ド を検索 し ます。 検索 し た レ コ ー ド が フ ィ ル タ ー条件を満た し てい る か ど う か
をチ ェ ッ ク し た上で、条件を満たすレ コ ー ド だけ を取得 し ます。フ ィ ル タ ー条件は論理式の形を取 り 、キー フ ィ ー
ル ド のみに制限 さ れません。
Step Previous Extended オペ レ ーシ ョ ン では、 既存の レ コ ー ド の中か ら 指定 し た フ ィ ール ド を抽出 し 、 抽出 し た
フ ィ ール ド だけ を含む新 し い レ コ ー ド のセ ッ ト を返す こ と も で き ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
○
○
○
○
○
○
キー バッ
ファー
キー番号
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
前の物理位置を確立 し てお く こ と が必要です (た と えば、Delete オペレーシ ョ ンの次に Step Previous Extended
オペレーシ ョ ン を実行す る こ と はで き ません)。
手順
1
オペレーシ ョ ン コ ー ド に 39 を設定 し ます。 オプシ ョ ン で、 ロ ッ ク バ イ ア ス も 指定で き ます。
Š
+100 - 単一レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+200 - 単一レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
Š
+300 - 複数レ コ ー ド ウ ェ イ ト ロ ッ ク
Š
+400 - 複数レ コ ー ド ノ ー ウ ェ イ ト ロ ッ ク
ロ ッ ク の詳細については、 『Pervasive PSQL Programmer's Guide』 を参照 し て く だ さ い。
2
フ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
入力デー タ バ ッ フ ァ ー と 戻 り デー タ バ ッ フ ァ ーの ど ち ら か大き い方を格納で き る よ う に、十分な長 さ のデー
タ バ ッ フ ァ ーを指定 し ます。 表 21 に示す構造体に従っ て、 デー タ バ ッ フ ァ ーを初期化 し ます。
4
上記の手順に従っ て、 デー タ バ ッ フ ァ ー長に適切な値を指定 し ます。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではバ ッ フ ァ ーを用意 し て、Extended オペレーシ ョ ンの ワー ク スペー
ス と し て使用で き る よ う に し ます。 こ のバ ッ フ ァ ーのサ イ ズは、 [拡張オペレーシ ョ ン バ ッ フ ァ ー サ イ ズ]
オプシ ョ ン を使っ て構成 し ま す。 デー タ バ ッ フ ァ ー構造体、 取得 さ れ る 最長の レ コ ー ド 、 お よ び リ ク エ ス
タ ーのオーバーヘ ッ ド の 355 バ イ ト 、 こ れ ら の合計が設定 し たバ ッ フ ァ ー サ イ ズ を超え る こ と はで き ま せ
ん。 ( リ ク エ ス タ ーのオーバーヘ ッ ド は、 DOS ワー ク ス テーシ ョ ンのエン ジ ンには適用で き ません。)
詳細
こ のオペレーシ ョ ンでは、 Get Next Extended オペレーシ ョ ンの場合 と 同 じ 入力デー タ バ ッ フ ァ ーお よ び戻 り デー
タ バ ッ フ ァ ーを使用 し ます。 詳 し く は 「詳細」 を ご覧 く だ さ い。
129
Btrieve API オペ レーシ ョ ン
結果
こ のオペレーシ ョ ンでは、 Step Next Extended オペレーシ ョ ン と 同様の結果が返 さ れます。 詳 し く は 「結果」 を ご
覧 く だ さ い。
ポジ シ ョ ニ ング
Step Previous Extended オペレーシ ョ ン を実行 し て も 、論理カ レ ン シーは確立 し ませんが、検索 さ れた最後の レ コ ー
ド が現在の物理レ コ ー ド にな り ま す。 なお、 こ の レ コ ー ド は取得 さ れてい る と は限 り ま せん。 こ の レ コ ー ド は、
フ ィ ル タ ー条件を満た し て取得 さ れた レ コ ー ド か、 ま たはフ ィ ル タ ー条件を満た さ ないために拒否 さ れた レ コ ー
ド のいずれかです。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 Step Previous Extended オペレーシ ョ ンの後に Delete ま た
は Update オペレーシ ョ ン を実行す る こ と はで き ません。現在の レ コ ー ド は検索 さ れた最後の レ コ ー ド であ る
ため、 アプ リ ケーシ ョ ンには、 意図 し た レ コ ー ド を適切に削除ま たは更新 し てい る か ど う か を確認す る 方法
があ り ません。
130
Stop (25)
Stop (25)
Stop オペレーシ ョ ン (B_STOP) では、 ク ラ イ ア ン ト に対 し てい く つかの終了ルーチン を実行 し ます。 終了ルー
チンには、 すべての ロ ッ ク を解除す る 、 開いてい る フ ァ イ ルでその ク ラ イ ア ン ト に関連付け ら れてい る フ ァ イ ル
をすべて閉 じ る な ど のルーチンがあ り ます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
キー バッ
ファー
キー番号
○
戻り値
手順
オペレーシ ョ ン コ ー ド に 25 を設定 し ます。
結果
Stop オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では次の よ う な動作が実行 さ
れます。
1
実行中の ト ラ ンザ ク シ ョ ンがすべて中止 さ れ る 。
2
ク ラ イ ア ン ト に よ っ て保持 さ れてい る すべての ロ ッ ク が解除 さ れます。
3
ク ラ イ ア ン ト が開いてい る フ ァ イ ルがすべて閉 じ ら れます。
4
ほかの ク ラ イ ア ン ト ( ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に登録 さ れてい る ほかのアプ リ ケーシ ョ ン) が
存在 し ない場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス の設定に も よ り ますが、 ト ラ ンザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス の実行が終了 し 、 い く つかの リ ソ ース が解放 さ れます。
Stop オペレーシ ョ ン が正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 0 以外の ス
テー タ ス コ ー ド が返 さ れます。最 も よ く あ る のは ス テー タ ス コ ー ド 20 (MicroKernel ま たは Btrieve リ ク エ ス タ ー
が非ア ク テ ィ ブ) です。 こ の ス テー タ ス は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ま たは リ ク エ ス タ ーが ロ ー ド
さ れていないために発生 し ます。
ポジ シ ョ ニ ング
Stop オペレーシ ョ ン を実行す る と 、 開いてい る フ ァ イ ルがすべて閉 じ ら れ る ため、 すべてのカ レ ン シーが消去 さ
れます。
131
Btrieve API オペ レーシ ョ ン
Unlock (27)
Unlock オペ レ ーシ ョ ン (B_UNLOCK) では、 明示的に ロ ッ ク さ れてい る 1 つ ま たは複数の レ コ ー ド (つ ま り 、
ロ ッ ク バ イ ア ス +100、 +200、 +300 ま たは +400 を使っ て ロ ッ ク さ れた レ コ ー ド ) の ロ ッ ク を解除 し ます。 Unlock
オペレーシ ョ ンは指定 し たポジシ ョ ン ブ ロ ッ ク で保持 さ れてい る ロ ッ ク を解除す る ので、同一フ ァ イ ルを複数回
開いた場合は、 ポジシ ョ ン ブ ロ ッ ク ご と に Unlock オペレーシ ョ ン を発行 し なければ、 レ コ ー ド の ロ ッ ク は完全
に解除 さ れ ません。 同様に、 フ ァ イ ル内の レ コ ー ド に対 し ロ ッ ク を保持 し てい る 各 ク ラ イ ア ン ト が Unlock オペ
レーシ ョ ン を発行 し なければ、 レ コ ー ド の ロ ッ ク は完全に解除 さ れません。
パラ メ ー タ ー
送り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
○
キー番号
○
戻り値
前提条件
少な く と も 1 つの レ コ ー ド が ロ ッ ク さ れてい る こ と が必要です。
手順
¾
単一レ コ ー ド ロ ッ ク を解除するには、 次の手順に従います。
1
オペレーシ ョ ン コ ー ド に 27 を設定 し ます。
2
ロ ッ ク さ れた レ コ ー ド を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
キー番号に正の値ま たはゼ ロ を設定 し ます。
¾
複数レ コ ー ド ロ ッ ク が設定 さ れている 1 つのレ コ ー ド のロ ッ ク を解除するには、まずそのレ コ ー ド を対象に
Get Position オペ レーシ ョ ン (22) を発行 し 、 ロ ッ ク を解除する レ コ ー ド の 4 バイ ト 物理位置を取得 し ます。
その後、 次の手順に従 っ て Unlock オペ レーシ ョ ン を発行 し ます。
1
オペレーシ ョ ン コ ー ド に 27 を設定 し ます。
2
ロ ッ ク さ れた レ コ ー ド を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 返 さ れ る 4 バ イ ト の物理位置をデー タ バ ッ フ ァ ーに格納 し ます。
4
デー タ バ ッ フ ァ ー長に 4 を設定 し ます。
5
キー番号パ ラ メ ー タ ーに -1 を設定 し ます。
¾
フ ァ イル上の複数レ コ ー ド ロ ッ ク をすべて解除するには、 次の手順に従います。
1
オペレーシ ョ ン コ ー ド に 27 を設定 し ます。
2
複数の ロ ッ ク を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
キー番号パ ラ メ ー タ ーに -2 を設定 し ます。
結果
Unlock オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではオペレーシ ョ ン で指定
し た ロ ッ ク がすべて解除 さ れます。
Unlock オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 0 以外の ス
テー タ ス コ ー ド 、 たいていは ス テー タ ス コ ー ド 81 が返 さ れます。
132
Unlock (27)
ポジ シ ョ ニ ング
Unlock オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
133
Btrieve API オペ レーシ ョ ン
Update (3)
Update オペレーシ ョ ン (B_UPDATE) では、 既存の レ コ ー ド の情報を変更 し ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
○
キー バッ
ファー
○
○
キー番号
○
○
メ モ NCC (No-currency-change : カ レ ン シー変更な し ) オプシ ョ ン を使用する と 、 Update オペレーシ ョ ンは
キー バ ッ フ ァ ー パ ラ メ ー タ ーの値を更新 し ません。 つま り 、 キー バ ッ フ ァ ー パ ラ メ ー タ ーには情報は返 さ
れません。
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルの物理カ レ ン シーを確立 し てお く こ と が必要です。 (Extended Get、 Extended Step、 ま たは Get Key オ
ペレーシ ョ ンで も 物理カ レ ン シーは確立 し ますが、こ れ ら のオペレーシ ョ ンの後に Update オペレーシ ョ ン を
実行す る こ と はで き ません。)
手順
1
オペレーシ ョ ン コ ー ド に 3 を設定 し ます。
2
レ コ ー ド を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
デー タ バ ッ フ ァ ーに更新後のデー タ レ コ ー ド を格納 し ます。
4
デー タ バ ッ フ ァ ー長に更新後の レ コ ー ド の長 さ を設定 し ます。
5
キー番号に、 レ コ ー ド の取得に使用 し た キー番号を設定 し ます。 NCC オプシ ョ ン を使用す る には、 キー番号
に -1 (0xFF) を指定 し ます。シ ス テ ム定義の ロ グ キー (シ ス テ ム デー タ ) を使用す る には、125 を指定 し ます。
Get オペレーシ ョ ンの直後に NCC オプシ ョ ン を使用 し ない Update オペレーシ ョ ン を実行す る と き 、 ト ラ ン
ザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では Get オペレ ーシ ョ ン で取得 し た も の と ま っ た く 同 じ キー番号を渡 し ま
す。 そ う し ない と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で レ コ ー ド は正常に更新 さ れますが、 更新後に実
行す る 最初の Get オペレーシ ョ ン で ス テー タ ス コ ー ド 7 が返 さ れます。
結果
Update オペレーシ ョ ンが正常に終了 し た場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではフ ァ イ ル内に格納 さ れ
てい る レ コ ー ド がデー タ バ ッ フ ァ ー内の新 し い値を使っ て更新 さ れ、 キー値の変更を反映 し て イ ンデ ッ ク ス が調
整 さ れ ます。 ま た、 指定 し た キーの値がキー バ ッ フ ァ ーに返 さ れます。 NCC Update オペレーシ ョ ンでは、 キー
バ ッ フ ァ ー パ ラ メ ー タ ーの値は更新 さ れません。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、アプ リ ケーシ ョ ンが更新する レ コ ー ド に単一レ コ ー ド ロ ッ ク を設定
し てい る 場合は、 ロ ッ ク が解除 さ れ ます。 し か し 、 複数レ コ ー ド ロ ッ ク は Update オペレーシ ョ ン を実行 し て も
解除 さ れません。
134
Update (3)
Update オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の ス テー
タ ス コ ー ド のいずれかが返 さ れます。
5
レ コ ー ド のキー フ ィ ール ド に重複す る キー値があ り ます。
8
現在のポジシ ョ ンが不正です。
10
キー フ ィ ール ド は変更で き ません。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
80
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で レ コ ー ド レベルの矛盾が発生 し ま し た。
ポジ シ ョ ニ ング
Update オペレーシ ョ ン も NCC Update オペレーシ ョ ン も 、 物理カ レ ン シーには影響 し ません。
更新 さ れた キーの値に よ っ て イ ンデ ッ ク ス 内の レ コ ー ド が再配置 さ れ る 場合は、 NCC オプシ ョ ン を使用 し ない
Update オペレーシ ョ ン が論理カ レ ン シーに影響を与え る こ と があ り ます。 た と えば、 INTEGER キーの現在の論
理レ コ ー ド がそのキーに対 し て 1 と い う 値を持つ場合を考えてみま し ょ う 。 こ れ と 同 じ キーについて、 次の論理
レ コ ー ド は 2 と い う 値を持ち ます。 こ の と き 1 を 4 に更新する と 、 次の論理レ コ ー ド が変わ り ます。 こ の例では、
Update オペレーシ ョ ンの実行後、 次の論理レ コ ー ド は 4 よ り も 大 き い値を持つ こ と にな り ます。
NCC Update オペレーシ ョ ンは論理カ レ ン シーに影響 し ません。 つま り 、 NCC Update オペレーシ ョ ン を実行 し た
アプ リ ケーシ ョ ンでは、フ ァ イ ル内の論理位置は Update オペレーシ ョ ン を実行す る 前 と 変わ ら ない と い う こ と で
す。 こ の よ う な状況で、 NCC Update オペレーシ ョ ンに続けて、 Get Next (6)、 Get Next Extended (36)、 Get Previous
(7)、 お よ び Get Previous Extended (37) な ど のオペレーシ ョ ン を実行す る と 、 NCC Update オペレーシ ョ ン実行以
前のアプ リ ケーシ ョ ンの論理カ レ ン シーに基づ く 値が返 さ れます。
メ モ ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では、 NCC Update オペレーシ ョ ン を実行 し て も 、 その結果 と し
て何の情報 も キー バ ッ フ ァ ーには返 さ れ ま せん。 し たが っ て、 論理カ レ ン シーの維持が必要な ア プ リ ケー
シ ョ ンでは、 NCC Update オペレーシ ョ ン後にキー バ ッ フ ァ ーの値を変更 し ないで く だ さ い。 変更す る と 、 次
の Get オペレーシ ョ ンの結果は予測で き ない も のにな り ます。
135
Btrieve API オペ レーシ ョ ン
Update Chunk (53)
Update Chunk オペレーシ ョ ン (B_CHUNK_UPDATE) では、 レ コ ー ド の 1 つま たは複数の部分 (チ ャ ン ク ) の情
報を変更で き ます。 ま た、 既存の レ コ ー ド に情報を追加 し て レ コ ー ド を長 く し た り 、 既存の レ コ ー ド を指定 し た
オ フ セ ッ ト で切 り 詰め る こ と も で き ます。
パラ メ ー タ ー
送り値
戻り値
オペレーション
コード
ポジション
ブロック
○
○
データ バッ データ バッ
ファー
ファー長
○
○
キー バッ
ファー
○
キー番号
○
○
前提条件
„
対象 と な る フ ァ イ ルが開いてい る こ と が必要です。
„
フ ァ イ ルの現在の物理レ コ ー ド ま たは論理レ コ ー ド を確立 し てお く こ と が必要です。
メ モ Extended オペレーシ ョ ン ま たは Get Key オペレーシ ョ ン (+50) で も 必要な位置は確立 し ますが、 こ れ
ら のオペレーシ ョ ンの直後に Update Chunk オペレーシ ョ ン を発行す る こ と はで き ません。 それは、 こ れ ら の
オペレーシ ョ ンでは単独の レ コ ー ド が返 さ れないか ら です。
手順
1
オペレーシ ョ ン コ ー ド に 53 を設定 し ます。
2
レ コ ー ド を含むフ ァ イ ルのポジシ ョ ン ブ ロ ッ ク を渡 し ます。
3
「詳細」 の説明に従っ て、 デー タ バ ッ フ ァ ーを指定 し ます。
4
デー タ バ ッ フ ァ ー長に、 デー タ バ ッ フ ァ ーに格納する バ イ ト 数以上の値を設定 し ます。 デー タ バ ッ フ ァ ー
長の計算の詳細については、 「詳細」 を参照 し て く だ さ い。
5
レ コ ー ド の取得に使用 し た キー番号を キー番号パ ラ メ ー タ ーに設定 し ます。 シ ス テ ム定義の ロ グ キー (シ ス
テ ム デー タ ) を使用す る には、 125 を指定 し ます。
詳細
デー タ バ ッ フ ァ ーでは、 次のチ ャ ン ク デ ィ ス ク リ プ タ ーのいずれか を使用 し ます。
„
ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー - オペレーシ ョ ンに付 き 1 つのチ ャ ン ク を更新する ため、ま たはチ ャ ン
ク が レ コ ー ド 全体にわた っ て ラ ン ダ ムに配置 さ れてい る と き に、 1 回のオペレーシ ョ ンで複数のチ ャ ン ク を
更新す る ために使用 し ます。
„
矩形チ ャ ン ク デ ィ ス ク リ プ タ ー - 各チ ャ ン ク の長 さ が同 じ で、 チ ャ ン ク が レ コ ー ド 内に等間隔に配置 さ れて
い る と き に、 1 回のオペレーシ ョ ンで複数のチ ャ ン ク を更新す る ために使用 し ます。
„
切 り 捨てチ ャ ン ク デ ィ ス ク リ プ タ ー - 指定 さ れたオ フ セ ッ ト で レ コ ー ド を切 り 捨て る ために使用 し ます。
136
Update Chunk (53)
ラ ン ダム チ ャ ン ク デ ィ ス ク リ プ タ ー構造体
次の例は、 ラ ン ダ ムに配置 さ れてい る 3 つのチ ャ ン ク ([*] があ る 部分) を含むレ コ ー ド を示 し てい ます。 チ ャ ン
ク 0(バ イ ト 0x12 か ら 0x16)、チ ャ ン ク 1(バ イ ト 0x2A か ら 0x31)お よ びチ ャ ン ク 2(バ イ ト 0x41 か ら 0x4E)です。
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
[*]
[*]
[*]
[*]
[*]
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
[*]
4F
ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ーを定義す る には、 次の表に基づいてデー タ バ ッ フ ァ ーに構造体を作成す る
必要があ り ます。
表 48 ラ ン ダム チ ャ ン ク デ ィ ス ク リ プ タ ー構造体
要素
長さ (バイト単位)
説明
サブフ ァ ン ク シ ョ ン
4
チ ャ ン ク デ ィ ス ク リ プ タ ーの種類。 次のいずれかを指定 し ます。
‹ 0x80000000(直接 ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー) - デー タ バ ッ フ ァ ー
に直接格納 さ れてい る チ ャ ン ク を更新 し ます。先頭のチ ャ ン ク を更新す る た
めのデー タ は、 デー タ バ ッ フ ァ ー内の最後のチ ャ ン ク 定義 (チ ャ ン ク n) の
直後に格納 し ま す。 ま た、 2 番目のチ ャ ン ク デー タ は先頭のチ ャ ン ク デー
タ の直後に、 と 順次格納 し ます。
‹ 0x80000001 (間接 ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク 定義で指
定 さ れた ア ド レ ス にあ る デー タ を基にチ ャ ン ク を更新 し ます。
チャ ン ク数
4
更新す る チ ャ ン ク 数。 こ の値は少な く と も 1 であ る こ と が必要です。 明確な最
大値はあ り ませんが、チ ャ ン ク デ ィ ス ク リ プ タ ーはデー タ バ ッ フ ァ ーに収ま ら
なければな り ません。 デー タ バ ッ フ ァ ーのサ イ ズは、 表 18 の説明の と お り 制
限 さ れてい ます。
チ ャ ン ク 定義
(各チ ャ ン ク につい
て繰 り 返す)
12 (32 ビ ッ ト アプ
リ ケーシ ョ ン用)
各チ ャ ン ク 定義は、 以下に示す よ う に、 4 バ イ ト のチ ャ ン ク オ フ セ ッ ト 、 それ
に続 く 4 バ イ ト のチ ャ ン ク 長、 さ ら に 32 ビ ッ ト アプ リ ケーシ ョ ンの場合は 4
バ イ ト のユーザー デー タ 、 ま たは 64 ビ ッ ト アプ リ ケーシ ョ ンの場合は 8 バ イ
ト のユーザー デー タ か ら 構成 さ れます。
16 (64 ビ ッ ト アプ
リ ケーシ ョ ン用)
‹ チ ャ ン ク オ フ セ ッ ト - チ ャ ン ク の開始地点を、 レ コ ー ド の先頭か ら のオ フ
セ ッ ト (バ イ ト 単位) で示 し ます。 最小値は 0、 最大値はレ コ ー ド の末尾の
バ イ ト のオ フ セ ッ ト + 1 です。
‹ チ ャ ン ク 長 - チ ャ ン ク 内のバ イ ト 数を示 し ます。最小値は 0、最大値は 65,535
です。 ただ し 、 チ ャ ン ク 定義はデー タ バ ッ フ ァ ーに収ま ら な ければな り ま
せん。 デー タ バ ッ フ ァ ーのサ イ ズは、 表 18 の説明の と お り 制限 さ れてい ま
す。
‹ ユーザー デー タ - (間接デ ィ ス ク リ プ タ ーでのみ使用 し ます。) 32 ビ ッ ト ア
プ リ ケーシ ョ ンの場合、実際のチ ャ ン ク デー タ への 32 ビ ッ ト ポ イ ン タ ーで
す。64 ビ ッ ト アプ リ ケーシ ョ ンの場合、実際のチ ャ ン ク デー タ への 64 ビ ッ
ト ポ イ ン タ ーです。 使用すべ き 形式は、 オペレーテ ィ ン グ シ ス テ ムに よ っ
て異な り ます。1 直接チ ャ ン ク デ ィ ス ク リ プ タ ーのサブ フ ァ ン ク シ ョ ンの場
合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要素は無視 さ れます。
1
DOS アプ リ ケーシ ョ ンの場合、 ユーザー デー タ は 16 ビ ッ ト オ フ セ ッ ト お よ び 16 ビ ッ ト セグ メ ン ト と し て初期化 し て く
だ さ い。 ユーザー デー タ では、 そのセグ メ ン ト の最後を越え て メ モ リ を ア ド レ ス指定す る こ と はで き ません。 チ ャ ン ク 長を
ユーザー デー タ のオ フ セ ッ ト 部分に加算 し た と き 、 その結果は、 ユーザー デー タ に よ っ て定義 さ れ る セ グ メ ン ト の範囲内
でな ければな り ま せん。 デフ ォ ル ト で、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の規則に対す る 違反はチ ェ ッ ク さ れ
ず、 こ の よ う な違反は適切に処理 さ れません。
137
Btrieve API オペ レーシ ョ ン
次の表は、32 ビ ッ ト アプ リ ケーシ ョ ン用の直接 ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー構造体の例を示 し てい ます。
要素
サンプル値
長さ (バイト単位)
サブ フ ァ ン ク シ ョ ン
0x8000000
4
チャ ン ク数
3
4
チャ ン ク オフセ ッ ト
0x12
4
チャ ン ク長
0x05
4
ユーザー デー タ
適用外
4
チャ ン ク オフセ ッ ト
0x2A
4
チャ ン ク長
0x08
4
ユーザー デー タ
適用外
4
チャ ン ク オフセ ッ ト
0x41
4
チャ ン ク長
0x0E
4
ユーザー デー タ
適用外
4
チ ャ ン ク 0 用デー タ
適用外
5
チ ャ ン ク 1 用デー タ
適用外
8
チ ャ ン ク 2 用デー タ
適用外
14
チャンク 0
チャンク 1
チャンク 2
矩形チ ャ ン ク デ ィ ス ク リ プ タ ー構造体
同 じ 長 さ のチ ャ ン ク が レ コ ー ド 全体にわた っ て等間隔に配置 さ れてい る 場合は、矩形チ ャ ン ク デ ィ ス ク リ プ タ ー
を使っ て、 更新す る すべてのチ ャ ン ク を記述する こ と がで き ます。 た と えば、 次の よ う な図を考えてみま し ょ う 。
こ の図は、 レ コ ー ド 内のオ フ セ ッ ト 0x00 か ら 0x4F ま でを表 し てい ます。
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
[*]
[*]
[*]
[*]
1D
1E
1F
20
21
22
23
24
25
26
27
28
[*]
[*]
[*]
[*]
2D
2E
2F
30
31
32
33
34
35
36
37
38
[*]
[*]
[*]
[*]
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
こ の レ コ ー ド には 3 つのチ ャ ン ク ([*] があ る 部分) が含まれてい ます。 チ ャ ン ク 0 (バ イ ト 0x19 か ら 0x1C) 、
チ ャ ン ク 1 (バ イ ト 0x29 か ら 0x2C)、 お よ びチ ャ ン ク 2 (バ イ ト 0x39 か ら 0x3C) です。 各チ ャ ン ク はどれ も 4
バ イ ト の長 さ で、 チ ャ ン ク 同士は、 各チ ャ ン ク の先頭か ら 計算す る と 、 いずれ も 合計 16 (0x10) バ イ ト ずつ離れ
てい ます。
138
Update Chunk (53)
1 つの矩形デ ィ ス ク リ プ タ ーを使っ て、 3 つのチ ャ ン ク をすべて更新で き ます。 矩形チ ャ ン ク を更新す る には、 表
49 に基づいてデー タ バ ッ フ ァ ーに構造体を作成する 必要があ り ます。
表 49 矩形チ ャ ン ク デ ィ ス ク リ プ タ ー構造体
要素
長さ (バイト単位)
説明
サブフ ァ ン ク シ ョ ン
4
チ ャ ン ク デ ィ ス ク リ プ タ ーの種類。 次のいずれかを指定 し ます。
‹ 0x80000002 (直接矩形チ ャ ン ク デ ィ ス ク リ プ タ ー) - デー タ バ ッ フ ァ ーに直
接格納 さ れてい る チ ャ ン ク を更新 し ます。先頭のチ ャ ン ク を更新す る ための
デー タ は、 デー タ バ ッ フ ァ ー内の最後のチ ャ ン ク 定義 (チ ャ ン ク n) の直後
に格納 し ます。 ま た、 2 番目のチ ャ ン ク デー タ は先頭のチ ャ ン ク デー タ の
直後に、 と 順次格納 し ます。
‹ 0x80000003 (間接矩形チ ャ ン ク デ ィ ス ク リ プ タ ー) - チ ャ ン ク 定義で指定 さ
れた ア ド レ ス にあ る デー タ を基にチ ャ ン ク を更新 し ます。
行数
4
矩形チ ャ ン ク デ ィ ス ク リ プ タ ーの操作対象 と す る チ ャ ン ク 数。 最小値は 1 で
す。 明確な最大値はあ り ません。
位置 (オ フ セ ッ ト )
4
更新す る 最初のバ イ ト の、 レ コ ー ド の先頭か ら のオ フ セ ッ ト 。 最小値は 0、 最
大値は レ コ ー ド の末尾のバ イ ト のオ フ セ ッ ト + 1 です。 レ コ ー ド が 1 つの矩形
と し て表 さ れ る 場合、 こ の要素は、 更新 さ れ る 先頭行にあ る 先頭バ イ ト のオ フ
セ ッ ト を指 し ます。
行のバ イ ト 数
4
各チ ャ ン ク で更新す る バ イ ト 数。 最小値は 0、 最大値は 65,535 です。 ただ し 、
チ ャ ン ク 定義はデー タ バ ッ フ ァ ーに収 ま ら な ければな り ま せん。 デー タ バ ッ
フ ァ ーのサ イ ズは、 表 18 の説明の と お り 制限 さ れてい ます。
行間隔
4
チ ャ ン ク の先頭か ら 次のチ ャ ン ク の先頭ま でのバ イ ト 数。
ユーザー デー タ
4 (32 ビ ッ ト アプ
リ ケーシ ョ ン用)
(間接デ ィ ス ク リ プ タ ーでのみ使用 し ます。 ) 32 ビ ッ ト アプ リ ケーシ ョ ンの場
合、 実際のチ ャ ン ク デー タ への 32 ビ ッ ト ポ イ ン タ ーです。 64 ビ ッ ト アプ リ
ケーシ ョ ンの場合、 実際のチ ャ ン ク デー タ への 64 ビ ッ ト ポ イ ン タ ーです。 使
用すべ き 形式は、 オペレーテ ィ ン グ シ ス テ ムに よ っ て異な り ます。 1 直接矩形
デ ィ ス ク リ プ タ ーの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要素
は無視 さ れ ます。 ただ し それで も 、 こ の要素を割 り 当て、 0 に初期化 し てお く
必要があ り ます。
8 (64 ビ ッ ト アプ
リ ケーシ ョ ン用)
アプ リ ケーシ ョ ン
の行間隔
4
(間接矩形デ ィ ス ク リ プ タ ーでのみ使用 し ます。) 矩形がアプ リ ケーシ ョ ンの メ
モ リ (つま り 、 ユーザー デー タ で指定 し た ア ド レ ス) に格納 さ れ る と き の、 矩
形内のチ ャ ン ク の先頭か ら 次のチ ャ ン ク の先頭ま でのバ イ ト 数。 直接矩形デ ィ
ス ク リ プ タ ーの場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では こ の要素は無
視 さ れ ます。 ただ し それで も 、 こ の要素を割 り 当て、 0 に初期化 し てお く 必要
があ り ます。
1
DOS アプ リ ケーシ ョ ンの場合、 ユーザー デー タ は 16 ビ ッ ト オ フ セ ッ ト と それに続 く 16 ビ ッ ト セグ メ ン ト で表 し て く だ
さ い。
矩形が メ モ リ 内にあ る と き 、 各行の間隔が レ コ ー ド と し て格納 さ れてい る と き と 同 じ バ イ ト 数にな る 場合は、 ア
プ リ ケーシ ョ ンの行間隔に行間隔 と 同 じ 値を設定 し ます。 し か し 、 矩形がアプ リ ケーシ ョ ンの メ モ リ 内で再配置
さ れ、 行の間隔が何バ イ ト か増減す る 場合は、 アプ リ ケーシ ョ ンの行間隔に よ り 、 その情報を ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス に渡す こ と がで き ます。
間接矩形デ ィ ス ク リ プ タ ーを使用す る と き は、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス はユーザー デー タ 要素お よ
びアプ リ ケーシ ョ ンの行間隔要素を使っ て、 更新のためにデー タ を読み取 る 場所を決定 し ます。 ト ラ ンザ ク シ ョ
ナル イ ン タ ーフ ェ イ ス では先頭行のデー タ はユーザー デー タ のオ フ セ ッ ト 0 か ら 読み取 ら れ ます。 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス では 2 行目のデー タ は、 ユーザー デー タ + アプ リ ケーシ ョ ンの行間隔で指定 さ れ る
ア ド レ ス か ら 読み取 ら れます。 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では 3 行目のデー タ は、 ユーザー デー タ +
( アプ リ ケーシ ョ ンの行間隔 * 2) で指定 さ れ る ア ド レ ス か ら 読み取 ら れ、 以下同様です。
139
Btrieve API オペ レーシ ョ ン
次の表は、 32 ビ ッ ト アプ リ ケーシ ョ ン用の直接矩形チ ャ ン ク デ ィ ス ク リ プ タ ー構造体の例を示 し てい ます。
要素名
サンプル値
長さ (バイト単位)
サブ フ ァ ン ク シ ョ ン
0x80000002
4
行数
3
4
位置 (オ フ セ ッ ト )
0x19
4
行のバ イ ト 数
0x04
4
行間隔
0x10
4
ユーザー デー タ
0
4
アプ リ ケーシ ョ ンの行間隔
0
4
デー タ (行 0)
適用外
4
デー タ (行 1)
適用外
4
デー タ (行 2)
適用外
4
切 り 捨てデ ィ ス ク リ プ タ ー構造体
切 り 捨てデ ィ ス ク リ プ タ ーを使 う と 、 指定 し たオ フ セ ッ ト で レ コ ー ド を切 り 捨て る こ と がで き ます。 こ の種類の
チ ャ ン ク デ ィ ス ク リ プ タ ーを使用す る には、次の表に基づいてデー タ バ ッ フ ァ ーに構造体を作成す る 必要があ り
ます。
表 50 切 り 捨てデ ィ ス ク リ プ タ ー構造体
要素
長さ (バイト単位)
説明
サブフ ァ ン ク シ ョ ン
4
チ ャ ン ク デ ィ ス ク リ プ タ ーの種類。 0x80000004 を指定 し ます。
チ ャ ン ク オフ セ ッ ト
4
切 り 捨て を開始す る 位置の、 レ コ ー ド 内でのバ イ ト オ フ セ ッ ト 。 指定 し たバ イ
ト と 、 それ以降のバ イ ト がすべて削除 さ れ ま す。 最小値は 4、 最大値は レ コ ー
ド の末尾のバ イ ト のオ フ セ ッ ト です。
ネ ク ス ト イ ン レ コ ー ド サブ フ ァ ン ク シ ョ ン バイ ア ス
こ れ ま でに述べたサブ フ ァ ン ク シ ョ ンの値にバ イ ア ス 0x40000000 を加算す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス ではレ コ ー ド 内の物理カ レ ン シー (つま り 、レ コ ー ド 内の現在の物理位置) に基づいてサブ フ ァ ン ク シ ョ
ンのオ フ セ ッ ト 要素の値が算出 さ れます。 ネ ク ス ト イ ン レ コ ー ド サブ フ ァ ン ク シ ョ ン を使用する 場合、 ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス ではチ ャ ン ク デ ィ ス ク リ プ タ ーのオ フ セ ッ ト 要素は無視 さ れます。
こ のバ イ ア ス を ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー と 組み合わせて使用 し 、1 回のオペレーシ ョ ン で複数のチ ャ
ン ク を更新す る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では前のチ ャ ン ク の長 さ に前のチ ャ ン ク のオ フ セ ッ
ト が加算 さ れ、 先頭のチ ャ ン ク を除 く すべてのチ ャ ン ク に対す る オ フ セ ッ ト が自動的に計算 さ れ ま す。 つ ま り 、
ネ ク ス ト イ ン レ コ ー ド バ イ ア ス は、 オペレ ーシ ョ ン の対象 と な る すべてのチ ャ ン ク に適用 さ れ る と い う こ と で
す。
追加サブ フ ァ ン ク シ ョ ン バイ ア ス
バ イ ア ス 0x20000000 を ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ーのサブ フ ァ ン ク シ ョ ン ま たは矩形チ ャ ン ク デ ィ ス ク
リ プ タ ーのサブ フ ァ ン ク シ ョ ンの値に加算する と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではそのサブ フ ァ ン ク
シ ョ ンのオ フ セ ッ ト 要素の値が レ コ ー ド の末尾の次のバ イ ト と な る よ う に計算 さ れます。
140
Update Chunk (53)
メ モ こ のバ イ ア ス は、 ネ ク ス ト イ ン レ コ ー ド バ イ ア ス ま たは切 り 捨てサブ フ ァ ン ク シ ョ ン と 共に使用 し な
いで く だ さ い。
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で、 こ のバ イ ア ス を ラ ン ダ ム チ ャ ン ク デ ィ ス ク リ プ タ ー と 組み合わせて
使用 し 、 1 回のオペレーシ ョ ンで複数のチ ャ ン ク を更新す る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス では前
のチ ャ ン ク の追加後の レ コ ー ド の長 さ に基づいて、 先頭のチ ャ ン ク を除 く すべてのチ ャ ン ク に対す る オ フ セ ッ ト
が自動的に計算 さ れます。
結果
Update Chunk オペ レ ーシ ョ ン が正常に終了 し た場合、 ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス ではデー タ バ ッ
フ ァ ーのチ ャ ン ク デ ィ ス ク リ プ タ ー部分でチ ャ ン ク と し て識別 さ れた レ コ ー ド の部分が更新 さ れます。 チ ャ ン ク
を更新す る ための新 し いデー タ は、直接チ ャ ン ク デ ィ ス ク リ プ タ ーのサブ フ ァ ン ク シ ョ ン を使用 し た場合はチ ャ
ン ク デ ィ ス ク リ プ タ ー自体に、間接チ ャ ン ク デ ィ ス ク リ プ タ ーのサブ フ ァ ン ク シ ョ ン を使用 し た場合は、各チ ャ
ン ク のユーザー デー タ 要素の 32 ビ ッ ト ポ イ ン タ ーで指定 さ れた メ モ リ ア ド レ ス に格納 さ れてい ます。 Update
Chunk オペレーシ ョ ンが完了す る と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ではキー値の変更を反映 し て キー イ
ンデ ッ ク ス が調整 さ れ、 必要に応 じ て キー バ ッ フ ァ ー パ ラ メ ー タ ーが更新 さ れます。
さ ら に、 アプ リ ケーシ ョ ンが更新す る レ コ ー ド に単一レ コ ー ド ロ ッ ク を設定 し てい る 場合は、 ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス では ロ ッ ク が解除 さ れます。 し か し 、 複数レ コ ー ド ロ ッ ク は Update Chunk オペレーシ ョ ン
を実行 し て も 解除 さ れません。
Update Chunk オペレーシ ョ ンが正常に実行 さ れなか っ た場合は、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら 次の
ス テー タ ス コ ー ド のいずれかが返 さ れます。
5
レ コ ー ド のキー フ ィ ール ド に重複す る キー値があ り ます。
8
現在のポジシ ョ ンが不正です。
10
キー フ ィ ール ド は変更で き ません。
22
デー タ バ ッ フ ァ ー パ ラ メ ー タ ーが短すぎ ます。
58
圧縮バ ッ フ ァ ー長が短すぎ ます。
62
デ ィ ス ク リ プ タ ーが不正です。
80
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で レ コ ー ド レベルの矛盾が発生 し ま し た。
97
デー タ バ ッ フ ァ ーが小 さ すぎ ます。
103
チ ャ ン ク オ フ セ ッ ト が大 き すぎ ます。
106
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス は、 Get Next Chunk オペレーシ ョ ン を実行で き ません。
ポジ シ ョ ニ ング
Update Chunk オペレーシ ョ ン を実行 し て も 、 物理カ レ ン シーお よ び現在の論理レ コ ー ド は変わ り ません。
メ モ Get オペレーシ ョ ンに続けて Update Chunk オペレーシ ョ ン を実行す る 場合は、直前の Get オペレーシ ョ
ンで指定 し た キー番号 と 異な る 値を Update Chunk オペレーシ ョ ンに渡 さ ないで く だ さ い。異な る キー番号を
渡す と 、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て確立 さ れ る ポジシ ョ ニ ン グが予測で き ない も のにな
り ます。
141
Btrieve API オペ レーシ ョ ン
Version (26)
ク ラ イ ア ン ト ア プ リ ケーシ ョ ン の場合、 Version オペ レ ーシ ョ ン (B_VERSION) では、 ロ ーカルの ト ラ ン ザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス のバージ ョ ンお よ び、 適用可能であれば、 リ ク エ ス タ ーのバージ ョ ン が返 さ れ ます。
ま た、ク ラ イ ア ン ト アプ リ ケーシ ョ ンがサーバー上の フ ァ イ ルを開いていた り 、キー バ ッ フ ァ ーにサーバー フ ァ
イ ル パ ス名を指定 し てい る と 、 そのサーバー上で実行 さ れてい る ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス のバー
ジ ョ ン も 返 さ れます。サーバーベース アプ リ ケーシ ョ ンの場合は、サーバーベース ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス のバージ ョ ンお よ び リ ビ ジ ョ ン番号が返 さ れます。
パラ メ ー タ ー
オペレーション
コード
送り値
ポジション
ブロック
データ バッ データ バッ
ファー
ファー長
○
戻り値
キー バッ
ファー
キー番号
○
○
○
前提条件
Version オペレーシ ョ ン を発行す る には、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ま たは リ ク エ ス タ ーの ど ち ら か
が ロ ー ド さ れてい る こ と が必要です。
手順
1
オペレーシ ョ ン コ ー ド に 26 を設定 し ます。
2
デー タ バ ッ フ ァ ー長に少な く と も 15 を設定 し ます (詳細については、 表 51 を参照 し て く だ さ い)。
3
サーバーベース ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス のバージ ョ ン番号を取得する には、そのサーバー上で
開いてい る フ ァ イ ルの有効なポジシ ョ ン ブ ロ ッ ク を指定す る か、キー バ ッ フ ァ ーに有効なパ ス名を指定す る
必要があ り ます。
結果
ワ ー ク ス テーシ ョ ン ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス と ク ラ イ ア ン ト リ ク エ ス タ ーの両方にア ク セ ス で き
る よ う に環境設定 さ れてお り 、 Version オペレーシ ョ ンが正常に終了 し た場合は、 ワ ー ク ス テーシ ョ ン ト ラ ンザ
ク シ ョ ナル イ ン タ ーフ ェ イ ス、ク ラ イ ア ン ト リ ク エ ス タ ー、お よ びサーバーベース ト ラ ンザ ク シ ョ ナル イ ン タ ー
フ ェ イ ス のバージ ョ ン情報が返 さ れます。
こ の場合、 15 バ イ ト のデー タ バ ッ フ ァ ー と デー タ バ ッ フ ァ ー長を指定 し て く だ さ い。
ク ラ イ ア ン ト リ ク エ ス タ ー と ワー ク ス テーシ ョ ン ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス の両方が ロ ー ド さ れて
お り 、 デー タ バ ッ フ ァ ー と デー タ バ ッ フ ァ ー長に 5 バ イ ト し か指定 し ていない と 、 ク ラ イ ア ン ト リ ク エ ス タ ー
のバージ ョ ン情報だけが返 さ れます。
10 バ イ ト し か指定 し て し ない場合は、 ク ラ イ ア ン ト リ ク エ ス タ ー と ロ ーカル ワー ク ス テーシ ョ ン エン ジ ンが返
さ れます。
デー タ バ ッ フ ァ ー と デー タ バ ッ フ ァ ー長に 15 バ イ ト を指定 し た場合は、 ク ラ イ ア ン ト リ ク エ ス タ ー、 ロ ーカル
ワ ー ク ス テーシ ョ ン エン ジ ン、 お よ びサーバー エン ジ ン (適用可能な場合) が返 さ れます。
142
Version (26)
デー タ バ ッ フ ァ ーには、 表 51 の形式に従っ て、 Version オペレーシ ョ ンか ら ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ
ス ま たは リ ク エ ス タ ーご と に 5 バ イ ト のバージ ョ ン ブ ロ ッ ク が返 さ れます。 各ブ ロ ッ ク の 5 バ イ ト 目に よ り 、 そ
れぞれの ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス ま たは リ ク エ ス タ ーを識別で き ます。
表 51 バージ ョ ン ブ ロ ッ ク
要素
長さ (バイト単位)
説明
バージ ョ ン番号
2
Pervasive PSQL のバージ ョ ン番号。
リ ビ ジ ョ ン番号
2
Pervasive PSQL の リ ビ ジ ョ ン番号。
リ クエス ターまた
はエン ジ ンの種類
1
エン ジ ン ま たは リ ク エ ス タ ーの種類は、 次のいずれかにな り ます。
‹ 9 (0x39) は ワー ク グループ デー タ ベース エ ン ジ ン、 ま たは ワー ク グルー
プの認証モー ド を使用 し てい る Linux デー タ ベース サーバー
‹ D (0x44) は DOS ワー ク ス テーシ ョ ン
‹ N (0x4E) は ク ラ イ ア ン ト リ ク エ ス タ ー
‹ T (0x54) は Windows サーバー エ ン ジ ン
‹ U (0x55) は PAM ま たは BTPASSWD 認証を使用 し てい る Linux サーバー
た と えば、 Pervasive.SQL v8.10 for Windows を実行 し てい る 場合は、 デー タ バ ッ フ ァ ーに次の よ う な 16 進の値が
返 さ れます。
08 00 0A 00 54
こ れ ら の値を 10 進に変換す る と 、 バージ ョ ン番号は 8 で、 リ ビ ジ ョ ン番号は 10 にな り ます。 Version オペレー
シ ョ ンが正常に実行 さ れなか っ た場合、ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス か ら は 0 以外の ス テー タ ス コ ー ド
が返 さ れます。
ポジ シ ョ ニ ング
Version オペレーシ ョ ンは、 ポジシ ョ ニ ン グに ま っ た く 影響 し ません。
143
Btrieve API オペ レーシ ョ ン
144
Btrieve オペ レーシ ョ ンのク ィ ッ ク
リ フ ァ レンス
A
本付録では、 オペレーシ ョ ン コ ー ド の番号順に Btrieve API オペレーシ ョ ン を要
約 し ます。
Btrieve API オペ レーシ ョ ン一覧
表 52 Btrieve API オペ レーシ ョ ンのク ィ ッ ク リ フ ァ レ ン ス
オペ レーシ ョ ン
コー ド
定数
説明
Open
0
B_OPEN
フ ァ イ ルを ア ク セ ス可能な状態に し ます。
Close
1
B_CLOSE
フ ァ イ ルを ア ク セ ス可能な状態か ら 解放 し ます。
Insert
2
B_INSERT
フ ァ イ ルに新 し い レ コ ー ド を挿入 し ます。
Update
3
B_UPDATE
現在の レ コ ー ド を更新 し ます。
Delete
4
B_DELETE
フ ァ イ ルか ら 現在の レ コ ー ド を削除 し ます。
Get Equal
5
B_GET_EQUAL
指定 さ れた キー値に等 し いキー値を持つレ コ ー ド を返 し
ます。
Get Next
6
B_GET_NEXT
イ ンデ ッ ク ス パス で現在の レ コ ー ド の次にあ る レ コ ー ド
を返 し ます。
Get Previous
7
B_GET_PREVIOUS
イ ンデ ッ ク ス パス で現在の レ コ ー ド の前にあ る レ コ ー ド
を返 し ます。
Get Greater Than
8
B_GET_GT
指定 さ れた キー値 よ り 大 き いキー値を持つレ コ ー ド を返
し ます。
Get Greater Than or
Equal
9
B_GET_GE
指定 さ れた キー値 よ り 大 き い ま たは等 し いキー値を持つ
レ コ ー ド を返 し ます。
Get Less Than
10
B_GET_LT
指定 さ れた キー値 よ り 小 さ いキー値を持つレ コ ー ド を返
し ます。
Get Less Than or Equal
11
B_GET_LE
指定 さ れた キー値 よ り 小 さ い ま たは等 し いキー値を持つ
レ コ ー ド を返 し ます。
Get First
12
B_GET_FIRST
指定 さ れた イ ンデ ッ ク ス パ ス の先頭の レ コ ー ド を返 し ま
す。
Get Last
13
B_GET_LAST
指定 さ れた イ ンデ ッ ク ス パ ス の末尾の レ コ ー ド を返 し ま
す。
Create
14
B_CREATE
指定 さ れた特性を持つフ ァ イ ルを作成 し ます。
Stat
15
B_STAT
フ ァ イ ルお よ び イ ンデ ッ ク ス の特性 と レ コ ー ド の数を返
し ます。
Extend
16
B_EXTEND
デー タ フ ァ イ ル を 2 つ以上の論理デ ィ ス ク ド ラ イ ブに
分割 し ます。 こ のオペレーシ ョ ンは、 Btrieve 6.0 以降では
サポー ト さ れません。
145
Btrieve オペ レーシ ョ ンのク ィ ッ ク リ フ ァ レ ン ス
表 52 Btrieve API オペ レーシ ョ ンの ク ィ ッ ク リ フ ァ レ ン ス
オペ レーシ ョ ン
コー ド
定数
説明
Set Directory
17
B_SET_DIR
現在のデ ィ レ ク ト リ を指定 さ れたパ ス名に設定 し ます。
Get Directory
18
B_GET_DIR
指定 さ れた論理デ ィ ス ク ド ラ イ ブの現在のデ ィ レ ク ト リ
を返 し ます。
Begin Transaction
19
1019
B_BEGIN_TRAN
論理的に関連 し てい る 一連のオペレーシ ョ ン の開始を指
定 し ます。 オペレーシ ョ ン 19 は排他 ト ラ ンザ ク シ ョ ン を
開始 し ます。 オペレーシ ョ ン 1019 は並行 ト ラ ンザ ク シ ョ
ン を開始 し ます。
End Transaction
20
B_END_TRAN
論理的に関連 し てい る 一連のオペレーシ ョ ン の終了を指
定 し ます。
Abort Transaction
21
B_ABORT_TRAN
完了 し な か っ た ト ラ ン ザ ク シ ョ ン 中に実行 さ れ た オペ
レーシ ョ ン を取 り 消 し ます。
Get Position
22
B_GET_POSITION
現在の レ コ ー ド の位置を返 し ます。
Get Direct/Chunk
23
B_GET_DIRECT
指定 さ れた位置に あ る レ コ ー ド の指定部分 (チ ャ ン ク )
か ら デー タ を返 し ます。
Get Direct/Record
23
B_GET_DIRECT
指定 さ れた位置にあ る レ コ ー ド を返 し ます。
Step Next
24
B_STEP_NEXT
物理的に現在の レ コ ー ド の次に あ る レ コ ー ド を 返 し ま
す。
Stop
25
B_STOP
ワ ー ク ス テーシ ョ ン ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ
イ ス を終了 し ます (サーバー ベース の ト ラ ンザ ク シ ョ ナ
ル イ ン タ ーフ ェ イ ス では使用で き ません)。
Version
26
B_VERSION
ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス のバージ ョ ン番号
を返 し ます。
Unlock
27
B_UNLOCK
レ コ ー ド の ロ ッ ク を解除 し ます。
Reset
28
B_RESET
ク ラ イ ア ン ト に よ っ て保持 さ れてい る すべての リ ソ ー ス
を解放 し ます。
Set Owner
29
B_SET_OWNER
フ ァ イ ルにオーナー ネーム を割 り 当て ます。
Clear Owner
30
B_CLEAR_OWNER
フ ァ イ ルか ら オーナー ネーム を削除 し ます。
Create Index
31
B_BUILD_INDEX
イ ンデ ッ ク ス を作成 し ます。
Drop Index
32
B_DROP_INDEX
イ ンデ ッ ク ス を削除 し ます。
Step First
33
B_STEP_FIRST
フ ァ イ ル内で物理的な先頭位置にあ る レ コ ー ド を返 し ま
す。
Step Last
34
B_STEP_LAST
フ ァ イ ル内で物理的な末尾位置にあ る レ コ ー ド を返 し ま
す。
Step Previous
35
B_STEP_PREVIOUS
物理的に現在の レ コ ー ド の前に あ る レ コ ー ド を 返 し ま
す。
Get Next Extended
36
B_GET_NEXT_EXTENDED
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の次にあ る 1 つま た
は複数の レ コ ー ド を返 し ま す。 フ ィ ル タ ー条件を適用で
き ます。
Get Previous Extended
37
B_GET_PREV_EXTENDED
イ ンデ ッ ク ス パ ス で現在の レ コ ー ド の前にあ る 1 つま た
は複数の レ コ ー ド を返 し ま す。 フ ィ ル タ ー条件を適用で
き ます。
146
表 52 Btrieve API オペ レーシ ョ ンの ク ィ ッ ク リ フ ァ レ ン ス
オペ レーシ ョ ン
コー ド
定数
説明
Step Next Extended
38
B_STEP_NEXT_EXT
物理的に現在の レ コ ー ド の次の位置か ら 1 つま たは複数
の連続す る レ コ ー ド を返 し ま す。 フ ィ ル タ ー条件を適用
で き ます。
Step Previous Extended
39
B_STEP_PREVIOUS_EXT
物理的に現在の レ コ ー ド の前の位置か ら 1 つま たは複数
の連続す る レ コ ー ド を返 し ま す。 フ ィ ル タ ー条件を適用
で き ます。
Insert Extended
40
B_EXT_INSERT
フ ァ イ ルに 1 つま たは複数の レ コ ー ド を挿入 し ます。
Continuous Operation
42
B_CONTINUOUS
ア ク テ ィ ブ な ト ラ ン ザ ク シ ョ ナル イ ン タ ー フ ェ イ ス
フ ァ イ ルを閉 じ ずに、 シ ス テ ム バ ッ ク ア ッ プを実行で き
る よ う に し ます。
Get By Percentage
44
B_SEEK_PERCENT
指定 さ れたパーセ ン テージ値に よ っ て示 さ れ る 位置の最
も 近 く にあ る レ コ ー ド を返 し ます。
Find Percentage
45
B_GET_PERCENT
フ ァ イ ル内におけ る 現在の レ コ ー ド 位置に基づいたパー
セ ン テージ値を返 し ます。
Get Key
+50
KEY_BIAS
実際の レ コ ー ド を 返す こ と な く 、 フ ァ イ ル内に特定の
キー値が存在す る か ど う かを検出 し ます。
Update Chunk
53
B_CHUNK_UPDATE
現在の レ コ ー ド の指定 さ れた部分 (チ ャ ン ク ) を更新 し
ます。 こ のオペレーシ ョ ン では、 レ コ ー ド にデー タ を追
加 し た り 、 レ コ ー ド を切 り 詰め る こ と も で き ます。
Stat Extended
65
B_EXTENDED_STAT
拡張 フ ァ イ ル の 構成要素 の パ ス と フ ァ イ ル名 を 返 し 、
フ ァ イ ルがシ ス テ ム定義の ロ グ キーを使用 し てい る か ど
う かを報告 し ます。
単一レ コ ー ド の ウ ェ
イ ト ロック
-100
S_WAIT_LOCK
一度に 1 つの レ コ ー ド だけ を ロ ッ ク し ま す。 レ コ ー ド が
既に ロ ッ ク さ れ て い る 場合、 ト ラ ン ザ ク シ ョ ナル イ ン
タ ーフ ェ イ ス ではオペレーシ ョ ンが再試行 さ れます。
単一レ コ ー ド の ノ ー
ウェイ ト ロッ ク
-200
S_NOWAIT_LOCK
一度に 1 つの レ コ ー ド だけ を ロ ッ ク し ま す。 レ コ ー ド が
既に ロ ッ ク さ れ て い る 場合、 ト ラ ン ザ ク シ ョ ナル イ ン
タ ー フ ェ イ ス か ら エ ラ ー ス テー タ ス コ ー ド が返 さ れ ま
す。
複数レ コ ー ド の ウ ェ
イ ト ロック
-300
M_WAIT_LOCK
同一 フ ァ イ ルの複数の レ コ ー ド を 並行的に ロ ッ ク し ま
す。 レ コ ー ド が既に ロ ッ ク さ れてい る 場合、 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス ではオペレーシ ョ ンが再試行
さ れます。
複数レ コ ー ド の ノ ー
ウェイ ト ロッ ク
-400
M_NOWAIT_LOCK
同一 フ ァ イ ルの複数の レ コ ー ド を 並行的に ロ ッ ク し ま
す。 レ コ ー ド が既に ロ ッ ク さ れてい る 場合、 ト ラ ンザ ク
シ ョ ナル イ ン タ ーフ ェ イ ス か ら エ ラ ー ス テー タ ス コ ー
ド が返 さ れます。
ノ ーウ ェ イ ト ページ
ロック
-500
NOWRITE_WAIT
並行 ト ラ ンザ ク シ ョ ン で、 変更 し よ う と し たページがア
ク テ ィ ブな別の並行 ト ラ ンザ ク シ ョ ン に よ っ て既に変更
さ れてい る 場合、 ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス
に ウ ェ イ ト し な い よ う に指示 し ま す。 こ のバ イ ア ス は、
ど の レ コ ー ド ロ ッ ク バ イ ア ス (+100、+200、+300、+400)
と で も 組み合わせ る こ と がで き ます。
147
Btrieve オペ レーシ ョ ンのク ィ ッ ク リ フ ァ レ ン ス
148