vbman manual

VBMan Controls for Btrieve
Programming manual
Version 3.30
目次
目次 .............................................................................................................2
製品概要........................................................................................................8
はじめに .......................................................................................................8
システムの構造について ...............................................................................9
MICROSOFT .NET対応について ..................................................................9
対応言語について.......................................................................................10
VBMANツール・ボックス .............................................................................10
VBMAN DDFビルダー ..............................................................................11
BTRIEVEデータ型について..........................................................................11
データ・アクセス・メソッド/関数 .....................................................................12
使用権........................................................................................................12
ユーザー・サポート......................................................................................13
保証規定 ....................................................................................................15
販売元........................................................................................................16
開発元、ユーザーサポート ..........................................................................16
インストール .................................................................................................18
システム条件 ..............................................................................................18
コピープロテクト・ハードウェアのインストール ...............................................18
センチネル・ハードウェアのインストール ...................................................19
USBセンチネルの設置................................................................................... 19
パラレルポート接続センチネルの設置 ............................................................. 19
センチネル・ドライバーのインストール ......................................................20
センチネル・ドライバーの更新について ............................................................ 21
VBMAN CONTROLS FOR BTRIEVEのインストール .....................................21
インストールされるファイルについて ............................................................22
添付のBTRIEVE 6.15 ワークステーションエンジンについて .........................24
システム設定ファイル..................................................................................25
VBMAN.INIファイル..............................................................................25
Btrieveエンジンの設定 .................................................................................. 26
Pervasive.SQL対応について......................................................................... 26
チュートリアル ..............................................................................................28
BTRIEVEデータベースの定義......................................................................28
概要........................................................................................................28
VBMan DDFビルダーによるレコード定義..............................................28
Visual C# .NETでデータ参照フォームを作成 .......................................31
Visual Basicでデータ入力フォームを作成..............................................35
サンプルプログラムについて .........................................................................42
2
.NET用サンプルについて...........................................................................42
VISUAL BASIC 6.0 用サンプルプログラムについて .....................................43
ASP用サンプルプログラムについて ............................................................44
コンパチビリティ............................................................................................45
VISUAL BASIC.NETへの移行 ....................................................................46
VBMAN ACTIVEX CONTROL FOR BTRIEVE バージョン 3.Xからの移行....46
VBMAN FOR BTRIEVE/OCX32 バージョン 2.0 からの移行........................46
変換ツール..............................................................................................47
手動によるフォーム変換 ..........................................................................47
VBMAN FOR BTRIEVE/VBX バージョン 1.Xからの移行.............................49
フォームの変換 .......................................................................................49
データアクセス関数の移行 ......................................................................50
VBMan DDFビルダーの機能................................................................52
カスタム・コントロール・リファレンス ................................................................53
データベース・コントロール ......................................................................53
ボタン・コントロール ................................................................................55
エディット・コントロール............................................................................57
スクロール・コントロール .........................................................................58
チェック・ボックス・コントロール ................................................................59
オプション・ボタン・コントロール ...............................................................60
リスト・ボックス・コントロール ...................................................................61
コンボ・ボックス・コントロール ..................................................................63
ピクチャー・コントロール ..........................................................................65
拡張リスト・ボックス・コントロール ............................................................67
拡張コンボ・ボックス・コントロール ...........................................................70
グリッド・コントロール ..............................................................................73
カスタム・プロパティ・リファレンス ...................................................................76
Abort ............................................................................................................ 76
AlignFixedCells ........................................................................................... 76
AllOpen ........................................................................................................ 77
AllowDelete.................................................................................................. 77
AllowUpdate ................................................................................................ 78
AllowUserResizing ...................................................................................... 78
AutoFirst...................................................................................................... 78
BlobPath ...................................................................................................... 79
CacheDDF.................................................................................................... 80
CellMaxLength ............................................................................................ 80
ClearControlData ........................................................................................ 80
ConfirmMsg ................................................................................................. 81
DbCompareCase .......................................................................................... 81
DbConditions ............................................................................................... 82
3
DbDelimitChar ............................................................................................ 83
DbExOperation............................................................................................ 84
DbField ........................................................................................................ 84
DbIndex........................................................................................................ 85
DbLeaveResults........................................................................................... 85
DbListFields ................................................................................................ 86
DbListIndex ................................................................................................. 86
DbListSource ............................................................................................... 87
DbListTable ................................................................................................. 87
DbLocks ....................................................................................................... 88
DbMaxRecords............................................................................................. 88
DbOperation ................................................................................................ 89
DbPhysicalPosition...................................................................................... 90
DbResultID .................................................................................................. 90
DbSavePosition............................................................................................ 91
DbSkipRecords ............................................................................................ 91
DbSource...................................................................................................... 92
DbTable........................................................................................................ 92
DbTabStops ................................................................................................. 92
DbUpdateOption ......................................................................................... 93
DbValueFalse .............................................................................................. 93
DbValueIndetraminate ............................................................................... 94
DbValueTrue ............................................................................................... 94
DDFDir ........................................................................................................ 95
DistName ..................................................................................................... 95
Format ......................................................................................................... 95
FormatOption .............................................................................................. 96
FormatString ............................................................................................... 97
NumericMask .............................................................................................. 97
OpenMode .................................................................................................... 98
OwnerName................................................................................................. 98
ReadOnly ..................................................................................................... 99
SetColNames ............................................................................................... 99
SetColWidth................................................................................................. 99
SetRecordNumber ....................................................................................... 99
TextAlign ................................................................................................... 100
UpperCase ................................................................................................. 101
カスタム・イベント・リファレンス ....................................................................102
AfterColUpdate.......................................................................................... 102
AfterDelete................................................................................................. 102
AfterUpdate ............................................................................................... 102
BeforeColUpdate ....................................................................................... 103
BeforeDelete .............................................................................................. 103
BeforeUpdate............................................................................................. 104
BtrieveError .............................................................................................. 104
Format ....................................................................................................... 105
SetData ...................................................................................................... 106
カスタム・メソッド・リファレンス......................................................................108
DbAbortTransaction.................................................................................. 108
4
DbAccess .................................................................................................... 108
DbAccessByID ........................................................................................... 109
DbBeginConCurTransaction..................................................................... 111
DbBeginTransaction ................................................................................. 111
DbClearControlData ................................................................................. 111
DbClearFieldBuffer ................................................................................... 112
DbClose ...................................................................................................... 112
DbCloseAll ................................................................................................. 113
DbCreate.................................................................................................... 113
DbEndTransaction .................................................................................... 114
DbExAccess................................................................................................ 114
DbExFree ................................................................................................... 118
DbExGetFieldData .................................................................................... 118
DbExGetPosition ....................................................................................... 119
DbExSetMode ............................................................................................ 119
DbFindPercentage..................................................................................... 120
DbGetByPercentage .................................................................................. 121
DbGetDataSize .......................................................................................... 122
DbGetDataType......................................................................................... 122
DbGetDirect............................................................................................... 123
DbGetFieldData ........................................................................................ 124
DbGetFieldDataByID................................................................................ 125
DbGetFieldName....................................................................................... 125
DbGetIndexName...................................................................................... 126
DbGetModulePath..................................................................................... 126
DbGetNumOfField .................................................................................... 127
DbGetNumOfIndex ................................................................................... 128
DbGetNumOfRecords................................................................................ 128
DbGetNumOfTable ................................................................................... 129
DbGetPosBlock .......................................................................................... 129
DbGetPosition............................................................................................ 130
DbGetRecord.............................................................................................. 130
DbGetRecordImage ................................................................................... 131
DbGetRecordLength.................................................................................. 132
DbGetTableName ...................................................................................... 133
DbIsNull .................................................................................................... 133
DbIsOpen ................................................................................................... 134
DbLoadDDF............................................................................................... 134
DbLogIn ..................................................................................................... 135
DbLogOut .................................................................................................. 135
DbOpen ...................................................................................................... 135
DbOpenAll ................................................................................................. 136
DbReset...................................................................................................... 137
DbSetFieldData ......................................................................................... 137
DbSetFieldDataByID ................................................................................ 138
DbSetFileName ......................................................................................... 139
DbSetLockBias .......................................................................................... 139
DbSetRecord .............................................................................................. 141
DbSetRecordImage.................................................................................... 142
DbTransferFromControl ........................................................................... 143
DbTransferToControl ................................................................................ 143
5
DbUnlock ................................................................................................... 144
バージョン 1.Xデータ・アクセス関数.............................................................145
DbAbortTransaction.................................................................................. 147
DbAccess .................................................................................................... 148
DbAttachControl ....................................................................................... 150
DbBeginTransaction ................................................................................. 151
DbClearControlData ................................................................................. 152
DbClearFieldBuffer ................................................................................... 153
DbEndTransaction .................................................................................... 154
DbExAccess................................................................................................ 155
DbExFree ................................................................................................... 159
DbExGetFieldData .................................................................................... 160
DbExGetPosition ....................................................................................... 161
DbExSetFormattedString ......................................................................... 162
DbFindPercentage..................................................................................... 163
DbGetByPercentage .................................................................................. 164
DbGetDataSize .......................................................................................... 165
DbGetDataType......................................................................................... 166
DbGetDirect............................................................................................... 167
DbGetFieldData ........................................................................................ 168
DbGetFieldName....................................................................................... 169
DbGetPosition............................................................................................ 170
DbGetVersion ............................................................................................ 171
DbSetFieldData ......................................................................................... 172
DbSetFormattedString.............................................................................. 173
DbTransferFromControl ........................................................................... 174
DbTransferToControl ................................................................................ 175
DbUnlock ................................................................................................... 176
作成したアプリケーションの配布..................................................................177
DDFビルダー・リファレンス .........................................................................180
DDFビルダーの起動 ................................................................................180
新規DDFの作成 ......................................................................................180
フィールドの定義.......................................................................................182
インデックスの定義 ...................................................................................183
既存DDFの編集 ......................................................................................185
データ変換モードの動作について ..............................................................185
テーブルの搬入・搬出 ...............................................................................186
DBMAGICデータ辞書を搬入 ......................................................................186
VISUAL BASIC用フォームの生成 ..............................................................187
フィールドIDリストの生成 ..........................................................................187
システム・オプションについて.....................................................................188
APPENDIX ..............................................................................................193
A. MICROSOFT VISUAL STUDIO.NET 制約事項.....................................193
6
B. ACTIVE SERVER PAGESからの利用 ....................................................193
概要・制約事項 .....................................................................................193
ASPスクリプトの作成手順 .....................................................................194
C. FAQ – よくあるご質問 ........................................................................196
エラー・メッセージ .......................................................................................205
VBMANエラー・コード................................................................................214
DDFビルダー・メッセージ............................................................................217
BTRIEVEステータス・コード.......................................................................227
VBMAN CONTROLS FOR BTRIEVE 調査依頼フォーム ....................231
7
製品概要
はじめに
VBMan Controls for Btrieve ver 3.30をお買い上げくださりまことにありがとう
ございます。当製品はPervasive Software社のBtrieveデータ・ベース・エンジン
をアプリケーションから容易にハイ・パフォーマンスで利用できるように設計され
たCOMコンポーネントです。(以下、VBMan Controls for BtrieveをVBManと記
述する場合があります)VBManは13個のカスタム・コントロールと日本語DDFビ
ルダー、バージョン1.xコンパチブル・データ・アクセス関数で構成されます。当カ
スタムコンポーネントはVisual Basicや.NET Windows Formsの標準のコントロ
ールにBtrieveデータベース・アクセス機能を追加したコントロールです。VBMan
におけるアプリケーションの開発ではのDDF定義が終了後、フォームにVBMan
カスタム・コントロールを配置し、必要なプロパティを選択するだけで、実行可能
なBtrieveアプリケーションが完成します。簡単なアプリケーションであれば、1行
もコードせずにプログラムを完成することも可能です。
以下はVBMan Controls for Btrieve ver 3.30で追加された機能です。
①
②
③
④
Microsoft Visual Studio .NET 2005に対応。
Pervasive.SQL V8 セキュアデータベース対応。
Pervasive.SQL V8.6 SP3対応。
ATL version 7.1を採用。
以下はVBMan Controls for Btrieve ver 3.20で追加された機能です。
①
②
③
④
⑤
Microsoft .NET framework のWindows Forms対応
Microsoft Visual Studio .NET 開発環境に対応。
BIT型,8byte Integer型データに対応。
ATL version 7.0を採用。
USB Sentinelのサポート。
以下は従来からのVBMan Controls for Btrieve の特徴です。
①
②
③
ATLで作成された軽量コントロールです。MFC等サイズが大きいランタイム
への依存はありません。イントラネットでの配布が簡単になりました。
アパートメント・スレッド形式をサポート。サーバー・コンポーネントとして利
用可能。
Pervasive.SQL 2000i (SP3)対応。
8
④
⑤
⑥
⑦
DDFに準拠したBtrieve呼び出しが簡単に記述できます。DDFに準拠したア
プリケーションは他のアプリケーションとDDFを介してデータ交換が可能で
す。
DDFキャッシングを実現。複数コントロールが同じDDFを参照している場合
はDDFをロードしないのでパフォーマンスが向上します。
豊富なコントロール・プロパティにより、アプリケーションの開発工程を短縮
できます。
dbMagicのデータ辞書からのDDF定義移行機能。
システムの構造について
VBManは マイクロソフト社のCOM/ActiveX Control仕様に沿って作成されてい
ます。カスタム・コントロールとしては、グリッド・コントロール以外はWindowsの標
準コントロールをサブ・クラスした形で実現しています。ランタイム関数、クラス・
ライブラリはマイクロソフトVisual C++ .NET ATL version 7.1を使っています。
以下はシステム構造の概略図です。
COM コ ン ト ロ ー ル サ ポ ー ト 言 語
( V B .N E T C # な ど )
V B M a n C o n tr o ls f o r B tr ie v e
3 2 b it B t r ie v e エ ン ジ ン
Microsoft .NET 対応について
当 version 3.30 から Microsoft Visual Studio.NET2005 での Windows Forms
による開発環境のサポートいたします。 Microsoft Visual Studio.NET/ .NET f
ramework では従来の Visual Basic による ActiveX Control 利用では動作可能
であったメソッドやプロパティで動作しなくなったものがあります。詳細は Append
ix-E に記載しましたのでご参照ください。
Microsoft .NET framework ではウェブアプリケーションの開発を ASP.NET で行
えます。ASP.NET での開発は当製品のような COM コンポーネントを利用する
のではなく、.NET framework 形式のマネージドライブラリを使って開発する方
法をお勧めしています。弊社製品で Pervasive.SQL/Btrieve にアクセスすること
の出来る製品としては Btrieve Classes for .NET がございますので、こちらを
9
利用した開発お勧めいたします。
対応言語について
2005 年 11 月現在、COM/ActiveX Control をサポートする言語製品は多数市
場に出回っていますが、各言語で COM/ActiveX Control のサポートは同一で
はなく、動作の違いが確認されています。弊社コントロールでできるだけ多くの
言語に対応するように努力はしておりますが、言語製品は他社から供給される
ものであり、弊社一社の力では対応できない場合ございますのであらかじめご
了承ください。
動作を確認できたホスト言語、制約事項などは弊社 web サーバーにて情報を
公開いたします。また、販社システム・ラボでも情報を提供いたします。
VBMan ツール・ボックス
VBMan をインストールすると、以下のカスタム・コントロールが言語アプリケーシ
ョンのツール・ボックスに追加されます。これらのコントロールをフォーム、ダイア
ログ等に配置することにより、簡単に Btrieve にアクセス可能なアプリケーション
を作成可能です。
データベース
編集テキスト
コマンド・ボタン
水平スクロール
垂直スクロール
チェック・ボックス
オプション・ボタン
リストボックス
このコントロールをフォームに置くことにより、Btriev
eデータベース・アクセスが可能となります。最初に
フォームに設定します。
Btrieveのフィールドと文字データの交換をします。
日付、時間、金額は自動フォーマット入力が可能で
す。
Btrieveのオペレーション(追加、削除など)を実行し
ます。
Btrieveデータベースのレコードの移動に使用しま
す。
Btrieveデータベースのレコードの移動に使用しま
す。
論理型データを設定するチェック・ボックスです。
論理型、整数型のデータを設定します。
Btrieveデータベースの指定フィールドのリストを表
示、選択します。
10
コンボ・ボックス
ピクチャー
拡張リストボックス
拡張コンボボックス
グリッド
Btrieveデータベースの指定フィールドのリストを表
示、選択します。
Btrieveデータベースの情報により、ビットマップ、メ
タファイル、アイコンを表示します。
BtrieveのExtendedオペレーションに対応したリスト
ボックスです。
BtrieveのExtendedオペレーションに対応したコンボ
ボックスです。
BtrieveのExtendedオペレーションでグリッドにデー
タを表示します。
VBMan DDF ビルダー
VBMan Controls for BtrieveにはBtrieve 6.15等、DDF編集環境をお持ちでな
いお客様のために、VBMan DDF ビルダーを添付しています。VBMan DDFビ
ルダーはBtrieve 6.15当時のBtrieveデータ型のみサポートする仕様になります
ので、Pervasive.SQLをお使いのお客様はDDFの編集、データベース入力にはP
ervasive Control Centerをお使いください。
Btrieve データ型について
VBMan Controls for Btrieve は Btrieve の拡張データ・タイプとして定義される
以下のデータ・タイプをサポートします。データ型の内部形式は Pervasive SDK
マニュアルや Btrieve プログラマーズ・マニュアルを参照してください。
データ型
String
特記事項
Integer
Float
Date
Time
Decimal
Money
サイズは1,2,4,8バイトをサポート
サイズは4,8バイトをサポート
yyyy/mm/ddまたはyy/mm/ddフォーマット
Hh:mm:ssフォーマット
Logical
Numeric
Numericsa
内部表現はDECIMALと同じ。VBManEditにFormat文字
列を指定しない場合に金額表示形式の自動フォーマッ
ト
1バイト型をサポート
11
Numericsts
Bfloat
Lstring
Zstring
Unsigned Binary
指定するサイズは先頭1バイトの長さを含む
指定するサイズは終端のヌル文字を含む
Auto Increment
Note
LVar
Bit
Currency
Blob
3.3000バイトまで。デリミタはヌルをサポート
3.3000バイトまで
Long varcharに対応。
データ・アクセス・メソッド/関数
アプリケーション作成において、たとえば集計処理などを記述する際には、VBM
an for Btrieve/VBX ver 1.xではDDFにしたがって、容易にBtrieveにアクセス
可能とする、データ・アクセス関数が用意されていました。VBMan Controls for
Btrieveでは、これらの関数はデータ・ベース・コントロールのメソッドとして提供さ
れます。またバージョン1.5までは関数のパラメータはすべて整数のIDでしたが、
32Bit環境で文字列領域に余裕があると判断し、これらのパラメータはすべて文
字列で指定可能となりました。以下はVBMan Controls for BtrieveをVisual Ba
sicから利用する際のコード例です。
Dim Code$, rc As Integer
Code$ = Text1.Text
With VBMBtr1
Call .DbSetFieldData(“商品”,”コード”, Code$)
rc = .DbAccess( BTR_GET_EQUAL, “商品”, “コード”)
If rc <> 0 Then
MsgBox “Btrieveエラー “ & CStr(rc)
Stop
End If
End With
使用権
12
使用権とは、お客様が1台のパーソナル・コンピュータ・システムでVBMan Cont
rols for Btrieveの開発環境を利用することが出来る権利です。
VBMan Controls for Btrieveの使用権はいかなる方法によっても第三者
に譲渡および貸与することは出来ません。
使用権はVBMan Controls for Btrieveのディスケット・パッケージを開梱し
たときに発効します。一度開梱した商品の返品には応じることはできませ
ん。
ランタイム・モジュールのライセンス料は無料です。お客様のアプリケーシ
ョンと一緒に配布可能なファイルは当マニュアルの「インストール」にあるモ
ジュール一覧をご覧ください。
当製品の利用によるお客様の損失等に関してましては弊社および、販社
システム・ラボは一切責任を負いませんのでご了承ください。
使用権は以下のいずれかの事由が起こった場合に消滅します。
1.
2.
3.
4.
5.
当ソフトウェアの不正な使用により弊社に著しい損害を与える場合。
購入者が使用規定に違反した場合。
プログラム・ディスク、印刷物などを使用権の範囲外の目的で複製し
た場合。
購入者がVBMan Controls for Btrieveに同封されているユーザー登
録書を返送しない場合。
当製品をリバース・エンジニアリングの対象として利用した場合。
ユーザー・サポート
ユーザー登録
当製品には、ユーザー登録用紙を添付しています。お買い上げのあと、で
きるだけ早い機会に、必要事項をご記入の上、販売会社システムラボまで
ファックスにてご返送Iいただくか、システムラボのWebSiteにてご登録をお
願いいたします。(http://www.systemlab.co.jp/vbman/productvb7.htm)ユ
ーザー登録が行われていないと、ユーザーサポートが受けられない場合
がございます。
質問のご担当について
基本的にユーザー登録された方以外のユーザー・サポートへのお問い合
わせにはご返答することは出来ません。管理者の方のお名前でユーザー
登録されている場合には開発者の方1名様のみサポートの対象になりま
す。1ユーザー版をご利用のお客様で複数のお名前の連名でのご質問を
される場合がありますが、そのような場合は不正コピー使用とみなし、サポ
ートを打ち切らせていただく場合もございますので、あらかじめご了承くだ
さい。
13
お問い合わせの方法
当製品につきましては、製品の性格上複雑なやりとりになることが多く、記
録を残すためにも、電話によるユーザーサポートはいたしておりません。フ
ァックスまたは電子メールでのお問い合わせのみ承りますのであらかじめ
ご了承をお願いいたします。
ファックスでのお問いあわせの場合は巻末にあります「調査依頼書」に必
要事項をご記入の上、テクナレッジまでファックスで送信してください。電子
メールでのお問い合わせにつきましては、同様に巻末の「調査依頼書」に
あります項目を記入の上、メール・アドレスは[email protected]
宛てお送りください。
サポート期間について
無償サポートはユーザー登録終了後、最初のサポートを開始した日から9
0日間、3インシデントを上限といたします。ただし、キャンペーン期間にお
買い求めになったパッケージは追加パッケージをお買い求めになった場合
はサポート期間が別途設定される場合もあります。無償サポート終了後に
は有償サポート・サービスもご用意しております。詳細はお手数ですが販
社システム・ラボまでおたずねください。
サポート内容について
VBManのサポートでは弊社製品に関するお問い合わせに限定させていた
だきます。Pervasvei.SQL/Btrieveの使い方に関するお問い合わせは該当
サポートを提供している会社宛てお願いいたします。また、お客様が作成
されるアプリケーションの仕様に関する事や、一般的なプログラム・ロジック
等をご質問されてもユーザー・サポートではお答えすることはできません。
製品サポート情報の公開
テクナレッジでは当製品の最新サポート情報を弊社webサーバーにて公開
しています。(http://www.techknowledge.co.jp)また、最新バージョンのモジ
ュールがダウンロード可能になっております。サポートにお問い合わせに
なる前にぜひご参照ください。
サポートのパフォーマンスについて
簡単なお問い合わせであれば、1労働日以内を目標にサポートをしていま
す。調査を必要とするお問い合わせには、回答に時間がかかる場合があ
りますので、あらかじめご了承をお願いいたします。サポートには優先順位
はありませんが弊社内に到着順、情報の蓄積があるものから処理してい
きます。サポート用紙に「納期が近いので」とか「回答を早く」などの記述を
された場合でも受付順が変更されることはありませんのでご了承ください。
また回答スケジュール、調査スケジュール、返答期限等の具体的な日程
は当サポートでは提示出来ませんのでご了承ください。
依存するサポートが発生した場合について
マイクロソフトのMSDNやWeb Siteからの情報でご質問の回答が出来る場
合は無償サポートやご契約いただいた有償サポートの範囲で処理できる
のですが、マイクロソフト等の有償サポートを受けないとお客様に十分な情
報を提供できない場合があります。そのような場合はお客様に有償サポー
14
ト料金について、別途ご請求のご連絡をさせていただき、了承、入金後に
該当サポートを実施させいただきます。もちろん、別途料金のご請求を拒
否されて、サポートを中断する選択もお客様におきましては可能でござい
ます。
登録内容の変更について
転居などによるご住所や電話番号など登録内容に変更が生じた場合には、
郵送、ファックス、または電子メールにて、販売会社システム・ラボまでご連
絡をいだだきますようお願いいたします。なお、電話による口頭での連絡
変更は受けかねますので、よろしくお願いいたします。
併用される他社製品について
当社製品と併用される、他社製品の使用方等についてのご質問をお受け
することがあります。しかし、他社製品に関しましては、お答えできない場
合があります。他社製品につきましては、概当開発、販売会社または製品
サポート会社にご連絡ください。
保証規定
当製品、および付随する著作物に対して商品性及び特定の目的への適合性など
についての保証を含むいかなる保証もそれを明記するしないに関わらず提供され
ることはありません。
当製品の著作者及び、製造、配布に関わるいかなる者も、当ソフトウェアの不具
合によって発生する損害に対する責任は、それが直接的であるか間接的である
か、必然的であるか偶発的であるかに関わらず、負わないものとします。それは、
その損害の可能性について、開発会社に事前に知らされていた場合でも同様で
す。
15
販売元
(株)システムラボ
東京都杉並区上荻1丁目5番8号 直長ビル7F
電話:
03-5397-7511
FAX:
03-5397-7521
E-Mail:
[email protected]
Web:
www.systemlab.co.jp
開発元、ユーザーサポート
(株)テクナレッジ
東京都世田谷区駒沢2丁目16番1号 サンドービル 9F
電話:
03-3421-7621
FAX:
03-3421-6691
E-Mail:
[email protected]
Web:
www.techknowledge.co.jp
商標登録
本マニュアルに記載される商標、登録商標は該当会社の商標または登録商標
です。
16
17
インストール
VBMan Controls for Btrieve のインストールについて説明します。
システム条件
VBMan Controls for Btrieve を動作させるには、以下の前提となるソフトウェア
環境が必要となります。
①
②
③
Microsoft Windows95/98/ME または Windows NT 4.0 SP3 以降また
は Windows2000/XP/Windows 2003 Server
COM/ActiveX Control をサポートする 32Bit 言語製品
Btrieve バージョン 6.15 または Btrieve 7.0 または Pervasive.SQL 2000
i(SP3), Pervasive.SQL V8.6 SP3 まで。
32Bit Btrieve 環境に関しては VBMan には Btrieve for Windows 95/NT versi
on 6.15 のワークステーション・エンジンが添付されています。このエンジンは P
ervasive Software 社が2次配布を禁止しているため、VBMan をインストールし
たパソコンでは利用することは可能ですが、お客様の開発したアプリケーション
に添付して配布することは禁止されております。十分ご注意ください。お客様の
アプリケーションを配布する際 Btrieve を同梱したい場合は、Btrieve エンジンを
別途お買い求めになり配布件を取得する必要があります。
また、アプリケーション開発においては Btrieve についての詳しいプログラミング
情報が必要になる場合が想定されます。そのよう場合は Pervaisve.SQL 開発
キットのマニュアルやサンプル・プログラムをご参照ください。弊社ユーザー・サ
ポートに Btrieve 自体の使用法、プログラミングの詳細、マニュアルの内容等を
ご質問されても、返答いたしかねます。Btrieve や Pervasive.SQL に関してはエ
ージーテックのサポートをご利用ください。
コピープロテクト・ハードウェアのインストール
VBMan Controls for Btrieve を開発環境でご利用になるためにはセンチネルと
いう不正コピー防止用のハード・ウェアをインストールすることが必要になります。
大変お手数ですが以下の手順に従ってセンチネル本体とドライバー・ソフトウェ
アの設定をお願いいたします。尚、実行時にはセンチネル環境は不要となって
おります。
18
センチネル・ハードウェアのインストール
VBMan Controls for Btrieve を開発環境でご利用いただくためには、製品パッ
ケージに添付されるセンチネルを USB ポートまたはプリンタ・ケーブルの先に設
置することが必要になります。USB センチネル、または、パラレルポート接続セ
ンチネルのいずれかが、お客様の購入時のご選択に従ってパッケージに同梱さ
れておりますので、ご選択されたセンチネル設定方法に従って設置をお願いい
たします。
USB センチネルの設置
USB センチネルをパソコンの USB ポートに差し込んでください。別途ケーブル
類は必須ではありませんが、複数 USB ポートをお使いになる場合、パソコン側
の USB ポートに空きが無い場合はお手数ですが、USB ハブをご用意のうえ、U
SB センチネルの接続をお願いいたします。
当製品で利用できる USB センチネルは番号 SGS01266 0247-UM と印刷され
たシールが張ってあるものです。外観は以下のようになります。USB ポートに接
続すると緑の LED が点灯します。
パラレルポート接続センチネルの設置
以下の図を参照して、センチネルを接続してください。センチネルはパソコンとプ
リンター・ケーブルで接続されることは必須となりますが、プリンターとの接続は
必須ではありませんのでプリンターを接続しない場合にはセンチネルのオス側
は開放されたままでご利用ください。
当製品に添付されるセンチネルは番号 J4QJJCE-B36 が印刷されたシールが
張ってあるものです。外観は以下のようになります。
19
以下はパラレルポート接続センチネルの設置図(例)です。
プリンタ・ケーブルが別途必要になりますことをあらかじめご了承願います。
また、複数のセンチネルをお使いになるような場合、センチネルを入れ子にして
利用することが可能となっております。
センチネル・ドライバーのインストール
センチネルをオペレーティング・システムを経由して認識させるためにはデバイ
ス・ドライバーのインストールが必要になります。以下はインストールの手順です。
センチネルドライバーは USB センチネル、パラレルポートセンチネルで共通で
すので同じ手順でドライバーをインストールしていただくことになります。
①
②
③
④
VBMan インストール CD をドライブに挿入します。
Sentinel フォルダーに移動します。
RainbowSSD5.39.2.EXE をコマンド・プロンプトまたはエクスプローラーを起
動して実行します。
インストラクションに従ってインストーラーを作動させます。
20
USB センチネルの場合は一旦 USB センチネルの接続を解除するように求
められる場合がありますのでご注意ください。
センチネル・ドライバーの更新について
センチネルを認識しないパソコンにつきましては最初にセンチネル・ドライバー
のアップデートを試されることをお勧めいたします。弊社製品に添付されるセン
チネルのドライバーは最新バージョンを技研商事のウェブサイトから入手するこ
とが可能です。以下は技研商事の URL です。
http://www.giken.co.jp
VBMan Controls for Btrieve のインストール
VBMan Controls for Btrieve のインストールについて説明します。以下はイン
ストールの手順です。当バージョンから Btrieve 6.15 ワークステーションエンジ
ンは自動的にインストールされないように変更されましたのでご注意ください。B
trieve 6.15 ワークステーション・エンジンを使うには「添付の Btrieve 6.15 ワー
クステーションエンジンについて」をご参照ください。
①
②
③
④
⑤
すでに VBMan for Btrieve/VBX や VBMan for Btrieve/OCX32 がインス
トールされているパソコンに当製品をインストールする場合は、ウィンドウ
ズ・ディレクトリに VBMAN.INI ファイルが存在する場合があります。このファ
イルはお客様の既存の環境設定が保持されていますので、念の為に別デ
ィレクトリに退避してください。
VBMan ActiveX Control for Btrieve 3.X がすでにインストール済みの環
境にはインストールすることができませんので以前のバージョンをコントロ
ール・パネルのプログラムの追加と削除からアンインストールしてください。
Pervasive.SQL/Btrieveが利用可能な環境が準備できていない場合には、
インストールCDのルートにあるW32BTRV.DLLをパスの通っているフォルダ
ーにコピーします。 1
VBMan インストール CD ドライブに挿入します。
ルートにある setup.exe を起動します。
1
このステップを実行しない場合、インストールの最後に VBMBT330.OCX を登録
出来ないというエラーが発生します。W32BTRV.DLL は Btrieve API エントリが定
義してある DLL です。パスの通っているフォルダーで確実なのはシステムディレク
トリですが、後から Pervasive.SQL をインストールする場合には事前に削除してく
ださい。
21
⑥
⑦
⑧
setup.exe の質問に答えて OK ボタンをクリックすると自動的に導入が終了
します。すでに Btrieve の開発キット等をインストールされているパソコンの
場合は、カスタム・インストールを選択して、VBMan に添付される 32Bit の
ワークステーション・エンジンのインストールをしない方法も選択可能です。
インストールが正常に終了するとスタートメニューに VBMan のフォルダー
が作成されます。Windows NT の場合はプログラム・マネージャーに VBMa
n のプログラム・グループ作成されます。
readme.html ファイルにはマニュアルには記述されていない最新情報が記
述されています。インストールに関する最新情報が記述される場合もあり
ますので、必ずご一読ください。
Pervasive.SQL/Btrieve 環境が整っていない場合、インストールの最後に VBMB
T330.OCX コントロールのレジストリ登録が失敗することがあります。そのような
場合はパソコンが Btrieve API インターフェースがロードできないような設定に
なっていることが考えられます。
たとえば Pervasive.SQL をインストール済みの環境では c:\PVSW\BIN のような
モジュールへの PATH に設定されていない場合が考えられます。Pervasive.SQ
L/Btrieve のツール類は動作するが VBMan のインストールは失敗するような場
合は PATH のご確認をお願いします。
インストールされるファイルについて
Windows のディレクトリを<win>, Windows のシステム・ディレクトリを<sys>、VBM
an の導入ディレクトリを<instdir>とした場合に導入されるファイルの一覧を以下
に示します。デフォルトインストールでは<instdir>は c:\program files\TechKno
wledge\VBMan Controls for Btrieve となります。Windows NT/2000/XP の場
合、システム・ディレクトリは system32 ディレクトリとなりますのでご注意ください。
お客様の作成したアプリケーションに添付して配布するモジュールには「再配
布」のカラムに「可」と記述されるものに限定されます。それ以外のモジュールを
配布した場合、著作権法違反となりますので十分ご注意ください。
デフォルト・パスとファイル名
<sys>\vbmbt330.ocx
<sys>\ddfio330.dll
内訳
VBMan ActieX Control
s for Btrieve version
3.30 実行ファイル
DDFサポート32bit DLL
再配布
可
可
22
<sys>\dibapi32.dll
<sys>\msflxgrd.ocx
<instdir>\man\readme.txt
<instdir>\bin\vbmddf.exe
<instdir>\bin\vbmconv.exe
<instdir>\man\vbmbt330.hlp
<instdir>\man\vbmddf32.hlp
<indtdir>\samles\vb\vbmanv1.bas
<instdir>\samples\vbmddf32.exe
<instdir>\samples\regsvr32.exe
<instdir>\samples\vb\*.*
<instdir>\samples\asp\*.*
<instdir>\btr615\w32mkde.exe
<instdir>\btr615\w32mkrc.dll
<instdir>\btr615\wbtrv32.dll
<instdir>\btr615\wbtrcall.dll
<instdir>\btr615\wbtrvres.dll
<instdir>\btr615\wbtrv32.dll
<instdir>\btr615\w32mkset.hlp
マイクロソフト提供のグ
ラフィック関連DLL
マイクロソフトのグリッド・
コントロール。DDFビル
ダーが使用。
VBMan最新情報などの
記述
DDFビルダー
バージョンコンバーター
VBManヘルプファイル
VBMan DDF ビルダー
ヘルプファイル
VBManバージョン1.0コン
パチブル関数定義Visual
Basicソース
VBMan DDF ビルダー
実行ファイル
マイクロソフトのOLEカス
タム・コントロール登録プ
ログラム。 2
VB用サンプル・プログラ
ム
ASP用サンプル・プログ
ラム
Btrieveワークステーショ
ン・エンジン。
上記ファイルのリソース
DLL
BtrieveエンジンDLL
Btrieve 16bit実行モジュ
ール
上記ファイルのリソース
DLL。
Btrieve API 32bitインタ
ーフェース
Btrieve設定プログラム・
ヘルプ
可
可
不可
不可
不可
不可
不可
不可
不可
可
不可
不可
不可
不可
不可
不可
不可
不可
不可
2
\windows の system ディレクトリにある vbmbt3.30.ocx, msflxgrd.ocx をこのプロ
グラムでレジストリに登録します。また、ActiveX Control をアンインストールする
には/U オプションを使います。
23
<instdir>\btr615\w32mkset.exe
<instdir>\btr615\w32mkset.dll
<instdir>\btr615\wdbuui32.dll
<instdir>\btr615\wdbuei32.dll
<instdir>\btr615\wdbumk32.dll
<instdir>\btr615\wbtrthnk.dll
<instdir>\btr615\nwlocale.dll
<instdir>\btr615\w32bticm.dll
<instdir>\btr615\w32nr.dll
Btrieve設定プログラム
Btrieve設定プログラムD
LL
Btrieve DLL
Btrieve DLL
Btrieve DLL
BtrieveサンキングDLL
Btrieve DLL
Btrieve通信 DLL
Btrieve通信 DLL
不可
不可
不可
不可
不可
不可
不可
不可
不可
添付の Btrieve 6.15 ワークステーションエンジンについて
添付される Btrieve 6.15 ワークステーションエンジンはインストールディレクトリ
下の btr615 フォルダーにコピーされます。このエンジンを使いたい場合は、該
当フォルダーを PATH 変数に加えてください。デフォルトインストールではパス
が非常に深いので、c:\btr615 のようなルートから近いフォルダにコピーしてパス
設定するのが簡単でよいと思います。
この Btrieve 6.15 ワークステーションエンジンの利用を止めたい場合は、PATH
変数からの削除を確実に実行してから、Pervasive.SQL 等、上位バージョンのエ
ンジン等をインストールしてください。
24
システム設定ファイル
VBMAN.INIファイル
VBMAN.INI ファイルは通常 Windows ディレクトリに配置され、VBMan のシステ
ム設定に関する情報が書きこまれます。インストール直後にはこのファイルは存
在しませんが、VBMan DDF ビルダーの設定を書きこむた際に生成されます。
VBMan for Btrieve/VBX Version 1.x では network や dbpath の設定が必須で
したが、データベース・コントロールのプロパティに設定または自動判定するよう
に変更になりましたのでご注意ください。またセクション名は[vbman330]に変更
になりました。以下は設定項目とその説明です。
設定項目
詳細
float_size
Float, Bfloat型のフィールドを文字列に展開する際の浮動小
数点の桁数。この値の設定が小さい場合、4バイトのFloat型
では桁落ちが発生する場合がありますので適当なサイズを
設定してください。デフォルトは10桁です。最大は20桁です。
変換の精度はマイクロソフトのコンパイラのランタイム・ライ
ブラリに依存しています。
sShortDate
Date型のフィールドを文字列に展開する際または文字列か
らDate型に変換する際の形式を設定します。yyyy/mm/ddま
たはyy/mm/ddが設定可能です。デフォルトはyyyy/mm/dd
形式です。
grid_max_col
VBManグリッドが扱えるカラムの最大値を設定します。デフ
ォルトは64カラムです。初期化時に割り振るメモリの量は
grid_max_col*4
+
grid_max_row*4
+
grid_max_col*grid_max_row*4 バ イ ト で す 。 32bit 環 境 の た め
C/C++のランタイム・メモリの容量が上限になります。
grid_max_row
VBManグリッドが扱えるローの最大値を設定します。デフォ
ルトは1024ローです。
sign_nibble
DECIMAL型、MONEY型の正数値を表すニブル値を設定しま
す。設定可能な値は12または15です。デフォルト値は15とな
ります。
Year_2000
日付け型をYY/MM/DDの形式で扱う場合、この値に1をセッ
トすると年の値に2000を加算します。デフォルト値は0でこの
25
場合は従来バージョンと同じく1900を加算します。このフラグ
はデータの登録時に参照されます。Btrieveデータ自体は
2000 年 以 上 の 値 を 保 持 す る こ と が 可 能 で 、 VBMan で は
YY/MM/DD表示形式の場合は2000年は00と表示されます。
上記以外にもVBMAN.INIファイルには弊社VBMan製品の設定 3が書き込まれま
す。
以下は VBMAN.INI ファイルのサンプルです。
[vbman330]
float_size = 15
sShortDate = yyyy/mm/dd
grid_max_col = 30
grid_max_col = 400
Btrieve エンジンの設定
VBMan に添付される Btrieve for Windows95/NT バージョン 6.15 のワークステ
ーション・エンジンの設定は Windows ディレクトリにある w32mkde.exe で行いま
す。この製品はすでに Pervasive software からは入手できない状況ですから使
用方法等の情報が必要な場合は当エンジンを使わないで Pervaisve.SQLV8.6
等の現行製品をインストールしてご使用になることをお勧めします。
Pervasive.SQL 対応について
Pervasive.SQL では Btrieve の拡張データタイプ以外のカラムを定義することが
できますが VBMan ではそのようなデータ型のカラムはサポートされません。(lon
gvarbinary 等)
また当バージョンから「真のヌル値」(true nullable)をサポートするテーブルを扱
えるようになりました。フィールドの値のヌルチェックには DbIsNull メソッドを利用
します。
Pervasive.SQL の service pack レベルにより仕様詳細が変わりますのでリリー
スノート(readme.html)や開発会社のウェッブ・サイトなどで随時情報を提供しま
3
VBMan for ODBC、VBMan DDF ビルダー等。
26
すので、ご参照ください。
27
チュートリアル
ここでは、VBMan Controls for Btrieve を使ったフォームの作成方法について
説明します。
Btrieveデータベースの定義
概要
ここでは VBMan DDF ビルダーを使用したデータベースのフィールドの定義方
法について説明します。フォームのデザインに入る前にデータベースフィールド
の定義と Btrieve データを生成します。
VBMan DDFビルダーによるレコード定義
VBMan for ActiveX Control のメニューには VBMan DDF ビルダーが登録され
ます。DDF ビルダーを実行するにはこのメニューを選択します。以下は新規に
Btrieve レコードを定義する手順です。
①
②
③
VBMan DDF ビルダーを実行します。
初期メニューの「ファイル」から「DDF の作成」を選択します。
以下のダイアログが表示されます。DDF を保存するディレクトリを指定しま
す。
④
DDF ディレクトリを指定するとテーブル情報の入力ダイアログが表示され
ます。この例ではテーブル名も Btrieve ファイル名も test1 と設定します。
28
⑤
空のテーブル定義画面が表示されます。
⑥
「フィールド」メニューから「フィールドの追加」を選択します。以下のようなフ
ィールド定義画面が表示されます。
フィールド名を入力し、データ・タイプをコンボ・ボックスから選択し、必要に
応じて、データ長を入力します。文字列などの場合はデータ入力が必要で
29
すが、たとえば、時間、日付けなどは内部的なデータのサイズは規定され
ているので設定の必要はありません。この場合、データ・サイズの入力カラ
ムにはフォーカスが移動しません。小数点以下桁数についても、MONEY,D
ECIMAL,NUMERIC 以外ではフォーカスが移動しません。
⑦
⑧
上の操作を繰り返して、フィールドをすべて登録します。
インデックスを設定します。VBMan でコントロールを使ってデータを入力す
る再には1個以上のインデックスの定義が必須になります。「インデックス」
メニューから「インデックスの追加」を選択すると以下のようなダイアログが
表示されます。
⑨
インデックスを設定するフィールドを選択してソート・オーダーを選択します。
今回はチュートリアルなので、上記のダイアログのようにキー・タイプを設
定します。
「ファイル」メニューから「保存」を選択していままのフィールド定義を保存し
ます。
「オプション」メニューから「Btrieve ファイル生成」を選択します。Test1.btr
というファイルをリスト・ボックスから選択して「OK」ボタンを押すと Btrieve
ファイル test1.btr が生成されます。
以上で DDF の定義と Btrieve ファイルの生成は終了です。DDF ビルダー
を終了させます。「ファイル」メニューから「終了」を選択します。
⑩
⑪
⑫
30
複数のテーブルが必要な場合はファイル・メニューから新規テーブルを選択して、
同様の操作を繰り返します。
VBMan DDF ビルダーの操作の詳細についてはオンライン・ヘルプをご参照くだ
さい。
Visual C# .NETでデータ参照フォームを作成
ここでは Microsoft Visual C# .NET で VBMan Controls for Btrieve を使った
データ表示フォームの作成方法を説明します。この例では Pervasive.SQL 2000
I のサンプルデータ demodata を使っています。
1) Visual Studio.NET を起動します。
2) 新規プロジェクトから Visual C#プロジェクトを選択し Windows アプリ
ケーションを選択してプロジェクトを開始します。
3) ツール・ボックスをマウス右クリックし、「ツールボックスのカスタマイ
ズ」を選択します。
4) COM コンポーネントのタブで「参照」ボタンを押します。
5) システム・ディレクトリにある vbmbt330.ocx ファイルを指定します。する
と COM コンポーネントのタブは以下のようになります。
31
6) ツールボックスに VBMan コントロールが以下のように表示されます。
32
7) データベース・コントロール(VBMBtr)を Windows Form にドラッグしま
す。
8) プロパティページをマウス右クリックで開き、DDF ディレクトリに DEMO
DATA ディレクトリを指定します。以下の画面の例は Pervasive.SQL 2
000I デフォルトインストール時での設定です。
9) Widnows form に VBMan グリッドをドラッグします。
33
10) VBMan グリッドをマウスの右クリックでプロパティダイアログを開き、以
下のように Person データベースから First_name,Last_name カラムを選
択します。インデックスには PersonID を指定します。
11) 実行します。グリッドにデータが表示されることを確認します。
34
12) この例では Visual C#でプロジェクトを新規開始しましたが、Visual Ba
sic.NET でもプロジェクト選択以外は全く同一の手順となります。
Visual Basicでデータ入力フォームを作成
この章では Visual Basic 6.0 で VBMan Controls for Btrieve を使ったデータ入
力フォームの作成方法を説明します。
1)
Visual Basic 6.0を実行します。
2) 「プロジェクト」メニューの下のカスタム・コントロールを選択します。以下の
ようなダイアログが表示されますので、リストから「VBMan Controls for
Btrieve」を選択します。 4チェック・ボックスが選択されている状態であるこ
4
リストボックスに「VBMan Controls for Btrieve」が表示されない場合は、インス
トールが正しく行われていない可能性があります。Windows のシステム・ディレクト
リに VBMBT3.30.OCX が存在することを確認してください。ファイルが存在するの
であれば、レジストリへの登録が失敗しているとおもわれます。今一度 REGSVR3
2.EXE を実行して VBMBT3.30.OCX を登録してください。DOS プロンプトからのコ
マンド・ラインは REGSVR32 c:\winnt\system32\vbmbt3.30.ocx のようになります。
35
とを確認してOKボタンを押します。
3) Visual Basicのツール・パレットにVBMan Controls for Btrieveのカスタム・
コントロールのアイコンが以下のように表示されます。
4) VBManデータアクセスコントロール(ディスクが1個だけのアイコン)をフォ
ームにおきます。必ずこのコントロールを他のすべてのVBManコントロー
ルより先にフォームに設定してください。このコントロールは実行時には表
示されないので、フォームのデザイン時に邪魔にならない適当な位置に配
置します。
36
5) データベース・コントロールのDDFDirプロパティを設定します。このプロパテ
ィ は ド ラ イ ブ ま で 含 め た DDF フ ァ イ ル が 存 在 す る パ ス を 指 定 し ま す 。
FILE.DDF,FIELD.DDF,INDEX.DDFの3つのファイルが存在するパスであるこ
とが必須となります。このプロパティが正しく設定されると、テーブル、フィー
ルド、インデックスに関する情報をDDFからコントロールに読み込みます。
これらの情報により、フォームのデザイン時にデータ・ベースに関連する情
報を正確に効率よく設定することが可能になります。
6) データの入力フィールドをフォームにおき、プロパティを設定します。この例
ではエディット・コントロールをフォームに設定します。プロパティ
37
DbSource,DbTable,DbFieldの設定は必須となります。これ以降の例では
DbSourceプロパティはフォームに唯一設定しているVBManデータベース・
コントロールのオブジェクト名の値を設定します。
7) 以下はエディット・コントロールのプロパティ設定ダイアログです。エディッ
ト・コントロールをマウスの右ボタンでクリックして一番下のメニュー「プロパ
ティ(P)」を選択すると表示されます。このダイアログでプロパティを設定す
る場合は、データソース、テーブル、フィールドの順にコンボ・ボックスから
選択します。OKボタンを押すと初回のみフィールド名がエディット・コントロ
ールのTextプロパティ値に設定されます。
38
8) エディット・コントロールのDbSource,DbTable,DbFieldプロパティを設定した
直後のフォームは以下のようになります。
9) 該当テーブルの入力項目をフォームに設定したら、Btrieveデータベースの
操作をするVBManボタンコントロールをフォームにおきます。
39
10) VBManボタン・コントロールでは、DbSource,DbTable,DbIndexプロパティ
と DbOperation の 設 定 が 必 須 で す 。 プ ロ パ テ ィ 設 定 の ダ イ ア ロ グ で は
BtrieveのBtrieveオペレーションをDbOperationプロパティに設定することも
可能です。以下の例では先頭レコードに移動するGetFirstオペレーション
を選択しています。
11) 以下はボタンのキャプションを「先頭」と設定し、次レコードに移動するた
めにGetNextボタンを追加したフォームを実行している様子です。
40
12) 以上のように、VBManエディット、VBManボタンを複数配置することによ
り、簡単なフォームであれば、すぐにデータを登録したり、検索する実行可
能なフォームができあがります。この時点で設定必須なプロパティが指定
されていれば、実行可能です。また、いままで説明したフォームはVBMan
DDFビルダーの自動フォーム生成機能で作成することもできます。
41
サンプルプログラムについて
.NET 用サンプルについて
.NET 用のサンプルは VB.NET および C#言語用が用意されています。それぞれメ
ニューからプロジェクトソリューションファイルへのショートカットが張られています
ので、Visual Stuiod.NET IDE がインストールされている環境をあらかじめご用意
いただけば、メニューからサンプルプログラムをごらんいただくことができます。
プロジェクトを開く前に、Visual Studio.NET のツールボックスに VBMan Controls
for Btrieve のコンポーネントを登録しておく必要があります。(登録していない場
合は、コンポーネントが参照できない、というエラーになります) ツールボックスへ
のコンポーネントの登録方法は、前章の「Visual C# .NET でデータ参照フォーム
を作成」をご参照ください。
また、サンプルプログラムは Visual Studio.NET 2002 形式のプロジェクトファイル
なので、Visual Studio.NET 2003 や Visaul Studio.NET 2005 から参照する場合
には、プロジェクト変換ウィザードにより、プロジェクト形式の変更が自動的に行わ
れます。変換した後のサンプルプロジェクトの動作は確認済みです。
サンプルプログラムビルド時の注意点ですが参照しているラッパーコンポーネント
(AxVBMBtrLib.DLL)の「ローカルコピー」プロパティに False が設定される場合に
は True に設定していただくとエラーなく、簡単にサンプルプログラムをコンパイル
して実行していただくことができるということです。
以下は設定項目のプロパティのスクリーンショットになります。
42
Visual Basic 6.0 用サンプルプログラムについて
Visual Basic 6.0 用のサンプルはインストールディレクトリ(デフォルトでは\Progra
m Files\TechKnowledge\VBMan Controls for Btrieve 3.30)以下の samples\vb
フォルダーにあります。6 種類のサンプルプロジェクトが収録されています。(拡張
子 VBP ファイル) 各サンプルは DDF ディレクトリとしてデフォルトインストールの
場合のフォルダーに固定されていますので、デフォルトディレクトリ以外のインスト
43
ールでは、DDF ディレクトリを該当ディレクトリに変更してください。
ASP 用サンプルプログラムについて
当製品のサンプルには以下のようなファイルが添付されています。以下はサンプ
ルの簡単な説明です。
SAMPLE1.AS BTRIEVE データを<TABLE>タグで表示するサンプルです。
P
ブラウザーからは SAMPLE1.ASP ファイルを直接指定しま
す。お客様の環境で動作させるには DDFDIR プロパティの
設定変更が必要です。
Sample2.htm
Btrieve データを新規登録するサンプルです。ブラウザーか
Sample2.asp
らは sample2.htm ファイルを指定します。データが入力され
て「登録」ボタンをクリックすると sample2.asp がデータを Btri
eve データ・ベースに登録します。Sample2.asp の DDFDir プ
ロパティはお客様の環境に合わせて設定変更が必要です。
サンプルを動作させるためには Btrieve が利用可能な IIS がインストールされてい
る Windows サーバーが必要となります。
VBMan Controls for Btrieve の ASP サンプルディレクトリにある以下のファイル
をサーバーのディレクトリにコピーして、そのパスを sample1.asp と sample2.asp フ
ァイルの DDFDir プロパティ設定の行に設定する必要があります。以下のファイル
は VBMan のインストール・ディレクトリ以下の samples\asp ディレクトリにインスト
ールされます。
File.ddf
Field.ddf
Index.ddf
Shiire.btr
Item.btr
たとえば、上記ファイルをサーバー名 \\jacksonの\ddfディレクトリにコピーした場
合はsample1.asp/sample2.aspファイルのDDFDirプロパティ設定行は以下のような
記述になります。
<% VBMan.DDFDir="\\jackson\ddf" %>
44
コンパチビリティ
この章では VBMan Controls for Btrieve の以前のバージョンからの Visual Basi
c アプリケーションの移行方法を示します。以下に各バージョンの説明をいたしま
す。
VBMan for Btrieve/VBX
スタンダード版
1994 年 5 月に発売されました。Windows 3.1+
VB2 で動作する VBX です。最終バージョンは
1.15 となっています。
VBMan for Btrieve/VBX
1994 年 11 月に発売されました。Windows 3.1
プロフェッショナル版
+VB2 で動作する VBX です。スタンダード版
に対して Btireve 拡張オペレーションなどが使
えるような仕様に拡張されています。最終版
は VB4 16bit 版でも動作するように修正され
たバージョン 1.58 となります。
VBMan for Btrieve/OCX32
1996 年 3 月に発売されました。32bit OCX と
なり、VB4 32bit 版で動作するものが開発さ
れました。対応する Btrieve のバージョンも 32
bit 版の 6.15 となりました。その後 VB5 にも
対応し、最終版は 98 年 7 月現在 2.00I となっ
ています。VBX ではデータ・アクセス関数でア
プリケーションを作成することが多かったので
コンパチブル関数として VBX 版のソースをそ
のまま使える関数が用意されています。
VBMan ActiveX Control for B 1998 年に発売されました。ATL というクラスラ
trieve ver 3.0X
イブラルを採用したために、製品のソースは
大幅に書き換えが必要でした。ATL を採用し
たのでいわゆる DLL HELL 問題を解決でき
ました。マイナーバージョン・アップで Windows
2000 に対応しました。Pervaisve.SQL 2000 の
Service Pack1 から Btrieve API の仕様変更
がありこれにもマイナーバージョン・アップで
対応しました。初期バージョンは ATL ver 2.0
/2.1 を使ってリリースしましたが、後半のバー
ジョンは ATL 3.0 でリリースしています。
VBMan ActiveX Controls for 2002 年 3 月に Pervasive.SQL 2000i SP3 に
Btrieve ver 3.10
対応して発売されました。また、このバージョ
ンから Windows XP での動作保証をしまし
た。新たに NUMERICSA,NUMERICSTS,CURR
ENCY, Longvarchar データ型に対応し、true
nullable カラムにも対応しました。
45
VBMan Controls for Btrieve v
er 3.20
VBMan Controls for Btrieve V
3.30
2002 年 10 月に発売しました。.NET 環境に最
小のワークロードで既存の VB アプリを移行し
たいというお客様のご要望が多かったので、
Windows Forms で動作する COM コンポーネ
ント形式のコントロールも必要と思い、リリー
スいたしました。名前は依然として VBMan で
すがこのバージョンから Visual C#でも動作す
るようになりました。VB6 のフォームと Window
s Form では動作の違いが多数ありましたの
で、内部的にはかなりの変更が必要でした。
2005 年 11 月に発売しました。 Pervasive.SQ
L V8.6 SP3 に対応しました。 Pervasive.SQL
のセキュアーデータベースに対応するため、
新たに DbLogIn/DbLogOut メソッドを追加しま
した。DDF のパスとして URI を指定できるよう
になりました。
Visual Basic.NET への移行
当 version 3.30 を使って作成された Visual Basic 6 用アプリケーションは Visual
Basic.NET のアップグレードウィザードを使って Visual Basic.NET アプリケーション
に移行可能なことを確認済みです。アップグレードウィザードを使って移行した Wi
ndows Form ではレイアウトが多少変わってしまうことも確認していますので、アッ
プグレード・ウィザードをご利用後に、フォームのレイアウトや外観を Visual Studio.
NET で確認されることをお勧めします。ただしお客様のアプリケーションで他にも
コンポーネントをお使いの場合は変換の前に該当コンポーネントが Visual Basic.
NET をサポートするものであることを事前にご確認されることをお勧めいたします。
VBMan ActiveX Control for Btrieve バージョン 3.X からの移行
コントロールの GUID 等は ver 3.30 では変更されていません。OCX ファイル名の
み変更になっていますので新しいバージョンをレジストリ登録していただけば既存
のプロジェクトの変換は必要ありません。
VBMan for Btrieve/OCX32 バージョン 2.0 からの移行
ここでは VBMan for Btrieve/OCX32 を使って作られた Visual Basic アプリケー
ションを VBMan Control for Btrieve version 3.30 を使った Visual Basic アプリ
46
ケーションに移行する方法を説明します。この移行説明では Visual Basic 言語が
前提であり、VBMan の旧バージョンから最新バージョンへコントロールの入れ替
え方法を示すものです。Visual Basic から Visual Basic.NET への変換は Visual
Studio.NET で提供されるアップグレードウィザードを使ってください。VBMan の旧
バージョンを使った Visual Basic アプリを最新版の VBMan + Visual Basic.NET
アプリへ直接移行することはできません。
変換作業は基本的には GUID の変更、ライブラリ名の変更、コントロール・クラス
名の変更になります。当製品には Visual Basic のプロジェクト・ファイル名を指定
すると各フォームを変換するツール vbmconv.exe が添付されていますので最初に
変換ツールの説明をいたします。
変換ツール
変換ツールの使用方法は以下のようになります。
①
②
③
④
⑤
⑥
VBMan Controls for Btrieve メニューから ver2to3 コンバーターを選択して
変換ツールを実行します。
表示されるウィンドウの「変換元プロジェクト・パス」に変換したい Visual Basi
c プロジェクトファイル(拡張子.vbp)のフル・パスを指定します。
「変換先プロジェクト・パス」に変換後のファイルを保存するディレクトリを指定
します。「変換後のプロジェクト・パス」には変換元と同じ値を設定することは
できませんのでご注意ください。
「変換開始」ボタンを押します。
変換が終了するとウィンドウが終了します。
変換されたプロジェクトを Visual Basic で読み込み動作を確認します。
手動によるフォーム変換
47
VBMan for Btrieve/OCX32 version 2.00 で作成された Visual Basic のフォーム
を VBMan Control for Btrieve version 3.30 で利用可能なように変更する方法を
説明します。フォームの変更には Notepad.exe 等のテキスト・エディターを使って、
コントロールのライブラリ名や GUID を変換することになります。以下は変換手順
の概要です。
①
②
エディターで Visual Basic のプロジェクト・ファイル(拡張子 .vbp)を開きます。
GUID を変換します。
変換前の行:
Object={1601CD73-F987-11CE-9262-0080AD156341}#1.0#0; VBMBTR32.OCX
変換後の行:
Object={3235CFE2-D891-11D1-BD2B-004026182472}#1.1#0; VBMBT3.30.OCX
③
④
⑤
Visual Basic のプロジェクト・ファイルを保存します。
プロジェクトに含まれるフォーム・ファイル(拡張子 .frm)をエディターで開きま
す。
ライブラリ名を変更します。ライブラリ名は Begin で始まる行の VBMBtrLib.と
いう文字列を VBMBTRLibCtl.に変更します。
変更前の行:
Begin VBMBTRLib.VBManBtn VBManBtn6
変更後の行:
Begin VBMBTRLibCtl.VBMBtn VBMBtn6
⑥
⑦
コントロール名を変更します。コントロール名は上記⑤の行にあるライブラリ
名の後にドットで表記される文字列です。VBMan には 13 個のコントロール
がありますので、後述の変換表を参考に文字列を置換します。
フォーム・ファイルを保存します。
VER 2.00 コントロール名
VBMDB
VBManBtn
VBManEdit
VBManGrid
VBManListBox
VBManComboBox
VBManExListBox
VBManExComboBox
VBManPic
VBManCheck
VER 3.30 コントロール名
VBManDb
VBMBtn
VBMEdit
VBMGrid
VBMListBox
VBMComboBox
VBMExListBox
VBMExComboBox
VBMPic
VBMCheck
48
VBManOptBtn
VBManHScroll
VBManVScroll
VBMOptBtn
VBMHScroll
VBMVScroll
コンバージョンツール、手動による変換でもプロパティ設定やご利用の Visual Bas
ic バージョンなどによりコントロールがロードできない場合があるようですが、その
ような場合は Visual Basic の開発環境で再度コントロールを張っていただくことに
なります。あらかじめご了承ください。
VBMan for Btrieve/VBX バージョン 1.x からの移行
ここでは VBMan for Btrieve/VBX 版で作成したアプリケーションを VBMan Contr
ols for Btrieve 環境へ移行する際の手順、注意点等を記述します。
フォームの変換
Visual Basic 2.0J で作成された VBMan を使ったフォームはそのままでは Visu
al Basic 6.0/5.0/4.0J では読み込めません。以下の手順でフォームを移行する
ことになりますが、マイクロソフトによって変更された VBX と OCX の仕様の変更
が原因で完全に移行できる訳ではないことに注意してください。
①
②
フォームをテキスト形式で保存
Visual Basic 2.0J の「テキスト形式で保存」の機能を使って、移行した
いフォームをテキスト形式で保存します。
フォームの編集
フォームをエディターで開いて VBMan のコントロールに「VBMBTRLibCt
l.」というモジュールクラスを示すプリフィックスをつけます。以下は VBM
an データベース・コントロールにおけるサンプルです。
変更前
Begin VBManDB VBMan1
Height
= 480
Left
= 10
Top
= 480
End
変更後
Begin VBMBTRLibCtl.VBManDb VBMan1
Height
= 480
49
Left
Top
End
③
④
⑤
= 10
= 480
Visual Basic の起動とコントロールの追加
Visual Basic を起動します。メニューから ActiveX Control を選択して、
VBMan Controls for Btrieve をプロジェクトに追加します。
プロジェクトへフォーム・ファイルの読み込み
②で編集したフォーム・ファイルを Visual Basic のプロジェクトに追加し
ます。ファイル・メニューの下からファイルの追加を選択し、ファイルの指
定ダイアログで②で編集したフォームのファイル名を指定します。
フォームの変換エラーの確認
フォーム変換ではプロパティの違いなどから、エラーが発生する場合が
あります。フォームのファイル名と同じ名前で、拡張子が.log のファイル
にエラー詳細がレポートされますので、このファイルを参照して、変換で
きなかったプロパティ等を Visual Basic のデザイン・モードで修正してく
ださい。
データアクセス関数の移行
バージョン 1.0 コンパチブル関数
VBMan バージョン 1.5 までは VBX のモジュールにデータベースアクセス関数と
して DDF に準拠した Btrieve アクセスを可能とするエントリ・ポイントがエクスポ
ートされていました。これらの関数は VBMan Controls for Btrieve ではバージ
ョン 1.0 コンパチブル関数として同様に関数がエクスポートされています。以前
のバージョンでは Btrieve.bas というファイルに Btrieve のオペレーション・コード
と一緒に Visual Basic 用に関数の宣言がしてありました。このファイルは VBMa
n Controls for Btrieve では VBMANV1.BAS として、インストールディレクトリの
samples ディレクトリに存在しますので、このファイルを Visual Basic のプロジェ
クトに追加してご使用ください。
VBMan Controls for Btrieve ではフォームに複数のデータベース・コントロール
が設定できるように機能を拡張した結果、このバージョン 1.0 コンパチブル関数
を使う場合は、どのデータベース・コントロールのポジション・ブロックを使うのか
を事前に指定する必要があります。コントロールを指定する関数は DbAttachCo
ntrol で、パラメータはコントロールの名前とそのコントロールが置かれているフ
ォーム名を指定します。以下はサンプル・コードです。
Dim Rc As Integer
Rc = DbAttachControl(“VBMan1”,”Form1”)
If Rc <> 0 Then
50
MsgBox “コンパチブル関数を使うことができません。”
Stop
End If
Rc = DbAccess(BTR_GET_FIRST, CUST_TABLE, CUST_KEY_PATH )
If Rc <> 0 Then
MsgBox “Btrieve Error ” & CStr(rc)
Stop
End If
DbAttachControl 関数からの戻り値が0でない場合はフォーム名またはコントロ
ール名が正しくないと思われます。今一度ご確認ください。
データ・ベース・コントロール・メソッド
Visual Basic 2.0J における VBX の仕様ではカスタム・コントロールに独自のメ
ソッドを追加することはできませんでした。この仕様は ActiveX Control(OCX)で
拡張され、カスタム・コントロールのデザイナーは独自のメソッドをユーザーに提
供することが出来るようになりました。
VBMan Controls for Btrieve でも、このデザイン上の利点を生かすべく、いまま
でデータ・ベース・アクセス関数として提供されていた関数をデータ・ベース・コン
トロールのメソッドとして提供するようになりました。単にメソッドとするだけでは、
先に紹介したバージョン 1.0 コンパチブル関数と差別化できないと考え、従来フ
ィールド、テーブル、キーなどは整数の ID で指定する仕様だったのを改め、す
べてを文字列で DDF 定義時と同じ値を指定可能としました。従来の整数の ID
での方法には、Visual Basic 2.0J の文字列領域の不足、16bit 環境でのパフォ
ーマンス不足、などを考慮したうえでの仕様であり、またループの記述が簡単な
どの利点もありました。32Bit 環境でこれらの制約はある程度緩和されていると
考え、パラメータのデザインを変更した訳ですが、お客さまの環境によってはパ
フォーマンスが不足することなども考えられますので、その場合にはバージョン
1.0 コンパチブル関数をお使いになられるようにお願いいたします。
以下は VBMan Controls for Btrieve のデータベース・アクセス・メソッドの呼び
出しコード例です。DbAccess,DbExAccess メソッドの第一パラメータ定義は Btri
eve.Bas ファイルにありますのでご利用ください。
Dim rc As Integer
rc = VBMan1.DbAccess( BTR_GET_FIRST, “顧客”, “コード”)
If rc <> 0 Then
MsgBox “Btrieve ステータス” & CStr(rc)
Stop
End If
51
VBMan DDFビルダーの機能
VBMan DDF ビルダーは 32Bit アプリケーションになりました。従来版は 16bit
アプリケーションで GRID.VBX を利用してフィールドなどを表示していましたが、
32bit になり、MSFLXGRD.OCX を利用してフィールドなどを表示しています。VB
Man DDF ビルダーを実行する場合には、MSFLXGRD.OCX が Windows の Syst
em ディレクトリに存在し、REGSVR32.EXE でレジストリに登録されていることが
必要になります。
また、VBMan DDF ビルダーには Btrieve データ移行モードが追加されました。
システム・オプションで「Btrieve データ移行」が設定されている場合かつ、DDF
で指定されるディレクトリに Btrieve ファイルが存在する場合には、データ移行モ
ードになります。データ移行モードでは、フィールドの挿入、インデックスの挿入
ができない等、編集機能に制限があります。既存のデータが不要な場合はこの
オプションをやめるか、DDF ビルダーを起動する前に不要な Btrieve ファイルを
削除または別ディレクトリに待避をしてください。
VBMan Controls for Btrieve ではインデックスの指定にインデックス名を使え
るようになりました。これに対応して同じ先頭フィールド名でセグメント・キーを作
成する場合、インデックスを識別するために、インデックス名が設定可能になっ
ています。「インデックス」メニューに「インデックス名の追加」、「インデックス名
の削除」が追加されています。
フォームの生成に関しては以前の VBMan for Btrieve/VBX を VB2 で利用でき
るフォームと VBMan Controls for Btrieve バージョン 3.30 を Visual Basic 6.0J
で利用できるフォーム生成が可能です。Visual Basic .NET で使うフォームは生
成できませんが、Visual Basic 6 用のフォームは Visaul Studo.NET のアップグ
レードウィザードで Visual Basic.NET 用に変換できます。
52
カスタム・コントロール・リファレンス
ここでは、VBMan Controls for Btrieve で利用可能な 13 個のカスタム・コントロ
ールについて説明します。最初にフォームに設定するコントロールは次に説明
するデータベース・コントロールです。この章の説明では各コントロールの概要、
使用上の注意などを記述します。カスタム・プロパティ、カスタム・イベント、カス
タム・メソッドの詳細はそれぞれのリファレンスを参照してください。
データベース・コントロール
概要
VBMan データベース・コントロールは VBMan を使用するアプリケーションにお
いて、フォーム等を作成する場合に最初に設定するコントロールです。このコン
トロールの DDFDir プロパティで設定したディレクトリ情報から DDF を読み込み
ます。
このコントロールがフォームに設定されていない場合は、他の VBMan コントロ
ールがフォームに存在しても、DbSource,DbTable プロパティ等が指定可能とな
りませんのでご注意ください。
VBMan データベース・コントロールはデザイン時にはアイコン表示されますが、
実行時には不可視になります。デザイン時にはフォームの設計で邪魔にならな
い適当な場所に設定します。
VBMan データベース・コントロールが読み込む DDF 定義に存在するテーブルに
ついて、テーブルに関連する Btrieve ファイルをオープンした時には、このコント
ロール単位で Btrieve のポジション・ブロックとレコード・イメージを保持するバッ
ファを管理します。たとえば、同じファイルを別々のポジション・ブロックで管理し
たい場合は同じフォームに複数の VBMan データベース・コントロールを設定す
ることで可能になります。
VBMan データベース・コントロールを Visual Basic で使う場合、コントロール配
列にして使うことはできません。他の VBMan コントロールは DbSource,DbListS
ource プロパティに VBMan データベース・コントロールの Name プロパティの値
を参照する仕様の為、コントロール配列にすると Name プロパティで識別できな
くなります。
以下は VBMan データ・ベース・コントロールに特有なプロパティ、イベント、メソッ
ドの一覧です。
53
カスタム・プロパティ
CacheDDF
DDFDir
DistName
OpenMode
OwnerName
カスタム・イベント
BtrieveError
カスタム・メソッド
DbAbortTransaction
DbAccessByID
DbAccess
DbBeginConcurTransaction
DbBeginTransaction
DbClearControlData
DbClearFieldBuffer
DbCloseAll
DbEndTransaction
DbExFree
DbExGetPosition
DbFindPercentage
DbGetDataSize
DbGetDirect
DbGetFieldDataByID
DbGetIndexName
DbGetNumOfField
DbGetNumOfRecords
DbGetPosBlock
DbGetRecord
DbGetRecordLength
DbLoadDDF
DbOpenAll
DbSetFieldData
DbSetFileName
DbSetRecord
DbTransferFromControl
DbUnlock
DbClose
DbCreate
DbExAccess
DbExGetFieldData
DbExSetMode
DbGetByPercentage
DbGetDataType
DbGetFieldData
DbGetFieldName
DbGetModulePath
DbGetNumOfIndex
DbGetNumOfTable
DbGetPosition
DbGetRecordImage
DbIsOpen
DbOpen
DbReset
DbSetFieldDataByID
DbSetLockBias
DbSetRecordImage
DbTransferToControl
54
ボタン・コントロール
概要
VBMan ボタン・コントロールはユーザーのマウス・クリックによるボタンの押下時
に DbOperation プロパティに設定した Btrieve オペレーションを実行します。
登録系のオペレーション 5を設定した場合には、同じフォームにある、このコント
ロールを指定するようにDbSource,DbTableプロパティに値が設定してあるVBMa
nコントロールからデータを収集して、DDFにしたがってレコード・イメージを作成
し、Btrieveのオペレーションを発行します。
参照系 6のオペレーションがDbOperationプロパティに設定されている場合は、
同じフォームにある、このコントロールを指定するようにDbSource,DbTableプロ
パティが指定されたコントロールにレコード・イメージのバッファからBtrieveから
読み込んだデータを設定します。
DbOperation プロパティとして設定できるのは以下の項目です。これらは Btriev
e の機能をそのまま実現しています。
First
Last
Insert
Delete
Update
Next
Previous
GetEqual
GetGreater
GetGreaterOrEqual
GetLessThan
5
6
最少の値をもつキーに該当するレコードを得
る。
最大の値をもつキーに該当するレコードを得
る。
新規のレコードを追加。
現在のレコードを削除。
現在のレコードを更新。
次の値をもつキーに該当するレコードを得る。
前の値をもつキーに該当するレコードを得る。
一致するキーに該当するレコードを得る。
指定したキーより大きな値をもつキーに該当す
るレコードを得る。
指定したキーと同じまたは、より大きな値で一番
近いをもつキーに該当するレコードを得る。
指定したキーより小さな値をもつキーに該当す
るレコードを得る。
Insert,Update オペレーション。
GetEqual,GetNext オペレーションなど。
55
GetLessThanOrEqual
StepFirst
StepLast
StepPrevious
StepNext
InsertNCC 7
UpdateNCC
指定したキーより同じ、または、より小さな値で
一番近い値をもつキーに該当するレコードを得
る。
物理先頭レコードを得る。
物理最終レコードを得る。
前の値をもつレコードを得る。
次の値をもつレコードを得る。
新規レコードを追加。論理カレンシー情報は設
定しない。
レコードを更新。論理カレンシー情報は設定し
ない。
以下の表はVBManボタンに特有 8のプロパティ、イベント、メソッドをあらわしま
す。
カスタム・プロパティ
Abort
DbLocks
ClearControlData
DbOperation
ConfirmMsg
DbTable
DbIndex
DbSource
カスタム・イベント
BtrieveError
SetData
カスタム・メソッド
なし
7
NCC = NO CURRENCY CHANGE
対応する Visual Basic または Windows のコントロールと比べた場合に特有の
プロパティを指します。
8
56
エディット・コントロール
概要
VBMan テキストコントロールは DbSource,DbTable,DbField プロパティによって指
定される Btrieve データベースのフィールドのデータを表示、登録します。Btriev
e とのデータの交換は VBMan ボタン・コントロールをクリックした場合や、VBMa
n スクロールを使った場合、DbTransferToControl, DbTransferFromControl メソ
ッド/関数を使った場合におこなわれます。
入力マスクについて
VBMan エディット・コントロールは関係するフィールドのデータタイプが Date 型
または Time 型の場合で、Format プロパティが指定されていない場合はキー入
力をマスクして入力します。Date 型の場合は VBMAN.INI ファイルの設定によっ
て、yyyy/mm/dd,yy/mm/dd の形式を選択可能です。Time 型については hh:m
m:ss 形式固定です。これらのマスクはコントロールからフォーカスがなくなる時
におこなわれます。これらのデフォルト入力マスク以外のマスクをしたい場合は
Format プロパティと FormatOption プロパティを組み合わせて設定することにな
ります。Format,FormatOption プロパティの詳細についてはカスタム・プロパテ
ィ・リファレンスを参照してください。
以下の表は VBMan エディットに特有のプロパティ、イベント、メソッドです。
カスタム・プロパティ
DbField
FormatOption
DbSource
NumericMask
DbTable
ReadOnly
Format
UpperCase
カスタム・イベント
なし
カスタム・メソッド
なし
57
スクロール・コントロール
VBMan水平・垂直スクロール・コントロールにより、レコードの移動ができます。
レコードの移動はDbIndexで指定されるキー順となります。キーなしのBtrieveフ
ァイル、Btrieve 5.x形式のBtrieveファイルではこのコントロールは使えません。 9
また、このコントロールは VBMan ボタンにカレント・レコードを変えるオペレーシ
ョンを設定した場合はこれらのコントロールに連動してキャレット・ポジションを変
更します。
レコード件数が変わるようなオペレーションを発行した場合、Refresh メソッドを
呼び出すことで、スクロール・コントロールのキャレット位置を正しい位置に設定
することができます。
以下の表は VBMan スクロール・コントロールに特有のプロパティ、イベント、メソ
ッドです。
カスタム・プロパティ
AutoFirst
DbIndex
DbSource
DbTable
カスタム・イベント
BtrieveError
カスタム・メソッド
なし
9
Btrieve のパーセンテージ・オペレーションを使っているため。
58
チェック・ボックス・コントロール
概要
VBMan チェック・ボックス・コントロールは DbSource, DbTable, DbField プロパ
ティで指定されるデータベースのフィールドの値が DbValueTrue プロパティで指
定される値と同一になった場合にチェックされます。
このデータ・ベースのフィールドの値とは、VBMan ボタン・コントロールや、スクロ
ール・コントロールでカレント・レコードとしてポジショニングされたレコードにおけ
るフィールドの値です。データ・ベース・アクセス・メソッドまたはバージョン 1.x コ
ンパチブル・関数でカレント・レコードをポジショニングした場合は、DbTransferTo
Control メソッドなどでデータをカスタム・コントロールに転送した時にフィールド
の値が検査され、値が同一であれば、チェックされます。
以下の表は VBMan チェック・ボックス・コントロールに特有のプロパティ、イベン
ト、メソッドです。
カスタム・プロパティ
DbField
DbValueIndeterminate
DbSource
DbValueTrue
DbTable
DbValueFalse
カスタム・イベント
なし
カスタム・メソッド
なし
59
オプション・ボタン・コントロール
概要
VBMan オプション・ボタンコントロールは DbSource, DbTable, DbField プロパテ
ィで指定されるデータベースのフィールドの値が DbValueTrue プロパティで指定
される値と同一になった場合にチェックされます。
このデータ・ベースのフィールドの値とは、VBMan ボタン・コントロールや、スクロ
ール・コントロールでカレント・レコードとしてポジショニングされたレコードにおけ
るフィールドの値です。データ・ベース・アクセス・メソッドまたはバージョン 1.x コ
ンパチブル・関数でカレント・レコードを位置ずけした場合は、DbTransferToCont
rol メソッドなどでデータをカスタム・コントロールに転送した時にフィールドの値
が検査され、値が同一であれば、チェックされます。
以下の表は VBMan オプション・ボタン・コントロールに特有のプロパティ、イベン
ト、メソッドです。
カスタム・プロパティ
DbField
DbValueTrue
DbSource
DbTable
DbValueFalse
カスタム・イベント
なし
カスタム・メソッド
なし
60
リスト・ボックス・コントロール
概要
VBMan データベース・リストボックス・コントロールはプロパティ DbListField,DbLi
stSource,DbListTable の値で指定されたカラムのデータすべてをデータベース
から取得し表示します。データ更新のタイミングは DbUpdateOption プロパティ
の設定により、なし、初期化時、フォーカス時を選択できます。
また、DbField,DbSource,DbTable プロパティで指定されるフィールドのデータとし
て、このリスト・ボックスの選択値を設定、参照ができます。データを設定、参照
するのは VBMan ボタンの登録系のオペレーションまたは、DbTransferToContr
ol,DbTransferToControl メソッドです。
VBMan リスト・ボックスは DbListIndex プロパティで指定されるキー・パスで、Btri
eve の GET FIRST オペレーションを発行し、ファイルの最後まで GET NEXT オ
ペレーションを発行して、リスト・ボックスにデータを挿入します。Sort プロパティ
を True に設定している場合は VBMan リスト・ボックスがメモリでソートしてデー
タを表示し、DbListIndex プロパティで指定されるキー順にはならないこともある
ので注意してください。
VBMan リスト・ボックスは、レコードをリストに表示する直前に Format イベントが
発生します。このイベントのパラメータはこれから表示しようとするフィールドの
値です。このイベント内ではこの表示するデータを含むレコードがカレント・レコ
ードになっています。したがって、DbGetFieldData メソッドでフィールドの値を取
得可能です。
Format イベントでは他のフィールドの値を検査、計算した結果、別の文字列を
表示したければ、Format イベントのパラメータで渡る文字列に表示を更新する
文字列を設定することで可能です。Format イベント内でイベントのパラメータに
ヌル文字列を設定した場合、そのレコードはリスト・ボックスに表示されません。
以下は Visual Basic でのサンプル・コードです。
‘マイナスのデータは表示しない例
Sub VBManListBox1_Format( LineData As String )
If Left$(LineData,1) = “-“ Then
LineData = “”
‘ ヌル文字を設定
End If
End Sub
また、現在のレコードまででリストを止めたい場合は Abort プロパティに True 値
を設定します。
Visual Basicをコントロール・コンテナにした場合は、DbUpdateOptionプロパティ
を初期化時に設定すると、Formatイベントが発生しません。これは初期化時に
61
はVisual Basicがイベントの発生を禁止していることが原因です。Formatイベン
トを正常に発行させるにはフォームのActivateイベントでこのコントロールのRefr
eshメソッドをよびだすことで回避できます。 10
VBMan リスト・ボックスの内容を再度 Btrieve データベースから読み込みたい場
合は、Refresh メソッドを使います。
VBMan リスト・ボックスに保持できる最大行数は 32767 件です。この値は 32bit
のリスト・ボックスの仕様に依存する行数です。
第 2 パラメータは文字列を挿入する位置ですが、-1 を指定するとリストの最後
に追加します。
以下の表は VBMan リスト・ボックスに特有のプロパティ、メソッド、イベントです。
カスタム・プロパティ
Abort
DbListSource
DbUpdateOption
DbField
DbListTable
DbListField
DbSource
DbListIndex
DbTable
カスタム・イベント
Format
カスタム・メソッド
なし
10
サンプル・コードは巻末のプログラミングのヒントにあります。
62
コンボ・ボックス・コントロール
概要
VBMan データベース・コンボ・ボックス・コントロールはプロパティ DbListField,Db
ListSource,DbListTable の値で指定されたカラムのデータすべてをデータベー
スから取得し表示します。データ更新のタイミングは UbUpdateOption プロパテ
ィの設定により、なし、初期化時、フォーカス時を選択できます。
また、DbField,DbSource,DbTable プロパティで指定されるフィールドのデータとし
て、このコンボ・ボックスの選択値を設定、参照ができます。データを設定、参照
するのは VBMan ボタンの登録系のオペレーションまたは、DbTransferToContr
ol,DbTransferToControl メソッドです。
VBMan コンボ・ボックスは DbListIndex プロパティで指定されるキー・パスで、Bt
rieve の GET FIRST オペレーションを発行し、ファイルの最後まで GET NEXT
オペレーションを発行して、コンボ・ボックスにデータを挿入します。Sort プロパ
ティを True に設定している場合は VBMan コンボ・ボックスがメモリでソートして
データを表示し、DbListIndex プロパティで指定されるキー順にはならないことも
あるので注意してください。
VBMan コンボ・ボックスは、レコードをリストに表示する直前に Format イベント
が発生します。このイベントのパラメータはこれから表示しようとするフィールド
の値です。このイベント内ではこの表示しようとするデータを含むレコードがカレ
ント・レコードになっています。したがって、DbGetFieldData メソッドでフィールド
の値を取得可能です。
Format イベントでは他のフィールドの値を検査、計算した結果、別の文字列を
表示したければ、Format イベントのパラメータで渡る文字列に表示を更新する
文字列を設定することで可能です。 Format イベント内でイベントのパラメータに
ヌル文字列を設定した場合、そのレコードはコンボ・ボックスに表示されません。
また、現在のレコードまででリストを止めたい場合は Abort プロパティに True 値
を設定します。
Visual Basicをコントロール・コンテナにした場合は、DbUpdateOptionプロパティ
を初期化時に設定すると、Formatイベントが発生しません。これは初期化時に
はVisual Basicがイベントの発生を禁止していることが原因です。Formatイベン
トを正常に発行させるにはフォームのActivateイベントでこのコントロールのRefr
eshメソッドをよびだすことで回避することができます。 11
VBMan コンボ・ボックスの内容を再度 Btrieve データベースから読み込みたい
場合は、Reload メソッドを使います。
11
サンプル・コードは巻末のプログラミングのヒントにあります。
63
VBMan コンボ・ボックスに保持できる最大行数は 32767 件です。この値は 32bit
のコンボ・ボックスの仕様に依存する行数です。
以下の表は VBMan コンボ・ボックスに特有のプロパティ、メソッド、イベントです。
カスタム・プロパティ
Abort
DbListSource
DbUpdateOption
DbField
DbListTable
DbListField
DbSource
DbListIndex
DbTable
カスタム・イベント
Format
カスタム・メソッド
Reload
64
ピクチャー・コントロール
概要
VBMan ピクチャー・コントロールはグラフィック・イメージ・データを表示するコント
ロールです。Visula Basic に標準のイメージ・コントロールと同等の機能にデー
タベースからのデータを表示する機能を追加しました。
表示可能なイメージ・データは以下の形式のファイルです。
ビットマップ (.bmp)
アイコン (.ico)
ウィンドウズ・メタファイル (.wmf)
VBMan ピクチャー・コントロールでは DbSource,DbTalbe,DbField プロパティで指
定される文字列型データベース・フィールドの値をファイル名としてディスクから
イメージ・データを読み込み表示します。
指定されたファイルのイメージ・データタイプの判別にはファイル名の拡張子を
使用します。拡張子が指定されない場合はビットマップ(.bmp)と仮定します。
BlobPath プロパティにはイメージ・データが存在するディスク上のパスを指定す
ることが可能です。この場合、データベース・フィールドの値はファイル名だけが
指定されていることが必要です。BlobPath プロパティに指定がなく、データベー
ス・フィールドにファイル名だけが指定されるような場合はカレント・ドライブのカ
レント・ディレクトリにファイルが存在する扱いになります。
VBMan ピクチャー・コントロールに再度データを読み込む場合は Refresh メソッ
ドを呼び出します。
以下の表は VBMan ピクチャー・コントロールに特有のプロパティ、メソッド、イベ
ントです。
カスタム・プロパティ
BlobPath
DbField
DbSource
DbTable
カスタム・イベント
なし
カスタム・メソッド
65
なし
66
拡張リスト・ボックス・コントロール
概要
VBMan 拡張リスト・ボックス・コントロールは Btrieve の Extended オペレーション
に対応したリスト・ボックス・コントロールです。Btrieve の Extended オペレーショ
ンの特徴は以下です。
複合検索が可能
複数レコードを一度に転送するためパフォーマンスが高い
フィールドの選択によりネットワークの負荷を軽減
通常の Btrieve 呼び出しではパラメータの構成が非常に複雑ですが、VBMan で
はプロパティを指定するだけで簡単に Extended オペレーションが使用可能です。
プロパティの設定
Extended 系オペレーションを実行するためのプロパティ設定の手順を説明しま
す。
①
②
③
④
⑤
⑥
⑦
DbListSource プロパティの指定
DbListTable プロパティの指定
検索対象とするテーブル名を指定します。
DbExOperation プロパティの指定
GET PREVISOU EXTENDED, GET NEXT EXTENDED, STEP PREVI
OUS EXTENDED, STEP NEXT EXTENDED の中から選択します。
DbSkipRecords プロパティの指定
検索条件を満たさない場合にスキップするレコード数を設定します。0を
指定するとシステム定義の最大値を Btrieve が選択して使用します。Bt
rieve 6.15 では 4,095 です。
DbMaxRecords プロパティの指定
検索結果の最大レコード件数を設定します。Btrieve では結果はリニア
なメモリに返されるため、65,536 バイト以上を越えることができません。
65,536 を DbFields プロパティで指定する抽出するフィールドの合計サイ
ズで割った値以上は設定できません。
DbListFields プロパティの指定
抽出するフィールド名をカンマで区切った文字列を指定します。フィール
ド ID でも指定可能です。フィールド ID は DDF ビルダーの表示値を 0 オフ
セットにした値です。(例:1,2,4)
DbConditions プロパティの指定
検索条件を指定します。指定の詳細はカスタム・プロパティ・リファレン
スを参照してください。
67
⑧
⑨
DbTabStops プロパティの指定
VBMan リスト・ボックスでは Format イベントに渡されるデータは1つの
フィールドの値でしたが、VBMan 拡張リスト・ボックスの場合は複数の
項目が渡されます。DbTabStops プロパティを設定した場合は Format
イベントには DbFields で指定された複数のデータの区切りはタブ(&H0
9)文字になります。DbTabStops プロパティに何も指定しない場合はス
ペース文字(&H20)が区切り文字になります。DbTabStops プロパティは
半角の文字数をカンマで区切って指定します。(例:"10,20,30,40")DbTa
bStops プロパティは実行時のコントロールを作成する時に一度だけ参
照されます。実行時にダイナミックに変更することはできません。
DbLeaveResults プロパティの指定
このプロパティの設定は必須ではありません。検索の結果をメモリに保
持しておき、DbExGetFieldData 関数などを使って取り出す場合にこのプ
ロパティを True に設定します。DbExGetFieldData 関数に渡す結果 ID
は DbResultID プロパティに保持されます。(ランタイムのみのプロパティ
のため、プロパティ・リスト・ボックスには表示されないことに注意してく
ださい)DbUpdateOption をフォーカス時に設定した場合は DbExFree で
メモリを解放するコードを記述することが困難と思われるのでお勧めし
ません。
検索開始レコード
VBMan 拡張リスト・ボックスではすべてのレコードを検索対象とするため、Exten
ded オペレーションの前にカレント・レコードのポジショニングを実行します。各オ
ペレーションとポジショニングの関係を以下に示します。
EXTENDED オペレーション
GET PREVIOUS EXTENDED
GET NEXT EXTENDED
STEP PREVIOUS EXTENDED
STEP NEXT EXTENDED
POSITIONINGオペレーション
GET LAST
GET FIRST
STEP LAST
STEP FIRST
注意事項
Refresh メソッドを使うと Btrieve データベースから最新のデータを取得し、リス
ト・ボックスの内容を更新することができます。
以下の表は VBMan に特有のプロパティ、イベント、メソッドです。
カスタム・プロパティ
Abort
DbCompareCase
DbConditions
DbExOperation
68
DbFields
DbListSource
DbIndex
DbTabStops
DbLeaveResults
DbListTable
DbResultID
DbUpdateOption
DbListFields
DbListIndex
DbLocks
DbMaxRecords
DbSkipRecords DbTable
SavePosition
カスタム・イベント
BtrieveError
Format
カスタム・メソッド
Reload
69
拡張コンボ・ボックス・コントロール
概要
VBMan 拡張コンボ・ボックス・コントロールは Btrieve の Extended オペレーショ
ンに対応したコンボ・ボックス・コントロールです。Btrieve の Extended オペレー
ションの特徴は以下です。
複合検索が可能
複数レコードを一度に転送するためパフォーマンスが高い
フィールドの選択によりネットワークの負荷を軽減
通常の Btrieve 呼び出しではパラメータの構成が非常に複雑ですが、VBMan で
はプロパティを指定するだけで簡単に Extended オペレーションが使用可能です。
プロパティの設定
Extended オペレーションを実行させるためのプロパティ設定の手順を説明しま
す。
①
②
③
④
⑤
⑥
⑦
DbListSource プロパティの指定
DbListTable プロパティの指定
検索対象とするテーブル名を指定します。
DbExOperation プロパティの指定
GET PREVISOU EXTENDED, GET NEXT EXTENDED, STEP PREVI
OUS EXTENDED, STEP NEXT EXTENDED の中から選択します。
DbSkipRecords プロパティの指定
検索条件を満たさない場合にスキップするレコード数を設定します。0を
指定するとシステム定義の最大値を Btrieve が選択して使用します。Bt
rieve 6.15 では 4,095 です。
DbMaxRecords プロパティの指定
検索結果の最大レコード件数を設定します。Btrieve では結果はリニア
なメモリに返されるため、65,536 バイト以上を越えることができません。
65,536 を DbFields プロパティで指定する抽出するフィールドの合計サイ
ズで割った値以上は設定できません。
DbListFields プロパティの指定
抽出するフィールド名をカンマで区切った文字列を指定します。フィール
ド ID でも指定可能です。フィールド ID は DDF ビルダーの表示値を 0 オフ
セットにした値です。(例:1,2,4)
DbConditions プロパティの指定
検索条件を指定します。指定の詳細はカスタム・プロパティ・リファレン
70
⑧
⑨
スを参照してください。
DbDelimitChar プロパティの指定
VBMan 拡張コンボ・ボックスでは項目間の区切り文字を DbDelimtChar
プロパティで指定します。このプロパティに何も指定しない場合はスペー
スが項目間の区切り文字になります。
DbLeaveResults プロパティの指定
このプロパティの設定は必須ではありません。検索の結果をメモリに保
持しておき、DbExGetFieldData 関数などを使って取り出す場合にこのプ
ロパティを True に設定します。DbExGetFieldData 関数に渡す結果 ID
は DbResultID プロパティに保持されます。(ランタイムのみのプロパティ
のため、プロパティ・リスト・ボックスには表示されないことに注意してく
ださい)DbUpdateOption をフォーカス時に設定した場合は DbExFree で
メモリを解放するコードを記述することが困難と思われるのでお勧めし
ません。
検索開始レコード
VBMan 拡張コンボ・ボックスではすべてのレコードを検索対象とするため、Exte
nded オペレーションの前にカレント・レコードのポジショニングを実行します。各
オペレーションとポジショニングの関係を以下に示します。
EXTENDED オペレーション
GET PREVIOUS EXTENDED
GET NEXT EXTENDED
STEP PREVIOUS EXTENDED
STEP NEXT EXTENDED
POSITIONINGオペレーション
GET LAST
GET FIRST
STEP LAST
STEP FIRST
注意事項
Refresh メソッドを使うと Btrieve データベースから最新のデータを取得し、コン
ボ・ボックスの内容を更新することができます。
以下の表は VBMan 拡張コンボ・ボックスに特有のプロパティ、メソッド、イベント
です。
カスタム・プロパティ
Abort
DbExOperation
DbListIndex
DbMaxRecords
DbTable
DbCompareCase
DbFields
DbListSource
DbIndex
DbUpdateOption
DbConditions
DbLeaveResults
DbListTable
DbResultID
SavePosition
DbDelimitChar
DbListFields
DbLocks
DbSkipRecords
71
カスタム・イベント
BtrieveError
Format
カスタム・メソッド
Reload
72
グリッド・コントロール
概要
VBMan グリッド・コントロールは Btrieve の Extended オペレーションを使ってグ
リッドにデータを表示します。
プロパティの設定
Extended オペレーションを実行させるためのプロパティ設定の手順を説明しま
す。
①
②
③
④
⑤
⑥
⑦
⑧
DbListSource プロパティの指定
DbListTable プロパティの指定
検索対象とするテーブル名を指定します。
DbExOperation プロパティの指定
GET PREVISOU EXTENDED, GET NEXT EXTENDED, STEP PREVI
OUS EXTENDED, STEP NEXT EXTENDED の中から選択します。
DbSkipRecords プロパティの指定
検索条件を満たさない場合にスキップするレコード数を設定します。0を
指定するとシステム定義の最大値を Btrieve が選択して使用します。Bt
rieve 6.15 では 4,095 です。
DbMaxRecords プロパティの指定
検索結果の最大レコード件数を設定します。Btrieve では結果はリニア
なメモリに返されるため、65,536 バイト以上を越えることができません。
65,536 を DbFields プロパティで指定する抽出するフィールドの合計サイ
ズで割った値以上は設定できません。
DbListFields プロパティの指定
抽出するフィールド名をカンマで区切った文字列を指定します。フィール
ド ID でも指定可能です。フィールド ID は DDF ビルダーの表示値を 0 オフ
セットにした値です。(例:1,2,4)
DbConditions プロパティの指定
検索条件を指定します。指定の詳細はカスタム・プロパティ・リファレン
スを参照してください。
DbLeaveResults プロパティの指定
このプロパティの設定は必須ではありません。検索の結果をメモリに保
持しておき、DbExGetFieldData 関数などを使って取り出す場合にこのプ
ロパティを True に設定します。DbExGetFieldData 関数に渡す結果 ID
は DbResultID プロパティに保持されます。(ランタイムのみのプロパティ
のため、プロパティ・リスト・ボックスには表示されないことに注意してく
73
ださい)DbUpdateOption をフォーカス時に設定した場合は DbExFree で
メモリを解放するコードを記述することが困難と思われるのでお勧めし
ません。
検索開始レコード
VBMan グリッドではすべてのレコードを検索対象とするため、Extended オペレ
ーションの前にカレント・レコードのポジショニングを実行します。各オペレーショ
ンとポジショニングの関係を以下に示します。
EXTENDED オペレーション
GET PREVIOUS EXTENDED
GET NEXT EXTENDED
STEP PREVIOUS EXTENDED
STEP NEXT EXTENDED
POSITIONINGオペレーション
GET LAST
GET FIRST
STEP LAST
STEP FIRST
注意事項
Btrieve ファイル・バージョン
Btrieve のファイル・フォーマットはバージョン 6.x 以上であることが必要です。
表示内容の更新
Refresh メソッドを使うと Btrieve データベースから最新のデータを取得し、グリッ
ドを更新することができます。
トランザクション・コントロール
AllowDelete,AllowUpdate プロパティを True に設定した場合、表示データを削除、
修正することが可能です。グリッドの DbListSource で指定したデータ・ベース・コ
ントロールの DbBeginTransaction/DbAbortTransaction/DbEndTransaction メソ
ッドを適宜発行することで、表示データの修正をトランザクションとしてコントロー
ルすることが出来ます。
以下の表は VBMan グリッドに特有のプロパティ、メソッド、イベントです。
カスタム・プロパティ
Abort
AllowUserResizing
DbExOperation
AlignFixedCells
CellMaxLength
DbLeaveResults
AllowDelete
AllowUpdate
DbCompareCase DbConditions
DbListFields
DbListIndex
74
DbListSource
DbResultID
SetColWidth
DbListTable
DbLocks
DbMaxRecords
DbSkipRecords
DbUpdateOption SetColNames
SetRecordNumbers
カスタム・イベント
AfterColUpdate
BeforeDelete
AfterDelete
BeforeUpdate
AfterUpdate
BtrieveError
BeforeColUpdate
Format
カスタム・メソッド
Reload
75
カスタム・プロパティ・リファレンス
VBMan Controls for Btrieve のカスタム・プロパティについての解説です。
Abort
概要
Abort プロパティは VBMan ボタンの SetData イベントの中でデータベースに登
録するデータを検査して不都合を発見した場合、値を True にセットすることで、
データベースへの操作を中止できます。
また、リスト・ボックス等の Format イベント中で True に設定された場合には、リ
ストへのデータの読み込みは中断されます。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、リスト、コンボ、拡張リスト、拡張コンボ、グリッド
AlignFixedCells
概要
グリッドの固定セル上のテキストの右アライメントの有効/無効を設定します。設
定値は以下となります。
プロパティ値
False
True
意味
固定セルのテキストの右アライメントを無効とする。固定セ
ルのテキストは常に左アライメントとなる。
固定セルのアライメントは TextAlign プロパティの設定が有
効となる。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
76
AllOpen
概要
VBMan データベース・コントロールが実行モードでロードされたときにこのプロ
パティに値1が設定されていると、DDFDir プロパティで指定される DDF 定義に
あるテーブルに関連する Btrieve ファイルをすべてオープンします。このプロパ
ティに値 0 が指定されている場合は、各 VBMan コントロールが Btrieve ファイ
ルにアクセスすることが必要となるイベントが発生した時に Btrieve ファイルをオ
ープンします。
プロパティ・データ・タイプ
整数型
対象コントロール
データベース
AllowDelete
概要
グリッドに表示されているデータの削除を許可します。設定値は以下のようにな
ります。
プロパティ値
False
True
意味
削除は実行されません。
削除は実行されます。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
注意
グリッドからデータを削除する場合は FixedRows プロパティに1以上を設定して
マウスで削除する行を指定できるようにする必要があります。削除の操作手順
は以下のようになります。
①
②
削除したい行の左固定セルをマウス左クリックで選択します。
削除キーを押します。
77
AllowUpdate
概要
グリッドに表示されているデータの更新を許可します。設定値は以下のようにな
ります。
プロパティ値
False
True
意味
更新は実行されません。
更新は実行されます。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
AllowUserResizing
概要
グリッド・セルのリサイズを指定します。設定値は以下のようになります。
プロパティ値
0
1
2
3
意味
リサイズしない
カラム方向にリサイズ
ロー方向にリサイズ
両方向にリサイズ
プロパティ・データ・タイプ
正数型
対象コントロール
グリッド
AutoFirst
概要
このプロパティに True を設定すると、スクロール・バー・コントロールがロードさ
78
れた時に Btrieve の GET FIRST オペレーションを実行します。GET FIRST オ
ペレーションの結果は VBMan エディット・コントロールなどに表示されます。VB
Man リスト・ボックス、コンボ・ボックスを併用する場合は、フォームにコントロー
ルを配置する順に依存してリスト・ボックスにデータが表示されるタイミングとス
クロール・バーが GET FIRST オペレーションを実行するタイミングが前後するこ
とがありますのでご注意ください。スクロールとデータ登録関連のプロパティをセ
ットしたリスト・ボックス、コンボ・ボックスを併用する場合は、Visual Basic でした
ら、Form の Activate イベントでリスト、スクロールの順で明示的に Refresh メソ
ッドを呼び出すコードを記述してください。以下はサンプル・コードです。Static に
用意されているフラグは Activate イベントを初期化時の1回目だけに Refresh
を実行するための識別に使っています。
Sub Form1_Activate
Static bFirstFlag As Integer
If bFirstFlag = False Then
VBManListBox1.Refresh
VBManVScroll1.Refresh
bFirstFlag = True
End If
プロパティ・データ・タイプ
論理型
対象コントロール
水平スクロール・バー、垂直スクロール・バー
BlobPath
概要
VBMan ピクチャー・コントロールでイメージ・データの存在するディスク上のパス
を指定します。このプロパティを指定しない場合は VBMan ピクチャー・コントロ
ールはカレント・ドライブのカレント・ディレクトリに存在するイメージ・ファイルを表
示します。
プロパティ・データ・タイプ
文字列型
対象コントロール
ピクチャー・コントロール
79
CacheDDF
概要
このプロパティの値を True に設定した場合、同一プロセス内に同じ DDFDir プ
ロパティを定義したデータ・ベース・コントロールが存在し、すでに DDF 情報を読
みこんでいる場合に限り、実際の DDF を再度読みこむのではなく、メモリ間のコ
ピーによって DDF 情報を複製してパフォーマンスの向上を実現します。プロパ
ティの値を False と設定した場合にはメモリでの
DDF 複製は行われず、DDFDir プロパティで指定される DDF を読みこんで DDF
情報を設定します。
プロパティ・データ・タイプ
論理型
対象コントロール
データ・ベース
CellMaxLength
概要
AllowUpate プロパティを True に設定してデータの更新を可能としたグリッドでカ
ラム単位で編集ウィンドウに入力できる最大バイト数を設定します。カラムはプ
ロパティのインデックスとして指定します。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
注意
設定する値は文字の最大バイト数で、文字数では無いことに注意してください。
漢字は 2 バイトとしてカウントされます。
サンプル・コード
VBMGrid1.CellMaxLength(2) = 32
‘ 32 バイトまで文字を入力可能
ClearControlData
80
概要
このプロパティの値を True に設定すると、DbOperation プロパティに Insert,Dele
te,Update オペレーションを設定した場合に、ボタンのクリックにより Btrieve の
呼び出しが正常終了した後、VBMan エディットなどデータが表示されていたフィ
ールドのデータを空白にします。データを空白にするコントロールは DbSource,D
bTable プロパティが一致しているコントロールに限定されます。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン
ConfirmMsg
概要
ConfirmMsg プロパティを設定すると、VBMan ボタンに設定されたオペレーション
を Btrieve データベースに対して実行する前に確認メッセージが表示されます。
確認メッセージに No と答えた場合はデータベースに対するオペレーションは実
行されません。このプロパティは例えば、削除のオペレーションなどをボタンに
設定し、削除する前にユーザーに確認を促したい場合などに使います。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン
DbCompareCase
概要
Btrieve の Extended 系を使用する VBMan コントロールでこのプロパティ値を Tr
ue に設定すると、DbConditions プロパティで指定される検索条件を比較すると
き英数字のケース・センスを指定できます。このプロパティの設定はそのまま Bt
rieve の Extended 呼び出しのパラメータ・ブロックに設定されます。
プロパティ値
0
1
動作
大文字・小文字を区別
大文字・小文字を区別しない
81
プロパティ・データ・タイプ
整数型
対象コントロール
拡張リスト、拡張コンボ、グリッド
DbConditions
概要
Btrieve の Extended 系を使用する VBMan コントロールにおいて、検索条件を指
定します。検索条件の指定は以下のような書式です。
フィールドの指定
フィールドは@をプリフィックスとして指定します。たとえば@1 はフィールド ID の
1を意味します。VBMan for Btrieve/VBX プロフェッショナル版ではフィールド I
D しか指定できませんでしたが、VBMan Controls for Btrieve ではフィールド名
をそのまま指定できます。
比較演算子
比較演算子は以下の値を指定可能です。
=
>
<
<>
>=
<=
等しい
より大きい
より小さい
等しくない
より大きいか等しい
より小さいか等しい
複合検索
複合検索をする場合は検索条件を & (AND) | (OR)で結合します。
比較対象
比較対象で即値を指定する場合、スペースがディリミッタになります。スペース
が含まれる即値の場合はシングル・クゥォート、ダブル・クゥォート、スラッシュが
使えます。
例1
フィールド ID が 0 の項目が 100 から 1000 までの範囲
@0 >= 100 & @0 <= 1000
82
例2
フィールド名’会社名’が”TechKnowledge”または”System lab”
@会社名 = "TechKnowledge" | @会社名 = "System lab"
例3
フィールド ID の 0 と 1 が同じ値または 1000 以上
@0 = @1 | @0 >= 1000
例4
フィールド ID が 2 の項目が”NetScape”,”Microsoft”以外
@2 <> 'Microsoft' & @2 <> 'NetScape'
注意
このプロパティの各トークンの間はシングル・バイトのスペースで区切ってくださ
い。
複合検索においては、このプロパティの左から右への優先順位で評価されます。
括弧を使った優先順位づけなどはサポートされません。理由は、このプロパティ
の指定どうりに Btrieve の検索パラメータ・ブロックを作成して Btrieve の Extend
ed オペレーションをしているだけなので、Btrieve の Extended オペレーションに
おいてもパラメータ・ブロックの検索条件に優先順位がない為です。
文字列を検索フィールドに指定する場合英数字に関して DbCompareCase プロ
パティを「大文字・小文字の区別なし」に設定することで大文字、小文字を無視し
た比較が可能です。2バイト文字の英数字にはこのオプションは無効です。
プロパティ・データ・タイプ
文字列型
対象コントロール
拡張リスト、拡張コンボ、グリッド
DbDelimitChar
概要
拡張コンボ・ボックスで DbListFields プロパティに複数のフィールドを指定する場
合、フィールドの間を連結する文字を DbDelimitChar プロパティで指定します。
拡張コンボ・ボックスの Format イベントのパラメータとなる表示文字列もこのプ
ロパティで指定する文字で連結されて渡されます。Format イベントでフィールド
の文字を整形してコンボに表示する場合は、このプロパティにフィールドのデー
タとして存在しない値を設定して、Format イベントでフィールドの値を区別します。
この文字にはバイナリ・ゼロを指定することはできません。プロパティに何も指
定しない場合は、デフォルトとしてスペース文字(0x20,Chr$(20))をフィールド間の
83
区切り文字として使用します。
Visual Basic のプロパティ・ウィンドウでは文字列データとして存在しない Tab
のような文字を指定することはできませんから、以下のようにコードで指定する
ことになります。
VBManExComboBox1.DbDelitChar = Chr$(9)
VBManExComboBox1.Refresh
プロパティ・データ・タイプ
文字列型
対象コントロール
拡張コンボ
DbExOperation
概要
Btrieve の Extended オペレーションに対応した VBMan コントロールで、Extende
d オペレーションの種類を指定します。リスト・ボックスやコンボ・ボックスで Sort
プロパティを True に設定した場合は DbListIndex プロパティで設定されるキー
に沿って Get Previous/Next Extended オペレーションしても、リストに挿入され
る時にソートされてしまうので、注意してください。
プロパティ値
0
1
2
3
EXTENDED オペレーション
Get Previous Extended
Get Next Extended
Step Previous Extended
Step Next Extended
プロパティ・データ・タイプ
整数型
対象コントロール
拡張リスト、拡張コンボ、グリッド
DbField
概要
VBMan コントロールがデータを交換する、テーブルのフィールド名を指定します。
84
プロパティ設定ダイアログでは、DbSource,DbTable プロパティを選択した後でな
ければ、選択肢は表示されません。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、チェック・ボックス、コンボ、拡張コンボ、拡張リスト、エディット、グリッド、
オプション・ボタン、リスト、ピクチャー、スクロール
DbIndex
概要
Btrieve のオペレーションで GET PREVIOUS,GET NEXT などのインデックス・パ
スを必要とするオペレーションを VBMan ボタンで実行する場合に指定します。V
BMan スクロールでは、マウスのクリックなどで GET PREVIOUS,GET NEXT な
どの Btieve オペレーション を発行しますが、このプロパティの指定によって、イ
ンデックスのパスを指定します。このプロパティを指定しないと、インデックスの
パスは DDF 定義の最初のインデックスとしてこれらのオペレーションを実行しま
す。
インデックスの指定はVBMan for Btrieveバージョン 1.xではshort型の整数値で
したが、このバージョンではインデックスの名前を指定します。同じフィールド名
で異なるインデックスや、セグメント・キーの先頭のフィールド名が別のインデッ
クスでも存在し、複数のフィールド名が選択肢になる場合、DDFビルダーの「イ
ンデックス名の追加」で識別可能なインデックス名 12を設定してください。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、スクロール
DbLeaveResults
概要
Btrieve の Extended オペレーションでデータを取得する VBMan コントロールに
おいて、検索の結果をメモリに保持したい場合にこのプロパティを True に設定
12
Scalable SQL のマニュアルでは Named Index と記述されます。Create Index
という SQL 文で指定されるインデックスの名前です。
85
します。検索の結果は DbResultID プロパティに結果 ID が返され、この値を元に
DbExGetFieldData メソッド/関数でデータを参照することができます。検索結果
が不要になったら、DbExFree メソッド/関数で結果を開放してください。結果を開
放しないで、プログラムを終了した場合は動作を保証できません。
プロパティ・データ・タイプ
論理型
対象コントロール
拡張リスト、拡張コンボ、グリッド
DbListFields
概要
拡張リスト等複数のフィールドをリストするコントロールにおいて表示するフィー
ルドを指定します。フィールドはカンマ区切りで複数を指定できます。このプロパ
ティがプロパティ・ダイアログで指定可能になるためには、DbListSource,DbListT
able プロパティをこのプロパティより先に指定していることが必要です。
バージョン 1.x ではカンマ区切りで整数値のフィールド ID を指定していましたが、
このバージョンでは、カンマ区切りでフィールドの名前を指定します。
カンマはシングル・バイトのカンマを指定することに注意してください。
以下は Visual Basic におけるサンプル・コードです。
Sub Command1_Click()
VBManExListBox1.DbListFields = “コード,商品名,仕入先コード”
VBManExListBox1.Refresh
End Sub
プロパティ・データ・タイプ
文字列型
対象コントロール
拡張リスト、拡張コンボ、グリッド
DbListIndex
概要
Btrieve データをリストする VBMan コントロールでは、GET FIRST, GET NEXT
の順または、GET FIRST, GET NEXT EXTENDED などの順で Btrieve オペレ
ーションを発行します。これらのオペレーションはこの DbListIndex プロパティで
86
指定されたインデックス順にデータを読み込みます。
DbListIndex プロパティであるインデックス順にデータを読み込んだ場合、対象と
なるコントロールの Sort プロパティを True に設定すると、コントロールにデータ
が挿入される時点でソートされてしまい、このインデックス指定順にならない場
合がありますのでご注意ください。
プロパティは文字型で、コントロールのプロパティ・ダイアログで指定する場合は、
DbListSource,DbListTable プロパティが設定されていないと、選択肢がリストさ
れないのでプロパティの設定順にご注意ください。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、スクロール
DbListSource
概要
リスト系の VBMan コントロールが参照する VBMan データベース・コントロール
の Name プロパティの値を指定します。このプロパティを設定する対象となる VB
Man コントロールより先にフォームに VBMan データベース・コントロールが置か
れていない場合には、プロパティ設定ダイアログで選択肢が表示されません。
実行時にはこのプロパティで指定される VBMan コントロールの DDFDir プロパ
ティで指定されるテーブル、フィールド情報にしたがって、Btrieve データをリスト
します。
プロパティ・データ・タイプ
文字列型
対象コントロール
リスト、コンボ、拡張コンボ、拡張リスト、グリッド
DbListTable
概要
リスト系の VBMan コントロールがデータをリストするテーブル名を指定します。
プロパティ設定ダイアログでは、DbListSource が先に設定されていないと、選択
肢が表示されません。
プロパティ・データ・タイプ
87
文字列型
対象コントロール
リスト、コンボ、拡張コンボ、拡張リスト、グリッド
DbLocks
概要
DbLocksプロパティはBtrieveデータベースに対するオペレーション実行時にか
けるロックのタイプを指定します。シングル、マルチ、Wait,NoWaitを選択します。
13
プロパティ値
0
1
2
3
4
意味
ロックしない
シングル・ウェイト
シングル・ノーウェイト
マルチ・ウェイト
マルチ・ノーウェイト
ロックを解除する場合はDbUnlockメソッドまたは関数を使用することでも可能で
す。 14
プロパティ・データ・タイプ
整数型
対象コントロール
ボタン、拡張コンボ、拡張リスト、グリッド
DbMaxRecords
概要
Btrieve の Extended 系オペレーションでデータを取得する VBMan コントロール
で、検索結果の最大レコード件数を設定します。Btrieve では結果はリニアなメ
モリに返されるため、65,536 バイト以上を越えることができません。65,536 を Db
ListFields プロパティで指定する抽出するフィールドの合計サイズで割った値以
13
DbAccess メソッド・関数でロックをかける場合は第一パラメータの値にロック・
バイアス値を加算します。
14 Single ロックなどの場合は別のレコードにロックするとそれ以前のロックは解除
されます。
88
上は設定できません。
プロパティ・データ・タイプ
整数型
対象コントロール
拡張コンボ、拡張リスト、グリッド
DbOperation
概要
VBMan ボタンがクリックされたときに発行する Btrieve オペレーションを指定しま
す。以下の値が指定可能です。
プロパティ値
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BTRIEVE オペレーション
Insert
Update
Delete
GetEqual
GetFirst
GetLast
GetNext
GetPrevious
GetGreater
GetLessThan
GetGreaterOrEqual
GetLessThanOrEqual
StepFirst
StepLast
StepNext
StepPrevious
プロパティ・データ・タイプ
整数型
対象コントロール
ボタン
89
DbPhysicalPosition
概要
AllowDelete/AllowUpdate を True に設定したグリッドコントロールに表示されて
いるレコードの Btrieve ファイル上の物理位置を保持します。物理位置を取得す
る場合にはゼロ・オフセットのインデックスを指定して4バイトの物理位置を得る
ことができます。Fixed セルにはデータは表示されませんから、グリッドに表示さ
れている先頭のレコードの物理位置を得る場合には値0をプロパティ・インデッ
クスとして指定します。取得した物理位置は DbGetDirect メソッドに指定してレコ
ード全体を取得する等の利用が可能です。
プロパティ・データ・タイプ
長整数型
対象コントロール
グリッド
サンプル・コード
Dim lPos As Long
Dim rc As Integer
lPos = VBManGrid1.DbPhysicalPositon(3)
rc = VBManDb1.DbGetDirect(“TEST_TABLE”,lPos,”INDEX-1”)
DbResultID
概要
Btrieve の Extended 系オペレーションでデータをリストする VBMan コントロール
の DbLeaveResults プロパティを True に設定した場合には、このプロパティに結
果 ID が返されます。この ID を基に DbExGetFieldData メソッド/関数で検索結
果を得ることができます。検索結果が不要になったら、この ID を DbExFree メソ
ッド/関数で開放してください。プログラムの終了時に開放されていない場合の
動作については保証できません。
プロパティ・データ・タイプ
文字列型
対象コントロール
拡張コンボ、拡張リスト、グリッド
90
DbSavePosition
概要
このプロパティを True に設定すると、検索結果の Btrieve レコード物理位置を It
emData プロパティに保持します。この物理位置からレコード全体を取得するに
は DbGetDirect メソッドまたはバージョン 1.x コンパチブル・関数を使います。以
下はコード例です。
Dim Position As Long
Dim rc As Integer
‘ リストの先頭にあるレコードをカレント・レコードにする。
Position = VBManComboBox1.ItemData(0)
rc = VBMan1.DbGetDirect(“CUSTOMER”,Position,”INDEX1”)
If rc <> 0 Then
MsgBox “Btrieve error “ & CStr(rc)
Stop
End If
プロパティ・データ・タイプ
論理型
対象コントロール
拡張リスト・ボックス、拡張コンボ・ボックス
DbSkipRecords
概要
BtrieveのExtended系オペレーションでデータを取得するVBManコントロールで、
DbConditionsプロパティで指定される検索条件に合致しないレコード件数を指定
します。このプロパティの値だけ検索結果に合致しないレコードを読み込んだ場
合、Btrieveはステータス 64 15を返します。このステータスを得た場合はこの値を
大きくしてください。0 を指定した場合はシステムで定義された最大値となります。
Btrieve 6.15 ではこの値は 4,095 です。
プロパティ・データ・タイプ
15
Filter Limit Reached
91
整数型
対象コントロール
拡張コンボ、拡張リスト、グリッド
DbSource
概要
VBMan コントロールがデータを交換する VBMan データベース・コントロールの
Name プロパティの値を指定します。このプロパティを設定する対象となる VBMa
n コントロールより先にフォームに VBMan データベース・コントロールが置かれ
ていない場合には、プロパティ設定ダイアログで選択肢が表示されません。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、チェック・ボックス、コンボ、拡張コンボ、拡張リスト、エディット、グリッド、
オプション・ボタン、リスト、ピクチャー、スクロール
DbTable
概要
コントロールがデータを交換するテーブル名を指定します。プロパティの設定ダ
イアログでは DbSource プロパティを選択した後でなければ、選択肢は表示され
ません。
プロパティ・データ・タイプ
文字列型
対象コントロール
ボタン、チェック・ボックス、コンボ、拡張コンボ、拡張リスト、エディット、グリッド、
オプション・ボタン、リスト、ピクチャー、スクロール
DbTabStops
概要
拡張リスト・ボックスにおいて複数のフィールドを表示するように DbListFieds プ
ロパティで指定した時、それぞれのフィールドの表示開始カラム位置をこのプロ
パティで設定します。タブ位置はカンマで区切り、表示するフィールドの数だけ指
92
定します。
プロパティ・データ・タイプ
文字列型
対象コントロール
拡張リスト
Visual Basic サンプル
VBManExListBox1.DbTabStops = “1,20,30”
VBManExListBox1.Refresh
DbUpdateOption
概要
リスト・ボックスやコンボ・ボックスにデータを読み込むタイミングを設定します。
設定値は以下です。
プロパティ値
0
1
2
動作
データはリストされません。Refresh メソッドを発行してデータ
をリストしてください。
初期化時。コントロールがロードされた時、またはこのコント
ロールが参照しているデータベース・コントロールがロードさ
れた時にデータをリストします。
フォーカス時にデータをリストします。大量のデータをリスト
する場合、フォーカス時に設定すると、フィールドを移動する
ときにパフォーマンスに問題がでる場合が考えられます。デ
ータ量をよく見積もってからこの値を設定してください。
プロパティ・データ・タイプ
整数型
対象コントロール
コンボ、リスト、拡張リスト、拡張コンボ
DbValueFalse
93
概要
Btrieve データ・ベースのフィールドの値がこのプロパティで指定される値と同一
になった場合に、チェック・ボックスの場合は非チェック状態に、オプション・ボタ
ンの場合は非選択状態になります。VBMan バージョン 1.x では論理値しか設定
できませんでしたが、VBMan Controls for Btrieve からは、フィールドの値を表
示形式にした値とこのプロパティに設定した値を比較するように変更されました。
プロパティ・データ・タイプ
文字列型
対象コントロール
チェック・ボックス、オプション・ボタン
DbValueIndetraminate
概要
Btrieveデータ・ベースのフィールドの値がこのプロパティで指定される値と同一
になった場合に、チェック・ボックスはグレー状態 16になります。
プロパティ・データ・タイプ
文字列型
対象コントロール
チェック・ボックス
DbValueTrue
概要
Btrieveデータ・ベースのフィールドの値がこのプロパティで指定される値と同一
になった場合に、チェック・ボックスの場合はチェック状態に、オプション・ボタン
の場合は選択状態になります。VBManバージョン 1.xでは論理値しか設定でき
ませんでしたが、VBMan Controls for Btrieveからは、フィールドの値を表示形
式 17にした値とこのプロパティに設定した値を比較するように変更されました。
プロパティ・データ・タイプ
16
Win32 API リファレンスの BM_SETCHECK メッセージの説明を参照してくださ
い。WPARAM の値が 2 の場合にこの状態になります。
17 たとえば、バイナリの整数型をプリントできる文字(printable character)に変換
すること。
94
文字列型
対象コントロール
チェック・ボックス、オプション・ボタン
DDFDir
概要
VBMan データベース・コントロールのプロパティで DDF ファイルが存在するディ
レクトリを指定します。指定するディレクトリには以下の3ファイルが存在してい
ることが必要です。
FILE.DDF
FIELD.DDF
INDEX.DDF
プロパティ・データ・タイプ
文字列型
対象コントロール
データベース・コントロール
DistName
概要
このプロパティは DDFDir プロパティをアプリケーション配布時に置き換える VB
MAN.INI ファイルのセクション名を指定します。詳細は VBMan Controls for Btr
ieve で作成したアプリケーションの配布の章を参照してください。
プロパティ・データ・タイプ
文字列型
対象コントロール
データベース・コントロール
Format
概要
Format プロパティは Visual Basic を開発言語としている場合のみ、設定可能な
95
プロパティです。このプロパティの書式は Visual Basic の Format$関数の整形
文字列が指定可能です。たとえば、数値型であれば、このプロパティには “###,
###,###”のような文字列を指定すると、数値入力された場合に、以下で説明す
る FormatOption 設定のタイミングで”123,456”のように文字列が整形され、VBM
an エディットに設定・表示されます。
VBMan エディットは関連するフィールドのデータ型が Date 型、Time 型の場合、
この Format プロパティに何も指定されていなければ、それぞれ”YYYY/MM/D
D”,”HH:MM:SS”の形式でデータを整形します。
プロパティ・データ・タイプ
文字列型
対象コントロール
エディット
注意
リスト・ボックス、コンボ・ボックス、拡張リスト・ボックス、拡張コンボ・ボックス、グ
リッドには Format イベントが存在し、エディットには Format プロパティが存在し
ます。
FormatOption
概要
Format プロパティを設定したときに、VBMan エディットの動作オプションを設定
します。以下の値がプロパティに設定可能です。
プロパティ値
0
1
2
3
オプション動作
オプションを設定しません。
文字単位でフォーマット。キーボードからの文字入力が発
生する度に Format プロパティの指定があれば、これにし
たがって整形した文字列を VBMan エディットに設定しま
す。
右揃え。Format 文字列で整形した文字列を MaxLength プ
ロパティにしたがって、右揃えで表示します。また、VBMan
エディットがフォーカスを受け取った場合、文字列の右にカ
ーソルを設定します。かならず MaxLength プロパティに適
当な値を設定することが必要なことに注意してください。
右そろえ+文字単位フォーマット。このプロパティの値1と2
の動作をあわせておこないます。
プロパティ・データ・タイプ
96
整数型
対象コントロール
エディット
FormatString
概要
グリッドのカラム単位に整形文字列を指定します。整形文字列の形式は Visual
Basic の Format 関数とコンパチブルです。ホスト言語が Visual Basic の場合の
みこのプロパティの動作が保証されます。カラムの指定はプロパティのインデッ
クスで0ベースになります。
プロパティ・データ・タイプ
文字列型配列
対象コントロール
グリッド
サンプル・コード
With VBMGrid1
.FormatString(0) = “@@@@@@@@@@”
.FormatString(1) = “###,###,###”
.Refresh
End With
NumericMask
概要
VBManエディットコントロールに入力される文字を数値と特定の文字に限定しま
す。マスクを通過する文字は数値 18と,.+-です。Formatプロパティに###,###,###
のような数値を整形する文字列を設定する場合、このプロパティをTrueに設定
すると、ユーザーが誤って、英文字を入力したりすることを防止できます。
プロパティ・データ・タイプ
論理型
対象コントロール
18
シングル・バイトのみ。
97
エディット
OpenMode
概要
VBManデータベース・コントロールに関連するBtrieveファイルのオープン・モード
19を指定します。オープン・モードとして指定可能なプロパティ値は以下です。
プロパティ値
0
1
2
3
4
5
6
オープン・モード
ノーマル
アクセルレーテッド
リード・オンリー
ベリファイ
エクスクルーシブ
シングル・エンジン・ファイル・シェア
マルチ・エンジン・ファイル・シェア
プロパティ・データ・タイプ
整数型
対象コントロール
データベース・コントロール
OwnerName
概要
VBMan データベース・コントロールに関連する Btrieve ファイルの オーナー名
を指定します。
プロパティ・データ・タイプ
文字列型
対象コントロール
データベース・コントロール
19
Btrieve ファイルのオープン・モードの詳細は Btrieve プログラマーズ・マニュア
ルの Open オペレーションにあります。
98
ReadOnly
概要
このプロパティを True に設定すると、VBMan エディット・コントロールを読み取り
専用に設定します。キーボードによる、文字は受け付けなくなります。
プロパティ・データ・タイプ
論理型
対象コントロール
エディット
SetColNames
概要
このプロパティの値を True に設定するとグリッドにデータを表示するときに、最
初の Fixed カラムに DbListFields プロパティで指定されたフィールド名を設定、
表示します。グリッドの FixedCols プロパティの値は1に設定してください。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
SetColWidth
概要
SetColNames プロパティとこのプロパティに値 True を設定した場合はグリッドに
データ・ベースから読み、カラム名を Fixed セルに設定する時にセルの幅を自動
的に調整します。設定されるセルの幅はフィールド名の文字列がすべて表示さ
れる幅となります。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
SetRecordNumber
99
概要
このプロパティの値を True に設定するとグリッドにデータを表示するときに、最
初の Fixed ローにレコード番号を設定、表示します。グリッドの FixedRows プロ
パティの値は1に設定してください。
プロパティ・データ・タイプ
論理型
対象コントロール
グリッド
TextAlign
概要
グリッドのセルに表示される文字列のアライメントを指定します。セルの指定は
列単位での指定が可能です。列の指定はプロパティの配列で指定します。固定
セルに関しては AlignFixedCells プロパティを False に設定すると右つめの指定
は無効となります。
指定可能なプロパティ値は以下です。
プロパティ値
0
1
アライメント
左つめ
右つめ
プロパティ・データ・タイプ
整数型
対象コントロール
グリッド
サンプル・コード
Private Sub Form_Load
With VBManGrid1
.TextAlign(1) = 1
‘右つめ
.ColWidth(1) = 1000
‘セル幅を設定
.ImeMode(1) = 1
‘IME モードを設定
.CellMaxLength(1) = 10
‘入力の最大長を設定
.Col = 1
100
.Row = 0
.Text = “売上高”
.Refresh
End With
End Sub
‘ データを読み込む
UpperCase
概要
このプロパティを True に設定すると、VBMan エディット・コントロールに英数文
字を入力された場合にはアッパーケースに変換します。
プロパティ・データ・タイプ
論理型
対象コントロール
エディット
101
カスタム・イベント・リファレンス
VBMan Controls for Btrieve のカスタム・イベントについて解説します。
AfterColUpdate
書式
Object_AfterColUpdate()
パラメータ
なし
概要
グリッドコントロールでは AllowUpdate プロパティを True に設定した場合にセル
が編集可能になります。編集可能となったセルからフォーカスが右矢印キーま
たは Enter キーにて次のセルに移動するときに編集内容が Text プロパティとし
て保持された後に当イベントが発生します。
対象コントロール
グリッド
AfterDelete
書式
Object_AfterDelete()
パラメータ
なし
概要
AllowDelete プロパティを True に設定したグリッドでレコード削除が実行された
後に発生するカスタム・イベントです。
対象コントロール
グリッド
AfterUpdate
102
書式
Object_AfterUpdate()
パラメータ
なし
概要
AllowUpdate プロパティを True に設定したグリッド・コントロールでレコードの Up
date 終了後に発生するイベントです。
対象コントロール
グリッド
BeforeColUpdate
書式
Object_BeforeColUpdate( Cancel As Integer, ColValue As String )
パラメータ
Cancel
ColValue
0 以外の値をイベント無いで設定した場合にはカラムの変更を
キャンセルします。
編集されたテキストの値です。編集前のテキストは Text プロパ
ティに設定されています。
概要
AllowUpdate プロパティを True に設定したグリッド・コントロールではカラムの編
集が可能になります。当イベントはカラムが編集されて変更がグリッドの Text プ
ロパティとして設定される前に発生します。アプリケーションはカラムの値を検査
して不正と判断した場合には Cancel パラメータに 0 以外の値をセットすることで
編集以前の値に戻すことが出来ます。
対象コントロール
グリッド
BeforeDelete
書式
Object_BeforeDelete( Cancel As Integer )
103
パラメータ
Cancel
0 以外の値をイベント無いで設定した場合にはレコードの Delet
e をキャンセルします。
概要
対象コントロール
グリッド
BeforeUpdate
書式
Object_BeforeUpdate( Cancel As Integer )
パラメータ
Cancel
0 以外の値をイベント無いで設定した場合にはレコードの Upda
te をキャンセルします。
概要
AllowUpdate プロパティを True に設定したグリッド・コントロールでレコードの Up
date を実行する直前に発生するイベントです。アプリケーションはイベント内で
は変更されるデータの妥当性を検証して、データに不正が発見された場合はエ
ラー・メッセージを表示して Calcel パラメータに 0 以外の値を設定することでレコ
ードの Update 処理を無効にできます。
対象コントロール
グリッド
BtrieveError
書式
Object_BtrieveError( TableName As String,
Status As Integer )
パラメータ
TableName
Status
Btrieve 呼び出しの対象となったテーブル名。
Btrieve からのステータス。
104
概要
VBMan カスタム・コントロールが Btrieve を呼び出した結果、ステータスが 0 以
外の値が Btrieve から返された場合にこのイベントが発生します。
VBMan ボタンなどのオペレーション時に Btrieve からエラーが返されると、この
イベントが発生した後にはデフォルトでメッセージ・ボックスが表示されます。こ
のメッセージ・ボックスを表示したくない場合は、第 2 パラメータの値に 0 をセッ
トします。以下は Visual Basic でのコード例です。
Sub BtrieveError( TableName As String, Status As Integer )
MsgBox “Btrieve エラーです “ & CStr(Status)
Status = 0
End Sub
対象コントロール
VBMan カスタム・コントロール
Format
書式
Object_Format( LineData As String )
パラメータ
LineData
リスト・ボックス/コンボ・ボックスに表示する文字列
概要
リスト・ボックス等にデータを挿入する直前にこのイベントが発生します。
リスト・ボックス、コンボ・ボックスではこのイベントが発生した時にはパラメータと
して渡されたフィールドを含むデータのカレント・レコードが存在します。したがっ
て DbGetFieldData メソッドまたは関数を呼び出すことで、イベント・パラメータ Li
neData 以外のフィールドの値を得ることができます。
拡張リスト、拡張コンボ、グリッドでは Format イベントが発生したときには、Btrie
ve の Extended 系のオペレーションが終了しているので、カレント・レコードは最
後に取得したレコードになります。したがって、Format イベントで DbGetFieldDat
a メソッドを使っても常に同じレコードのフィールドの値が返されるので、このメソ
ッドを使う意味はありません。これらのコントロールでは DbListFields プロパティ
に複数のフィールドが指定可能でそれらの値が LineData プロパティで渡される
ので、他のフィールドを参照するのではなく、DbListFields プロパティに参照した
いフィールドを記述することになります。これは同じテーブルに関することで、他
のテーブルを参照する場合は、LineData に他のテーブルのキーとなる値が存
105
在すれば、DbAccess メソッドを使って他のテーブルの値を GET EQUAL オペレ
ーション等で参照することは可能です。
拡張リストではTabStopsプロパティを指定した場合、フィールドの間はタブ文字
20で連結されてFormatイベントに渡されます。
拡張コンボでは DbDelimitChar プロパティの値で指定した文字がフィールドの間
を連結して Format イベントに渡されます。
対象コントロール
コンボ、リスト、拡張リスト、拡張コンボ、グリッド
SetData
書式
Object_SetData()
パラメータ
無し
概要
VBMan ボタンコントロールにおいて DbOperation プロパティにデータを登録する
オペレーションがセットされている場合、ユーザーがボタンを押したときにこのイ
ベントが発生します。このイベントでは DbSetFieldData メソッド/関数を使って、
フォームのコントロールにないテーブルのフィールドにデータをセットしたり、フォ
ームのコントロールへの入力の正当性をチェックして不正であれば、メッセージ
を表示して、Abort プロパティを True にセットすれば、ボタンを押したオペレーシ
ョンを中断することもできます。イベントのタイミングはフォームにある関連するコ
ントロールのデータを VBMan データ・ベース・コントロールのレコード・イメージ
のバッファに転送した後で、Btrieve を呼び出す直前です。以下は Visual Basic
によるサンプル・コードです。
‘ ボタンの Name プロパティは InsertData となっている例です。
‘ このボタンの DbSource プロパティは VBMan1 となっています。
Sub InsertData_SetData()
If Val( ItemPrice.Text ) <= 0 Then
MsgBox “商品の値段が入力されていません”
InsertData.Abort = True
Exit Sub
End If
‘ 在庫個数を 0 にセット
20
アスキー・コード 9
106
VBMan1.DbSetFieldData(“商品”,”在庫”,”0”)
End Sub
VBMan ボタンのイベントとデータベースへのアクセスに関する順序を以下に示
します。
マウスによるボタン・クリック
確認メッセージ
データベース・コントロールの
データをファイル・バッファへ転送
Abort=True
SetDataイベント発生
Btrieveオペレーション
異常終了?
BtrieveErrorイベント発生
Clickイベント発生
対象コントロール
ボタン
107
カスタム・メソッド・リファレンス
コンパチビリティの章でも説明しましたが、VBMan Controls for Btrieve では、
従来のバージョン 1.x コンパチブル関数に加えて、VBMan データベース・コント
ロールのメソッドとして、バージョン 1.x 関数相当のメソッドがデータ・ベース・コン
トロールに追加されました。
Visual Basic 32bit 版では関数からメソッドへの変更に伴って、関数宣言は必要
なくなりましたが、メソッドのパラメータでの定数は Btrieve.bas ファイルに定義さ
れていますのでこのファイルをプロジェクトに追加してメソッドをご利用ください。
DbAbortTransaction
Object.DbAbortTransaction() As Integer
概要
トランザクションの中止を宣言します。
パラメータ
なし。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外の正の値 Btrieve のステータス・コードが返されます。
DbAccess
Object.DbAccess(BtrieveOpCode As Integer,
TableName As String,
KeyName As String) As Integer
概要
BtrieveOpCode で指定される Btrieve の機能を呼び出します。
パラメータ
BtrieveOpCode
Btrieve の機能番号を指定します。VBMan に添付される BTRIEVE.BAS ファイル
に定義されています。このメソッドで使用できる Btrieve オペレーション・コードは
108
このファイルに定義されているものに限定されます。
TableName
Btrieve オペレーションを発行するテーブルの名前を指定します。
KeyName
Btrieve オペレーションに関連するキーの名前を指定します。テーブル定義上、
同じキーの名前が存在する場合は VBMan DDF ビルダーでキーに別名を設定
してください。
戻り値
正常終了ならば 0 が返ります。負の値は VBMan エラー・コード一覧を参照して
ください。それ以外の正の値 Btrieve のステータス・コードです。
Visual Basicサンプル
Dim rc%
With VBManDb1.
rc% = .DbSetFieldData(“従業員”,”社員番号”,"066217")
rc% = .DbAccess(BTR_GET_EQUAL,”従業員”,”社員キー”)
If rc% <> 0 Then
MsgBox "Btrieveの呼び出しに失敗しました" + Str$(rc%)
Exit Sub
End If
‘読み込んだ結果をフォーム上のコントロールに転送
rc% = .DbTransferToControl(“従業員”)
End With
DbAccessByID
Object.DbAccessByID(BtrieveOpCode As Integer,
TableID As Integer,
KeyID
As Integer) As Integer
概要
BtrieveOpCode で指定される Btrieve の機能を呼び出します。テーブルとキー
は整数値の ID を指定します。ID によるテーブル、フィールドの指定は VBMan
バージョン 1.x での仕様と同様になりますので既存のバージョン 1.x コードを移
植する際に有効です。
109
パラメータ
BtrieveOpCode
Btrieve の機能番号を指定します。VBMan に添付される BTRIEVE.BAS ファイル
に定義されています。このメソッドで使用できる Btrieve オペレーション・コードは
このファイルに定義されているものに限定されます。
TableID
Btrieve オペレーションを発行するテーブル ID を指定します。
KeyID
Btrieve オペレーションに関連するキーID を指定します。キーID は DDF ビルダ
ーで定義されたキーを識別する整数値です。ゼロ・オフセットで指定します。
戻り値
正常終了ならば 0 が返ります。負の値は VBMan エラー・コード一覧を参照して
ください。それ以外の正の値 Btrieve のステータス・コードです。
サンプル・コード
Const TID_EMP = 10
Const FID_EMP_NO = 1
Const KID_EMP_NO = 0
Dim rc%
With VBManDb1.
rc% = .DbSetFieldDataByID(TID_EMP,FID_EMP_NO,"066217")
rc% = .DbAccessByID(BTR_GET_EQUAL,TID_EMP_NO,KID_EMP_NO)
If rc% <> 0 Then
MsgBox "Btrieveの呼び出しに失敗しました" + Str$(rc%)
Exit Sub
End If
End With
110
DbBeginConCurTransaction
Object.DbBeginConCurTransaction(LockBias As Integer) As Integer
概要
コンカレント・トランザクションの開始を宣言します。
パラメータ
LockBias
トランザクション・ロックを指定。値は 100,200,300,400,500 を指定可能。詳細は
Btrieve プロクラマーズ・マニュアルを参照してください。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbBeginTransaction
Object.DbBeginTransaction(LockBias As Integer) As Integer
概要
トランザクションの開始を宣言します。
パラメータ
LockBias
トランザクション・ロックを指定。値は 100,200,300,400 を指定可能。詳細は Btrie
ve プロクラマーズ・マニュアルを参照してください。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbClearControlData
Object.DbClearControlData(TableName As String) As Integer
概要
111
アクティブなフォームにあるコントロールのデータ 21を初期化します。Btrieveの
データ入出力に使われるメモリ・バッファは初期化されません。こちらを初期化し
たい場合は、DbClearFieldBufferメソッドを使ってください。
パラメータ
TableName
データを初期化したいコントロールが関連しているテーブル名
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbClearFieldBuffer
Object.DbClearFieldBuffer( TableName As String ) As Integer
概要
指定したテーブルのデータ・バッファを初期化します。データ・バッファは Btrieve
とのデータを交換するメモリ・エリアです。
パラメータ
TableName
テーブルの名前を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbClose
Object.DbClose( TableName As String ) As Integer
概要
指定されるテーブルに関連する Btrieve ファイルをクローズします。このメソッド
を呼び出す以前に Btrieve ファイルはオープンされている必要があります。
21
VBMan エディットのテキスト・プロパティを空にします。
112
パラメータ
TableName
テーブルの名前を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbCloseAll
Object.DbCloseAll() As Integer
概要
DDF に定義された Btrieve ファイルをすべてクローズします。
パラメータ
なし
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbCreate
Object.DbCreate( TableName As String ) As Integer
概要
TableName で指定されるテーブルに関連する Btrieve ファイルを生成(Create)し
ます。レコード長、インデックスの構成などは DDF の定義を参照します。このメ
ソッドを呼び出す時には関連する Btrieve ファイルはクローズされていることが
必要です。サーバーにある Btrieve ファイルをマルチ・ユーザーで使用する場合
は一つのクライアントから DbClose しても、他でオープンしていれば、このメソッ
ドは成功しません。すでに Btrieve ファイルが存在するような場合は上書きされ
ますので注意してください。生成される Btrieve ファイルのページ・サイズは 4,09
6 となります。
パラメータ
TableName
113
テーブルの名前を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
Visual Basic サンプル
Dim rc As Integer
rc = VBMan1.DbClose(“月次ファイル”)
Kill “c:\data\月次.btr”
rc = VBMan1.DbCreate(“月次ファイル”)
If rc <> 0 Then
MsgBox “Btrieve create ステータス “ & CStr(rc)
Stop
End If
rc = VBMan1.DbOpen(“月次ファイル”)
If rc <> 0 Then
MsgBox “Btrieve open ステータス “ & CStr(rc)
Stop
End If
DbEndTransaction
Object.DbEndTransaction() As Integer
概要
トランザクションの終了を宣言します。
パラメータ
なし。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbExAccess
Object.DbExAccess( OpCode As Integer,
TableName As String,
SearchCondition As String,
Fields As String,
114
IndexName As String,
SkipRecords As Integer,
MaxRecords As Integer,
IgnoreCase As Integer,
ResultID As Integer,
NumberOfResults As Integer ) As Integer
概要
Btrieve の Extended 関数を実行します。
パラメータ
TableName
テーブル名を指定します。
OpCode
Extended オペレーション・コードを指定します。指定できる値は BTRIEVE.BAS
に宣言してある以下の値です。
BTR_GET_PREVIOUS_EXTENDE 37
D
BTR_GET_NEXT_EXTENDED
36
BTR_STEP_PREVIOUS_EXTENDE 39
D
BTR_STEP_NEXT_EXTENDED
38
SearchCond
検索条件文字列を指定します。拡張リスト・ボックス、拡張コンボ・ボックスの検
索条件文字列と同じ形式で指定します。
フィールドは@をプリフィックスとして比較式の左辺に指定します。@プリフィック
スの後にはフィールド名を記述します。バージョン 1.x とのコンパチビリティのた
めに、フィールド ID も指定できます。(例;フィールド ID の10は@10と指定す
る)比較演算子は以下を指定します。
=
>
<
<>
>=
<=
等しい
より大きい
より小さい
等しくない
より大きいか等しい
より小さいか等しい
複合検索をする場合は検索条件を&(AND)または|(OR)で結合します。比較
115
対象を即値で指定する場合はスペースがディリミッタになります。スペースが含
まれる即値を指定する場合はシングル・クゥオート、ダブル・クゥォート、スラッシ
ュで文字列を囲みます。以下に検索文字列の例を示します。
@0 >= 100 & @1 <= 1000
@製品 = “VBMan” | @製品 = “Visual Basic”
@2 <> /Microsoft/ & @2 <> /Borland/
Fields
検索結果として抽出するフィールドを指定します。フィールド名またはフィールド I
D をカンマで区切ったものを指定します。フィールドは ID をカンマで区切った文
字列を指定します。フィールド ID は DDF ビルダーの表示値を 0 オフセットにし
た値です。(例:10,22,34)
IndexName
GET NEXT/PREVIOUS EXTENDED オペレーションを実行する際のインデック
スのパスを指定します。DbAccess 関数の第三パラメータと同じ形式で指定しま
す。カレント・レコードが確立されていない場合、GET NEXT/PREVIOUS EXTEN
DED オペレーションはエラーを返します。
SkipRecords
検索条件を満たさない場合にスキップするレコード数を指定します。
MaxRecords
検索結果の最大レコード件数を指定します。Btrieve では結果が 65,536 バイト
をこえることができません。65,535 を Fields で指定した抽出するフィールドのデ
ータ長の合計値で割った数以上は設定できません。
IgnoreCase
文字列フィールドを比較する場合、0 以外の値を指定すると英数字に関して大
文字、小文字の区別無く比較を実行します。2 バイト文字にはこのオプションは
サポートされません。
ResultID
結果 ID が整数値で返されます。結果を取得するにはこの ID を指定して DbExG
etFieldData,DbExGetPosition 関数を使用します。結果が不要になったらこの ID
で DbExFree 関数を呼び出し資源を解放します。
NumberOfResults
検索結果件数が返されます。
戻り値
116
正常ならば0が返されます。正の整数値が返された場合は Btrieve からのエラ
ー・コードです。負の整数値は VBMan エラー・コード一覧を参照してください。
また、エラー9,22,60,64,65 等が返った場合でも結果が存在する場合もあることに
注意してください。
以下にこのオペレーションで Btrieve から返されるエラー・コードを抜粋します。
03
06
07
08
09
22
60
61
62
64
65
82
FILE NOT OPEN
Invalid Key Number
Different Key Number
Invalid Position
End Of File
Data Buffer Length
Reject Count Reached
Work Space Too Small
Incorrect Descriptor
Filter Limit Reached
Incorrect Field Offset
Lost Position
注意
カレント・レコードを検索の対象から除外したい場合は DbExSetMode メソッドで
指定します。
Visual Basic サンプル
Dim rc As Integer
Dim ResultID As Integer
Dim NumOfRecords As Integer
Dim Fields As String
Dim SearchCond As String
Dim a$,I As Integer
SearchCond = “@売値 > 100 & @売値 < 200”
Fields = “コード,売値,仕切値,仕入先”
rc = DbExAccess( BTR_GET_NEXT_EXTENDED, 0, SearchCond, Fields, 0,12
7,100,0,ResultID,NumOfRecords )
If rc <> 9 & rc <> 0 & rc <> 60 Then
MsgBox “Btrieve Extended Opeartion Error “ & Str$(rc)
Stop
End If
‘ 結果をリスト・ボックスに追加
117
For I = 0 To NumOfRecords -1
a$ = DbExGetFieldData(ResultID,0,I)
a$ = a$ & “ “ & DbExGetFieldData(ResultID,1,I)
ResultListBox.AddItem a$
Next I
‘ 結果を保持するメモリを解放
rc = DbExFree(ResultID)
DbExFree
Object.DbExFree( ResultID As Integer )
概要
DbExAccess 関数によって返される結果に付随する資源を解放します。
パラメータ
ResultID
DbExAccess 関数の結果として返される結果 ID を指定します。
戻り値
なし。
注意
DbExAccess 関数の結果は検索結果件数と抽出するフィールドのサイズと件数
に比例してメモリを消費します。不要になった結果はこの関数を呼び出して解放
してください。
DbExGetFieldData
Object.DbExGetFieldData( ResultID As Integer,
FieldID As String,
Location As Integer) As String
概要
DbExAccess メソッドの結果をフィールド単位で取得します。
パラメータ
ResultID
DbExAccess メソッドの結果として返される結果 ID を指定します。
118
FieldID
フィールド名を文字列で指定します。
Location
DbExAccess は検索結果として複数のレコード・イメージを返します。Location
パラメータは所得する結果の位置を指定します。0 オフセットで結果位置を整数
で指定します。DbExAccess では検索結果件数を返しますがその値以上を指定
することはできません。
戻り値
パラメータ不正、メモリが不足して Visual Basic 文字列が作成できない場合にヌ
ル文字列を返します。正常の場合はフィールドの値を文字列で返します。
DbExGetPosition
Object.DbExGetPosition( ResultID As Integer,
Location As Integer ) As Long
概要
DbExAccess 関数の結果を物理レコード位置単位で所得します。
パラメータ
ResultID
DbExAccess 関数の結果として返される結果 ID を指定します。
Location
DbExAccess は検索結果として複数のレコード・イメージを返します。Location
パラメータは所得する結果の位置を指定します。0 オフセットで結果位置を整数
で指定します。DbExAccess では検索結果件数を返しますがその値以上を指定
することはできません。
戻り値
Btrieve の物理位置が返されます。
注意
レコードの物理位置は Btrieve で管理される値で整数のシリアルな値ではあり
ません。
DbExSetMode
Object.DbExSetMode( NewMode As String ) As Integer
119
概要
DbExAccess メソッド/関数にてカレント・レコードを検索対象とするか除外するか
を設定します。
パラメータ
NewMode
検索対象にする場合はも列”UC”をパラメータとして設定します。カレント・レコー
ドを検索対象としない場合は文字列”EG”をパラメータとして設定します。”UC”
または “EG”以外の文字列を設定した場合は、DbExAccess メソッド/関数でエラ
ーが発生します。
パラメータ値
UC
EG
動作
カレント・レコードを検索対象に含める。
カレント・レコードを検索対象から除外する。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbFindPercentage
Object.DbFindPercentage(TableName As String,
KeyName As String,
PhysicalPosition As Long,
Percentage As Integer) As Integer
概要
レコード位置をパーセントで取得します。
パラメータ
TableName
テーブル名を指定します。
KeyName
インデックス名を指定します。ヌルを指定した場合は物理位置で取得します。
PhysicalPosition
パーセンテージを得る物理位置を指定します。このパラメータを有効にするため
には、KeyName にヌル文字列を設定します。
Percentage
取得する位置。たとえば、80 パーセントの位置の場合、整数値で 8000 が返りま
120
す。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
03
06
07
08
09
22
41
43
82
FILE NOT OPEN
Invalid key number
Different key number
Invalid positioning
End of file
Data buffer length
Operation not allowed
Invalid data record address
Lost position
注意
Btrieve ファイルはバージョン 6.X 以降の形式でなければ使用できません。
DbGetByPercentage
Object.DbGetByPercentage(TableName As String,
KeyName As String,
Percentage As Integer) As Integer
概要
パーセント指定でレコードを取得します。
パラメータ
TableID
テーブル名を指定します。
KeyName
インデックス名を指定します。ヌル文字列を指定した場合は物理位置でレコード
を取得します。
Percentage
取得する位置をパーセントで指定します。たとえば、80 パーセントの位置の場
合、8000 を指定します。
121
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
03
06
07
08
09
22
41
82
FILE NOT OPEN
Invalid key number
Different key number
Invalid positioning
End of file
Data buffer length
Operation not allowed
Lost position
注意
Btrieve ファイル形はバージョン 6.x 以降であることが必要です。
DbGetDataSize
Object.DbGetDataSize(TableName As String,
FieldName As String) As Integer
概要
指定したフィールドのデータ・サイズ(バイト)を返します。
パラメータ
TableName
テーブル名を指定します。
FieldName
フィールド名を指定します。
戻り値
正常ならばフィールドのデータ・サイズが返されます。負の値は VBMan エラー・
コード一覧を参照してください。
DbGetDataType
Object.DbGetDataType( TableName As String,
FieldName As String ) As Integer
122
概要
指定したフィールドの Btrieve データ型を返します。
パラメータ
TableName
テーブル名を指定します。
FieldName
フィールド名を指定します。
戻り値
正常ならばフィールドのデータ型が返されます。負の値は VBMan エラー・コード
一覧を参照してください。
データ型
String
Integer
Float
Date
Time
Decimal
Money
Logical
Numeric
Bfloat
Lstring
Zstring
Note
Lvar
Unsinged Binary
Auto increment
Named Index
リターン値
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
255
DbGetDirect
Object.DbGetDirect(TableName As String,
Pos As Long,
NewIndexName As String) As Integer
123
概要
指定された物理レコード位置から、Btrive データを読み込みます。
パラメータ
TableName
テーブル名を指定します。
Pos
物理レコード位置を設定します。DbGetPosition 関数で取得する、4 バイトの整
数です。
NewIndexName
この関数によって得られたレコードの新アクセス・パスをインデックス名で指定し
ます。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbGetFieldData
Object.DbGetFieldData(TableName As String,
FieldName As String) As String
概要
データベースのフィールドの値を指定されたテーブルのデータ・バッファから文
字列データとして返します。
パラメータ
TableName
テーブル名を指定します。
FieldName
フィールド名を指定します。
戻り値
フィールドの値が文字列で返されます。データベースのフィールドから文字列デ
ータ型への変換はこの関数内部でおこなわれます。たとえば時間型は、"hh:m
m:ss"の形で返されます。エラーが発生した場合は、ヌル文字列が返されます。
ヌル文字が返されるのは、テーブル名、フィールド名がこのメソッドの関連する D
DF 定義に存在しない場合です。
124
DbGetFieldDataByID
Object.DbGetFieldDataByID(TableID As Integer,
FieldID As Integer) As String
概要
テーブル ID,フィールド ID で指定したデータベースのフィールドの値を文字列デ
ータとして返します。
パラメータ
TableID
テーブル ID を指定します。
FieldID
フィールド ID を指定します。
戻り値
フィールドの値が文字列で返されます。データベースのフィールドから文字列デ
ータ型への変換はこの関数内部でおこなわれます。たとえば、時間型は、"hh:m
m:ss"の形で返されます。エラーが発生した場合は、ヌル文字列が返されます。
ヌル文字が返されるのは、テーブル ID、フィールド ID がこのメソッドの関連する
DDF 定義に存在しない場合です。
注意
VBMan for Btrieve/VBX バージョン 1.x でのテーブル指定、フィールド指定に
用いた整数値 ID を利用できますので、バージョン 1.x のコードを移植する際に
便利です。
また、Visual Basic 等の 32bit 言語では文字列型は UNICODE を使っており、当
メソッドのパラメータを文字列で指定する DbGetFieldData メソッドに比べて、内
部的に消費するメモリ量が少なくて済みます。内部ロジックでデータが保持され
ている領域を検索する際にも整数値での指定をする当メソッドのほうが比較す
るバイト数が少なくなりますのでパフォーマンスの向上が期待できます。
DbGetFieldName
Object.DbGetFieldName(TableName As String,
FieldID As Integer,
FieldName As String) As Integer
概要
テーブル名,フィールド ID で指定したフィールド名を返します。
125
パラメータ
TableName
テーブル名を指定します。
FieldID
フィールド ID を指定します。0 ベースで指定します。
FieldName
フィールド名が返されます
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbGetIndexName
Object.DbGetIndexName(TableName As String,
IndexID As Integer,
IndexName As String) As Integer
概要
インデックス ID で指定したインデックスが設定されているフィールド名を返しま
す。
パラメータ
TableName
テーブル名を指定します。
IndexID
インデックス ID を指定します。0 ベースで指定します。
IndexName
インデックスが設定されているフィールド名が返されます
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
インデックス名(NamedIndex)はこのメソッドでは得ることができません。
DbGetModulePath
126
Object.DbGetModulePath( BtrieveModulePath As String ) As Integer
概要
VBMan が利用している Btrieve API モジュールへのパスを取得します。複数の
バージョンの Btrieve が同じパソコンにインストールされている場合、どのモジュ
ールを利用しているかを判別するために使います。
パラメータ
BtrieveModulePath
VBMan が利用しているモジュールへのパスとモジュール名が返されます。(例:
c:\windows\system\wbtrv32.dll)
戻り値
正常ならば 0 が返されます。VBM_ERR_GENERIC(-1)が返される場合は Btrieve
のモジュールを Win32 API でロードできない場合です。
注意
Btrieve 開発キット、Btrieve サーバーに添付されるクライアント・モジュール、VB
Man に添付される Btrieve Workstation Engine 等複数の Btrieve エンジンがイ
ンストールされていてそれぞれバージョンが異なる場合、サーバー上のファイル
でもワーク・ステーション・エンジンでオープンされるなどの現象が発生します。
そのような場合、Btrieve サーバーのバージョンとクライアント・モジュールのバ
ージョンを合致させる必要があります。当メソッドはそのような状況でのトラブ
ル・シュートのために用意されました。
DbGetNumOfField
Object.DbGetNumOfField( TableName As Stirng,
NumOfField As Integer ) As Integer
概要
指定されたテーブル定義されているフィールド数を返します。
パラメータ
TableName
テーブル名を指定します。
NumOfField
定義されているフィールドの数が返されます。
戻り値
127
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbGetNumOfIndex
Object.DbGetNumOfIndex ( TableName As Stirng,
NumOfIndex As Integer ) As Integer
概要
指定されたテーブル定義されているインデックス数を返します。
パラメータ
TableName
テーブル名を指定します。
NumOfIndex
定義されているインデックスの数が返されます。セグメント・キーが含まれる場合
はその構成メンバーの数も加算された値が返されます。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbGetNumOfRecords
Object.DbGetNumOfRecords( TableName As Stirng,
NumOfRec As Long ) As Integer
概要
指定されたテーブルに存在するレコード数を返します。
パラメータ
TableName
テーブル名を指定します。
NumOfRec
レコード数が返されます。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
128
ださい。それ以外は Btrieve のステータス・コードが返されます。この関数内部で
は Btrieve の stat オペレーションを発行します。
DbGetNumOfTable
Object.DbGetNumOfTable(NumOfTable As Integer) As Integer
概要
現在読みこんでいる DDF に存在するテーブル数を返します。
パラメータ
NumOfTable
テーブル数が返ります。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbGetPosBlock
Object.DbGetPosBlock( TableName As String,
PosBlock(0 To 127) As Byte) As Integer
概要
指定されたテーブルに関連する Btrieve のポジション・ブロックを返します。
パラメータ
TableName
テーブル名を指定します。
PosBlock
Btrieve の PosBlock を保持する Byte 型の配列を指定します。配列のサイズは
Btrieve の仕様により 128 バイトを割振る必要があります。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
ポジション・ブロックは Btrieve ファイルがオープンされている時にのみ有効とな
りますのでこのメソッドを呼び出す際には Btrieve ファイルがオープンされている
129
ことが必須となります。ポジション・ブロックは Btrieve が管理する領域なので通
常のアプリケーションではデータはセットできません。このメソッドで得られるポ
ジション・ブロックを利用して Btrieve API を発行し、DDF に合致しないようなデ
ータを登録した場合は他のコントロールやメソッドでのオペレーションに障害が
出る可能性があり、弊社では動作を保証できませんので、Btrieve のデータ型、
オペレーション、プログラミングを十分理解した上でのご利用をお願いします。
DbGetPosition
Object.DbGetPosition(TableName As String) As Long
概要
指定されたテーブルの現在のレコードの物理位置を返します。
パラメータ
TableName
テーブル名を指定します。
戻り値
正常ならば物理レコード位置(4 バイト)が返されます。テーブル ID の誤り、デー
タベースがオープンされていない場合は-1 が返されます。
注意
戻り値はシリアルな値ではなく、Btrieve で管理されるユニークな値です。整数
値でレコードを識別したい場合は、AutoIncrement 型のフィールドを利用します。
DbGetRecord
Object.DbGetRecord( TableName As String, _
ArrayOfData() As String ) As Integer
概要
配列に現在のレコードの内容を取得します。大量の複数のフィールドを DbGetFi
eldData メソッドの呼び出し得る方法に比較して実行のパフォーマンス向上が期
待できます。
パラメータ
TableName
テーブル名を指定します。
130
ArrayOfData
String 型の配列を指定します。配列のインデックスはフィールド ID になります。
戻り値
正常終了の場合は0が返されます。負の値に関しては VBMan エラー・コード一
覧をご参照ください。
注意
配列のインデックスが DDF で定義されるフィールド数以内で定義してください。
フィールド ID はベースが0なのでデータを受け取る String 型の配列のベースも
0にすると最初のフィールドから順にデータを得ることができます。
サンプル・コード
Private Sub GetFirstRecord()
Dim rc As Integer, I As Integer
Dim f(0 To 20) As String
rc = Db1.DbAccess(BTR_GET_FIRST, “TEST1”, “PRIM_KEY”)
If rc <> 0 Then
MsgBox “エラー “ & CStr(rc)
Exit Sub
End If
rc = Db1.DbGetRecord( “TEST1”, f )
If rc <> 0 Then
MsgBox “エラー “ & CStr(rc)
Exit Sub
End If
For I = Lbound(f) To Ubound(f)
Debug.Print f(I), “ “;
Next I
Debug.Print ‘ 改行
End Sub
DbGetRecordImage
Object.DbGetRecordImage( TableName As String,
ByteArray() As Byte ) As Integer
131
概要
指定されたテーブルのレコード・イメージをバイト型の配列に取得します。レコー
ド・イメージとは Btrieve の GET 系のオペレーションで取得できるメモリの領域で
す。
パラメータ
TableName
テーブル名を指定します。
ByteArray
レコード・イメージを取得する Byte 型の配列を指定します。配列のローワー・バ
ウンド値に関係なく、レコード・イメージはゼロ・オフセットから設定されます。配
列のサイズを決定する際にレコード長が必要になる場合は DbGetRecordLengt
h メソッドで取得することが可能です。Delphi をホスト言語としてご利用の場合は
OleVariant 型で varByte の配列を指定してください。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
サンプル・コード
Dim rc As Integer
Dim b(0 To 32) As Byte
Rc = VBManDb1.DbGetRecordImage(“TEST1”,b)
If rc <> 0 Then
MsgBox “エラー “ & CStr(rc)
Stop
End If
Debug.Print b(0),b(1),b(2)
DbGetRecordLength
Object.DbGetRecordLength( TableName As String,
RecLen As Integer ) As Integer
概要
指定されたテーブルに関連する Btrieve ファイルのレコード長をバイト単位で返
します。
パラメータ
132
TableName
テーブル名を指定します。
RecLen
レコード長が返される 2 バイト長の整数を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
当メソッドが呼び出される時点で DDF が読みこまれている必要があります。
DbGetTableName
Object.DbGetTableName( TableID As Integer,
TableName As String )As Integer
概要
テーブル ID を指定してテーブル名を取得します。
パラメータ
TableID
テーブル ID を指定します。0ベースの値を指定します。
TableName
テーブル名が返されます。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
当メソッドが呼び出される時点で DDF が読みこまれている必要があります。
DbIsNull
Object.DbIsNull(TableName As String,
FieldName As String ) As Boolean
概要
指定されたフィールドのヌル状態を返します。True 時にはフィールドはヌルです。
133
パラメータ
TableName
テーブル名を指定します。
FieldName
フィールド名を指定します。
戻り値
フィールドのヌル状態を返します。指定したフィールドが”not null”制約がある場
合には False を返します。
DbIsOpen
Object.DbIsOpen( TableName As String ) As Integer
概要
指定されたテーブルに関連する Btrieve ファイルのオープン状態を返します。
パラメータ
TableName
テーブル名を指定します。
戻り値
オープンしているなら値 1 が返されます。オープンしていない場合は 0 を返しま
す。負の値は VBMan エラー・コード一覧を参照してください。
DbLoadDDF
Object.DbLoadDDF() As Integer
概要
Pervasive.SQL ver 8 のセキュアーデーターベースにログインします。
パラメータ
なし
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
134
注意
DbLogIn
Object.DbLogIn(URI As String) As Integer
概要
Pervasive.SQL ver 8 のセキュアーデーターベースからログアウトします。
パラメータ
データベース URI を文字列で指定します。詳細は Pervasive.SQL V8 マニュア
ルをご参照ください。”btrv://localhost/mydb?pwd=hello&dbfile=test1.mkd”のよ
うな形式になります。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
DbLogOut
Object.DbLogOut() As Integer
概要
Pervasive.SQL ver 8 のセキュアーデーターベースからログアウトします。
パラメータ
なし
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
注意
このメソッドを呼び出す前に DbLogIn メソッドでログインする必要があります。
DbOpen
135
Object.DbOpen( TableName As String ) As Integer
概要
指定されたテーブルに関連する Btrieve ファイルをオープンします。
パラメータ
TableName
テーブル名を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
注意
このメソッドを呼び出す時は Btrieve ファイルはクローズしている必要があります。
オープン・モードはこのメソッドが関連している VBMan データベース・コントロー
ルの OpenMode プロパティによって指定されます。OwnerName についても同様
です。
DbOpenAll
Object.DbOpenAll() As Integer
概要
DDF に定義された Btrieve ファイルをすべてオープン状態にします。
パラメータ
なし。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
注意
オープン・モードはこのメソッドが関連している VBMan データベース・コントロー
ルの OpenMode プロパティによって指定されます。OwnerName についても同様
です。DDF に定義されているファイルにすでにオープン中のものについては Op
en オペレーションは実行されません。また、メソッドはオープン中のエラーを返
すこともありません。
136
DbReset
Object.DbReset() As Integer
概要
Btrieve リセット・オペレーションを発行します。
パラメータ
なし。
注意
リセット・オペレーションはオープン中のファイルをすべてクローズするのですで
にアプリケーションでオープンしているファイルが存在する場合には注意が必要
です。リセット・オペレーションの詳細については Btrieve のマニュアルをご参照
ください。
DbSetFieldData
Object.DbSetFieldData(TableName As String,
FieldName As String,
Data As String) As Integer
概要
Btrieve データベースへ登録するフィールドのデータを指定されたテーブルのデ
ータ・バッファに設定します。
パラメータ
TableName
テーブル名を指定します。
FieldName
フィールド名を指定します。
Data
フィールドの値を文字列で指定します。文字列型データからデータベースのフィ
ールドのデータ型への変換はこの関数内部でおこなわれます。Integer 型など
のバイナリ型も文字列で指定します。Date 型は、"YY/MM/DD"または”YYYY/
MM/DD”の形で指定します。Time 型は”HH:MM:SS”の形で指定します。
戻り値
137
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
サンプル
Dim rc%
rc% = DbSetFieldData(“給与”,”欠勤”,"10")
If rc%<> 0 then
' エラー処理
End If
DbSetFieldDataByID
Object.DbGetFieldDataByID(TableID As Integer, _
FieldID As Integer, _
Data As String) As Integer
概要
テーブル ID,フィールド ID で指定したデータベースのフィールドの値を文字列デ
ータとして返します。
パラメータ
TableID
テーブル ID を指定します。
FieldID
フィールド ID を指定します。
Data
フィールドの値を文字列で指定します。文字列型データからデータベースのフィ
ールドのデータ型への変換はこの関数内部でおこなわれます。Integer 型など
のバイナリ型も文字列で指定します。Date 型は、"YY/MM/DD"または”YYYY/
MM/DD”の形で指定します。Time 型は”HH:MM:SS”の形で指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
VBMan for Btrieve/VBX バージョン 1.x でのテーブル指定、フィールド指定に
用いた整数値 ID を利用できますので、バージョン 1.x のコードを移植する際に
便利です。
また、Visual Basic 等の 32bit 言語では文字列型は UNICODE を使っており、当
メソッドのパラメータを文字列で指定する DbSetFieldData メソッドに比べて、内
138
部的に消費するメモリ量が少なくて済みます。内部ロジックでデータが保持され
ている領域を検索する際にも整数値での指定をする当メソッドのほうが比較す
るバイト数が少なくなりますのでパフォーマンスの向上が期待できます。
サンプル・コード
Const TID_EMPLOY = 10
Const FID_EMPLOY_AGE = 2
Dim rc%
rc% = DbSetFieldDataByID(TID_EMPLOY,FID_EMPLOY ,"34")
If rc%<> 0 then
' エラー処理
End If
DbSetFileName
Object.DbSetFileName( TableName As Stirng,
NewFileName As Stirng ) As Integer
概要
テーブルに関連する Btrieve ファイル名を指定します。DDF ビルダーによる定義
を実行時に変更します。ファイルがオープンされている状態では変更はできま
せん。
パラメータ
TableName
テーブル名を指定します。
NewFileName
Btrieve ファイル名を指定します。ドライブ、パスまで含めることができます。ドラ
イブ、パスを省略した場合は DDF が存在するディレクトリにある Btrieve ファイ
ルを扱います。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
DbSetLockBias
Object.DbSetLockBias( BiasValue As Integer ) As Integer
139
概要
ロック・バイアス値を指定します。当メソッドで指定したロック・バイアス値はこの
メソッド呼び出し移行の DbAccess/DbGetDirect メソッドに反映されます。DbAcc
ess メソッドの第一パラメータにロック・バイアス値を毎回加算するコードを記述
する必要がなくなります。
パラメータ
BiasValue
ロック・バイアス値を指定します。以下の値が指定可能です。ロック動作の詳細
は Btrieve のマニュアル記載をご参照ください。
0
100
200
300
400
通常の状態
シングルウェイトロック
シングルノーウェイトロック
マルチウェイトロック
マルチノーウェイトロック
戻り値
正常終了の場合は0が返されます。負の値に関しては VBMan エラー・コード一
覧をご参照ください。
サンプル・コード
Dim rc As Integer
Const TableName = “商品”
Const IndexName = “商品コード”
With VBMan
rc = .DbSetLockBias(400) ‘ multi no wait lock
If rc <> 0 Then Stop
‘全レコードをロックする。
rc = .DbAccess(BTR_GET_FIRST,”商品”,”商品コード”)
Do
If rc <> 0 Then Exit Do
Rc = .DbAccess(BTR_GET_NEXT,”商品”,”商品コード”)
Loop
rc = .DbSetLockBias(0)
Debug.Print rc
‘ バイアス解除
140
rc = .DbUnlock(“商品”,-2)
Debug.Print rc
End With
‘ロック解除
DbSetRecord
Object.DbSetRecord( TableName As String, _
ArrayOfData() As String) As Integer
概要
配列設定したデータを現在レコードのバッファに設定します。大量の複数のフィ
ールドを DbSetFieldData メソッドの呼び出し得る方法に比較して実行のパフォ
ーマンス向上、コードの簡略化が期待できます。
パラメータ
TableName
テーブル名を指定します。
ArrayOfData
String 型の配列を指定します。配列のインデックスはフィールド ID になります。
戻り値
正常終了の場合は0が返されます。負の値に関しては VBMan エラー・コード一
覧をご参照ください。
注意
配列のインデックスが DDF で定義されるフィールド数以内で定義してください。
フィールド ID はベースが0なので先頭フィールドからデータをセットしたい場合
は配列のベースも0に設定します。
サンプル・コード
Private Sub InsertRecord()
Dim rc As Integer, I As Integer
Dim f(0 To 20) As String
For I = Lbound(f) To Ubound(f)
f(I) = Text(I).Text ‘ Text はコントロール配列
Next I
rc = Db1.DbSetRecord(“TEST1”,f)
141
If rc <> 0 Then
MsgBox “エラー “ & CStr(rc)
Exit Sub
End If
rc = Db1.DbAccess(BTR_INSERT, “TEST1”, “PRIM_KEY”)
If rc <> 0 Then
MsgBox “エラー “ & CStr(rc)
Exit Sub
End If
End Sub
DbSetRecordImage
Object.DbSetRecordImage(TableName As String, _
ByteArray() As Byte) As Integer
概要
Btrieve のレコード・イメージを Byte 型の配列で設定します。
パラメータ
TableName
レコード・イメージを設定する対象となるテーブル名を文字列で指定します。
ByteArray
設定するレコード・イメージ・データを保持する Byte 型の配列を指定します。配
列は 0 ベースでなくても配列のローワー・バウンドからゼロ・オフセットでレコー
ド・イメージの内部データ・バッファに設定されます。Delphi の場合は OleVariant
型で varByte 型の配列を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
レコード・イメージは DDF で定義された Btrieve データ型に従って1バイトアライ
メントで保持されています。Btrieve データ型については Btrieve のマニュアル等
を参照してください。レコード・イメージ・データを保持する配列の上限を設定す
るにはレコード長が必要になる場合がありますが、レコード長は DbGetRecordL
ength メソッドにて取得することが可能です。
142
サンプル・コード
Dim rc As Integer
Dim length As Integer
Dim b(0 To 30) As Byte
b(0) = 33
b(1) = 34
b(2) = 35
rc = VBManDb1.DbSetRecordImage("TEST1", b)
Debug.Print rc, b(0), b(1), b(2)
DbTransferFromControl
Object.DbTransferFromControl(TableName As String) As Integer
概要
現在のフォームにあるデータベース・コントロールのデータを Btrieve とのデータ
入出力バッファに転送します。
パラメータ
TableName
テーブル名を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
注意
データ転送の対象となるコントロールは、エディット、コンボボックス、リスト、オプ
ション・ボタン、チェック・ボックスです。
DbTransferToControl
Object.DbTransferToControl(TableName As String) As Integer
概要
現在のレコードをフォームにある VBMan コントロール の該当フィールドに転送
します。
パラメータ
143
TableName
テーブルの ID を整数値で指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のステータス・コードが返されます。
注意
データ転送の対象となるコントロールは、エディット、コンボボックス、リスト、オプ
ション・ボタン、チェック・ボックスです。
DbUnlock
Object.DbUnlock(TableName As String,
UnlockType As Integer) As Integer
概要
指定されたテーブルのレコード・ロックを解除します。
パラメータ
TabldName
テーブル名を指定します。
UnlockType
以下の値が有効です。
アンロックタイプ
0
-1
-2
詳細
シングル・レコード・ロックを解除する
マルチ・レコード・ロックされている現在のレコードのみ
ロックを解除する。
マルチ・レコード・ロックのすべてを解除
戻り値
正常ならば 0 が返されます。テーブル ID の誤り、データベースがオープンされ
ていない場合は-1 が返されます。
144
バージョン 1.X データ・アクセス関数
この章は、VBMan for Btrieve/VBX バージョン 1.x アプリケーションを VBMan
Controls for Btrieve への移行を容易にするために提供されるバージョン 1.x デ
ータ・アクセス関数についてのリファレンスです。
これらの関数の宣言はインストールディレクトリの下の samples ディレクトリにあ
るファイル VBManV1.BAS に用意されています。Btrieve の仕様に依存している
部分が多いため、詳細は Btrieve プログラマーズ・マニュアルを参照してくださ
い。
関数名
DbAbortTransaction
DbAccess
DbAttachControl
DbBeginTransaction
DbClearControlData
DbClearFieldBuffer
DbEndTransaction
DbFindPercentage
DbGetByPercentage
DbGetDataSize
DbGetDataType
DbGetDirect
DbGetFieldData
DbGetFieldName
DbGetPosition
DbGetVersion
DbSetFieldData
DbSetFormattedString
DbTransferFromControl
DbTransferToControl
概要
トランザクションの中止
Btrieve機能の呼び出し
バージョン1.xコンパチブル関数が参照するVBMa
nデータベース・コントロールを設定します。バージ
ョン1.xコンパチブル関数の中で一番最初に実行
すべき関数です。
トランザクションを開始
データベース・フィールド・コントロールのデーター
を空にする。
データベースのバッファを初期化
トランザクションを終了
現在のレコード位置をパーセントで得る。
パーセント指定でレコードを取得する。
データ・サイズを得る
データ型を得る
物理位置を指定して、レコードを得る。
フィールドのデータをデータベースのバッファから
得る
フィールド名を得る。
現在レコードの物理位置を得る。
現在使用中のBtrieveのバージョンを得る。
フィールドのデータをデータベースのバッファにセ
ット
リスト・ボックス、コンボ・ボックスにフォーマットさ
れた文字列を設定
データベース・フィールドの入力値をBtrieveのレコ
ードに転送する。
Btrieveのデータ・バッファの内容をデータベース・
フィールド・コントロールに転送する。
145
DbUnlock
レコード・ロックの解除
以下は Btrieve の Extended オペレーションに対応したデータベース・アクセス
関数です。
関数名
概要
DbExAccess
ExtendedBtrieve オペレーションの実行
DbExGetFieldData
DbExAccess 関数による検索結果をフィールド単
位で取得する。
DbExGetPosition
DbExAccess 関数による検索結果の物理レコー
ド位置を取得する。
DbExFree
DbExAccess 関数の結果を解放する。
DbExSetFormattedString
拡 張 リ ス ト・ ボ ッ クス 、 拡 張 コンボ・ボックスの
Format イベント内で整形された文字列を設定す
る。
146
DbAbortTransaction
DbAbortTransaction() As Integer
概要
トランザクションの中止を宣言します。
パラメータ
なし。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のエラー・コードが返されます。
147
DbAccess
DbAccess(BtrieveOpCode As Integer,
TableID As Integer,
KeyID As Integer) As Integer
概要
BtrieveOpCode で指定される Btrieve の機能を呼び出します。
パラメータ
BtrieveOpCode
Btrieve のオペレーション・コードを指定します。詳細は Btrieve プログラマーズ・
マニュアルを参照。VBMan に添付される BTRIEVE.BAS ファイルにも定義されて
います。
TableID
テーブルの ID を整数値で指定します。データベース・コントロールの DbTableID
プロパティに設定する値を指定します。
KeyID
Btrieve オペレーションに関連するキーの ID を指定します。ID は VBMan 日本
語 DDF ビルダーで指定した値から1を引いたものを指定します。Btrieve ではセ
グメント・キーがある場合はキーの ID がシリアルではなくなりますが、VBMan で
は日本語 DDF ビルダーで決定されるシリアルな値を指定します。
戻り値
正常終了ならば 0 が返ります。負の値は VBMan エラー・コード一覧を参照して
ください。それ以外は Btrieve のステータス・コードです。
サンプル
Dim rc%
Const EMP_TABLE = 10
Const EMP_ID = 0
Const EMP_PRIMARY = 0
rc% = DbSetFieldData(EMP_TABLE,EMP_ID,"066217")
rc% = DbAccess(BTR_GET_EQUAL,EMP_TABLE,EMP_PRIMARY)
If rc% <> 0 Then
MsgBox "Btrieveの呼び出しに失敗しました" + Str$(rc%)
Exit Sub
End If
‘読み込んだ結果をフォーム上のコントロールに転送
148
rc% = DbTransferToControl(EMP_TABLE)
149
DbAttachControl
DbAttachControl( ControlName As String,
FormName As String ) As Integer
概要
バージョン 1.x コンパチブル関数を使用可能な状態にします。
パラメータ
ControlName
この関数呼び出しが成功した以降に呼び出すバージョン 1.x コンパチブル関数
が参照する DDF ディレクトリが設定されている VBMan データベース・コントロー
ルの Name プロパティの値を設定します。
FormName
上で説明した VBMan データベース・コントロールがおいてあるフォームの名前
を指定します。
戻り値
正常終了の場合0を返します。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
当関数の呼び出し正常終了後、VBMan データベース・コントロールがおいてあ
るフォームをアンロードした場合、それ以降のバージョン 1.x コンパチブル関数
の呼び出しは動作が保証できません。この関数で指定した VBMan データベー
ス・コントロールがアンロードされた以降にバージョン 1.x コンパチブル関数を使
う場合は、再度この関数を呼び出して別の現在参照可能な VBMan データベー
ス・コントロールを指定してください。
150
DbBeginTransaction
DbBeginTransaction(LockBias As Integer) As Integer
概要
トランザクションの開始を宣言します。
パラメータ
LockBias
トランザクション・ロックを指定。値は 100,200,300,400 を指定可能。詳細は Btrie
ve プロクラマーズ・マニュアルを参照してください。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のエラー・コードが返されます。
注意
トランザクションを開始したら Btrieve ファイルをクローズする前にトランザクショ
ンの終了または中断を実行してください。
151
DbClearControlData
DbClearControlData(TableID As Integer) As Integer
概要
アクティブなフォームにあるコントロールのデータ 22を初期化します。Btrieveデ
ータ入出力に使われるバッファは初期化されません。
パラメータ
TableID
データを初期化したいコントロールが関連しているテーブルの ID
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
コンパチビリティ
バージョン 1.x からはパラメータとして TableID の指定が追加されました。
22
VBMan エディットのテキスト・プロパティを空にします。
152
DbClearFieldBuffer
DbClearFieldBuffer( TableID As Integer ) As Integer
概要
指定したテーブルのデータ・バッファを初期化します。
パラメータ
TableID
テーブルの ID を整数値で指定します。データベース・コントロールの DbTable プ
ロパティに設定する値を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
153
DbEndTransaction
DbEndTransaction() As Integer
概要
トランザクションの終了を宣言します。
パラメータ
なし。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のエラー・コードが返されます。
154
DbExAccess
DbExAccess( OpCode As Integer,
TableID As Integer,
SearchCondtion As String,
Fields As String,
IndexID As Integer,
SkipRecords As Integer,
MaxRecords As Integer,
IgnoreCase As Integer,
ResultID As Integer,
NumberOfResults As Integer ) As Integer
概要
Btrieve の Extended 関数を実行します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
OpCode
Extended オペレーション・コードを指定します。指定できる値は BTRIEVE.BAS
または VBManV1.BAS に宣言してある以下の値です。
BTR_GET_PREVIOUS_EXTENDE 37
D
BTR_GET_NEXT_EXTENDED
36
BTR_STEP_PREVIOUS_EXTENDE 39
D
BTR_STEP_NEXT_EXTENDED
38
SearchCond
検索条件文字列を指定します。拡張リスト・ボックス、拡張コンボ・ボックスの検
索条件文字列と同じ形式で指定します。
フィールドは@をプリフィックスと比較式の左辺に指定します。(例;フィールド ID
の 10 は@10 と指定する)比較演算子は以下を指定します。
=
>
<
等しい
より大きい
より小さい
155
<>
>=
<=
等しくない
より大きいか等しい
より小さいか等しい
複合検索をする場合は検索条件を&(AND)または|(OR)で結合します。比較
対象を即値で指定する場合はスペースがディリミッタになります。スペースが含
まれる即値を指定する場合はシングル・クゥオート、ダブル・クゥォート、スラッシ
ュで文字列を囲みます。以下に検索文字列の例を示します。
@0 >= 100 & @1 <= 1000
@1 = “VBMan” | @1 = “Visual Basic”
@2 <> /Microsoft/ & @2 <> /Borland/
Fields
検索結果として抽出するフィールドを指定します。フィールドは ID をカンマで区
切った文字列を指定します。フィールド ID は DDF ビルダーの表示値を 0 オフセ
ットにした値です。(例:10,22,34)
IndexID
GET NEXT/PREVIOUS EXTENDED オペレーションを実行する際のインデック
スのパスを指定します。DbAccess 関数の第三パラメータと同じ形式で指定しま
す。カレント・レコードが確立されていない場合、GET NEXT/PREVIOUS EXTEN
DED オペレーションはエラーを返します。
SkipRecords
検索条件を満たさない場合にスキップするレコード数を指定します。
MaxRecords
検索結果の最大レコード件数を指定します。Btrieve では結果が 65,536 バイト
をこえることができません。65,535 を Fields で指定した抽出するフィールドのデ
ータ長の合計値で割った数以上は設定できません。
IgnoreCase
文字列フィールドを比較する場合、0 以外の値を指定すると英数字に関して大
文字、小文字の区別無く比較を実行します。2 バイト文字にはこのオプションは
サポートされません。
ResultID
結果 ID が整数値で返されます。結果を取得するにはこの ID を指定して DbExG
etFieldData,DbExGetPosition 関数を使用します。結果が不要になったらこの ID
で DbExFree 関数を呼び出し資源を解放します。
156
NumberOfResults
検索結果件数が返されます。
戻り値
正常ならば0が返されます。負の値は VBMan エラー・コード一覧を参照してくだ
さい。これらのプログラミング・レベルのエラーは関数内部からメッセージ・ボック
スで詳細が表示されます。整数値が返された場合は Btrieve からのエラー・コー
ドです。また、エラー9,22,60,64,65 等が返った場合でも結果が存在する場合もあ
ることに注意してください。
以下にこのオペレーションで Btrieve から返されるエラー・コードを抜粋します。
03
06
07
08
09
22
60
61
62
64
65
82
FILE NOT OPEN
Invalid Key Number
Different Key Number
Invalid Position
End Of File
Data Buffer Length
Reject Count Reached
Work Space Too Small
Incorrect Descriptor
Filter Limit Reached
Incorrect Field Offset
Lost Position
注意
Btrieve ファイル形式は 6.x/7.x を使用してください。
サンプル
Dim rc As Integer
Dim ResultID As Integer
Dim NumOfRecords As Integer
Dim Fields As String
Dim SearchCond As String
Dim a$,I As Integer
SearchCond = “@1 > 100 & @1 < 200”
Fields = “0,1,2,3”
rc = DbExAccess( BTR_GET_NEXT_EXTENDED, _
0, _
SearchCond, _
157
Fields, _
0, _
127, _
100, _
0, _
ResultID, _
NumOfRecords )
If rc <> 9 & rc <> 0 & rc <> 60 Then
MsgBox “Btrieve Extended Opeartion Error “ & Str$(rc)
Stop
End If
‘ 結果をリスト・ボックスに表示
For I = 0 To NumOfRecords -1
a$ = DbExGetFieldData(ResultID,0,I)
a$ = a$ & “ “ & DbExGetFieldData(ResultID,1,I)
ResultListBox.AddItem a$
Next I
‘ 結果を保持するメモリを解放
rc = DbExFree(ResultID)
158
DbExFree
DbExFree( ResultID As Integer ) As Integer
概要
DbExAccess 関数によって返される結果に付随する資源を解放します。
パラメータ
ResultID
DbExAccess 関数の結果として返される結果 ID を指定します。
戻り値
ResultID が不正の場合に-1 が返されます。正常に資源を解放できた場合は 0
を返します。
注意
DbExAccess 関数の結果は検索結果件数と抽出するフィールドのサイズと件数
に比例してメモリを消費します。不要になった結果はこの関数を呼び出してかな
らず解放してください。
159
DbExGetFieldData
DbExGetFieldData( ResultID As Integer,
FieldID As Integer,
Location As Integer) As String
概要
DbExAccess 関数の結果をフィールド単位で取得します。
パラメータ
ResultID
DbExAccess 関数の結果として返される結果 ID を指定します。
FieldID
フィールドの値を整数値で指定します。データベース・コントロールの DbFieldID
プロパティに設定する値を指定します。VBMan DDF ビルダーで表示されるのフ
ィールド ID を 0 オフセットした値です。
Location
DbExAccess は検索結果として複数のレコード・イメージを返します。Location
パラメータは所得する結果の位置を指定します。0 オフセットで結果位置を整数
で指定します。DbExAccess では検索結果件数を返しますがその値以上を指定
することはできません。
戻り値
パラメータ不正、メモリが不足して Visual Basic 文字列が作成できない場合にヌ
ル文字列を返します。正常の場合はフィールドの値を文字列で返します。
160
DbExGetPosition
DbExGetPosition( ResultID As Integer,
Location As Integer ) As Long
概要
DbExAccess 関数の結果を物理レコード位置単位で所得します。
パラメータ
ResultID
DbExAccess 関数の結果として返される結果 ID を指定します。
Location
DbExAccess は検索結果として複数のレコード・イメージを返します。Location
パラメータは所得する結果の位置を指定します。0 オフセットで結果位置を整数
で指定します。DbExAccess では検索結果件数を返しますがその値以上を指定
することはできません。
戻り値
Btrieve の物理位置が返されます。
注意
レコードの物理位置は Btrieve で管理される値で整数のシリアルな値ではあり
ません。
161
DbExSetFormattedString
DbExSetFormattedString( FldData As String ) As Integer
概要
拡張リスト・ボックス・コントロール、拡張コンボ・ボックス・コントロールの Format
イベント内で整形された文字列を設定します。
パラメータ
FldData
拡張リスト・ボックス・コントロール、拡張コンボ・ボックス・コントロールに挿入す
る文字列を指定します。最大長 2,048 バイトまでの文字列を指定できます。
戻り値
正常ならば 0 が返ります。設定する文字列の長さが 2,048 バイト以上の場合
は-1 が返されます。
サンプル
以下はリスト・ボックスの Format イベントのサンプルです。Format イベントには
DbTabStops プロパティを設定した場合、複数の項目データがタブ文字で区切ら
れて渡されてきます。以下の例ではその先頭の項目だけをリスト・ボックスに表
示する例です。
Sub VBManExListBox1_Format( FldData As String )
Dim rc As Integer, Formatted$ As String
Dim Pos As Integer
Pos = Instr( FldData, chr$(9) )
If Pos > 0 Then
Formatted$ = Left$(FldData,Pos - 1 )
rc = DbSetFormattedString( Formatted$ )
End If
End Sub
162
DbFindPercentage
DbFindPercentage(TableID As Integer,
KeyNo As Integer,
PhysicalPosition As Long,
Percentage As Integer) As Integer
概要
レコード位置をパーセント指定で取得します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
KeyNo
キー番号を指定します。-1 を指定した場合は物理位置で取得します。
PhysicalPosition
パーセンテージを得る物理位置を指定します。このパラメータを有効にするため
には、KeyNo を-1 に設定します。
Percentage
取得する位置。たとえば、80 パーセントの位置の場合、整数値で 8000 が返りま
す。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。エラーの場合は Btrieve のステータス・コードがそのまま返されます。
03
06
07
08
09
22
41
43
82
FILE NOT OPEN
Invalid key number
Different key number
Invalid positioning
End of file
Data buffer length
Operation not allowed
Invalid data record address
Lost position
注意
Btrieve ファイルはバージョン 6.X 以降の形式でなければ使用できません。
163
DbGetByPercentage
DbGetByPercentage( TableID As Integer,
KeyNo As Integer,
Percentage As Integer) As Integer
概要
パーセント指定でレコードを取得します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
KeyNo
キー番号を指定します。-1 を指定した場合は物理位置でレコードを取得します。
Percentage
取得する位置をパーセントで指定します。たとえば、80 パーセントの位置の場
合、8000 を指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外の値は Btrieve のステータス・コードがそのまま返されます。
03
06
07
08
09
22
41
82
FILE NOT OPEN
Invalid key number
Different key number
Invalid positioning
End of file
Data buffer length
Operation not allowed
Lost position
注意
Btrieve ファイルの形式はバージョン 6.x 以降であることが必要です。詳細は Btr
ieve Programmer's Manual を参照してください。
164
DbGetDataSize
DbGetDataSize(TableID As Integer,
FieldID As Integer) As Integer
概要
指定したフィールドのデータ・サイズ(バイト)を返します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
FieldID
フィールドの ID を整数値で指定します。
戻り値
正常ならば指定されたフィールドのデータ・サイズが返されます。負の値は VBM
an エラー・コード一覧を参照してください。
注意
なし。
165
DbGetDataType
DbGetDataType(TableID As Integer,
FieldID As Integer) As Integer
概要
指定したフィールドのデータ型を返します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
FieldID
フィールドの ID を整数値で指定します。
戻り値
正常ならば DDF で定義されるデータ型の ID が返されます。負の値は VBMan
エラー・コード一覧を参照してください。
データ型
String
Integer
Float
Date
Time
Decimal
Money
Logical
Numeric
BFloat
LString
ZString
Note
LVar
Unsigned Binary
Auto increment
Named Index
データ型 ID
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
255
注意
なし。
166
DbGetDirect
DbGetDirect(TableID As Integer,
Pos As Long,
NewIndex As Integer) As Integer
概要
指定された物理レコード位置から、レコードを読み込みます。コントロールに入
力されたデータを Btrieve のレコードに転送します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
Pos
物理レコード位置を設定します。DbGetPosition 関数で取得する、4 バイトの整
数です。
NewIndex
この関数によって得られたレコードの新アクセス・パスをインデックス番号で指
定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外は Btrieve のエラー・コードが返されます。
167
DbGetFieldData
DbGetFieldData(TableID As Integer,
FieldID As Integer) As String
概要
データベースのフィールドの値を指定されたテーブルのデータ・バッファから文
字列データとして取得します。すべての Btrieve データ型は文字列型として返さ
れます。バイナリ・データとして取得する場合は DbGetImage メソッドを使います。
パラメータ
TableID
テーブルの ID を整数値で指定します。データベース・コントロールの DbTableID
プロパティに設定する値を指定します。
FieldID
フィールドの ID を整数値で指定します。データベース・コントロールの DbFieldID
プロパティに設定する値を指定します。
戻り値
フィールドの値が文字列で返されます。データベースのフィールドから文字列デ
ータ型への変換はこの関数内部でおこなわれます。したがって、時間型などは、
"hh:mm:ss"の形で返されます。エラーが発生した場合は、ヌル文字列が返され
ます。
テーブル ID,フィールド ID の範囲が正しくない場合はこの関数内部からメッセー
ジ・ボックスで通知されます。
サンプル
Dim rc%,EmpNo$
Const EMP_TABLE = 10
Const EMP_ID = 0
EmpNo$ = DbGetFieldData(EMP_TABLE,EMP_ID)
168
DbGetFieldName
DbGetFieldName(TableID As Integer,
FieldID As Integer) As String
概要
指定したフィールド ID に対応する DDF 定義のフィールド名を返します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
FieldID
フィールドの ID を整数値で指定します。
戻り値
正常ならばフィールド名が返されます。テーブル ID,フィールド ID が不正の場合
はヌル文字列が返ります。
169
DbGetPosition
DbGetPosition(TableID As Integer) As Long
概要
指定されたテーブルの現在のレコードの物理位置を返します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
戻り値
正常ならば物理レコード位置が返されます。テーブル ID の誤り、データベース
がオープンされていない場合は-1 が返されます。
注意
戻り値はシリアルな値ではなく、Btrieve が管理するユニークな 4 バイトの整数
値です。
170
DbGetVersion
DbGetVersion(Version As BtrieveVersion) As Integer
概要
現在使用中の Btrieve のバージョン情報を取得します。
パラメータ
Version
Btrieve バージョンの構造体。VBMANV1.BAS に宣言があります。
Type BtrieveVersion
MajorVersion As Integer
MinorVersion As Integer
BtrieveType As String * 1
End Type
たとえば、Btrieve for Windows バージョン 5.10a の WBTRCALL.DLL では Majo
rVersion=5, MinorVersion=1, BtrieveType="W" となります。詳細は Btrieve プ
ログラマーズ・マニュアルの GET VERSION オペレーションを参照してください。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。それ以外の値は Btrieve のステータス・コードがそのまま返されます。
注意
返される値は VBMan のバージョンではないことに注意してください。
171
DbSetFieldData
DbSetFieldData(TableID As Integer,
FieldID As Integer,
Data As String) As Integer
概要
データベースへ登録するフィールドのデータを指定されたテーブルのデータ・バ
ッファに設定します。
パラメータ
TableID
テーブルの ID を整数値で指定します。データベース・コントロールの DbTableID
プロパティに設定する値を指定します。
FieldID
フィールドの ID を整数値で指定します。データベース・コントロールの DbFieldID
プロパティに設定する値を指定します。
Data
フィールドの値を文字列で指定します。文字列からデータベースのフィールドの
データ型への変換はこの関数内部でおこなわれます。したがって、日付け型な
どは、"YYYY/MM/DD"などの形で指定します。
戻り値
正常ならば 0 が返ります。負の値は VBMan エラー・コード一覧を参照してくださ
い。
サンプル
Dim rc%
Const EMP_TABLE = 10
Const EMP_ID = 0
rc% = DbSetFieldData(EMP_TABLE,EMP_ID,"100")
If rc%<> 0 then Stop ' error process
172
DbSetFormattedString
DbSetFormattedString(Formatted As String) As Integer
概要
リスト・ボックス、コンボ・ボックスのフォーマット・イベント・プロシージャで使用し
ます。フォーマット・イベント発生時にはリスト・ボックスに挿入されるレコード・セ
ットが DbGetFieldData 関数を通じて使用可能となります。プロパティで指定した
カラムのデータだけでは不十分な場合、それらの形式を整えた文字列をこの関
数で指定します。
パラメータ
Formatted
フォーマットした文字列。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
フォーマット・イベント・プロシージャの中でのみ使用してください。それ以外の使
用は結果を保証できません。ヌル文字列が指定された場合にはリスト・ボックス
またはコンボ・ボックスへの挿入をおこないません。
サンプル
Sub VBManListBox1_Format( FieldData As String )
Dim fmt$,rc As Integer
If Val(FieldData) < 100 Then
fmt$ = FieldData & “ “ & DbGetFieldData(0,1)
rc = DbSetFormattedString(fmt$)
Else
VBManListBox1.Abort = True
End If
End Sub
173
DbTransferFromControl
DbTransferFromControl(TableID As Integer) As Integer
概要
現在のフォームにあるデータベース・コントロールのデータを Btrieve の入出力
バッファに転送します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
データ転送の対象となるコントロールは、エディット、コンボボックス、リスト、オプ
ション・ボタン、チェック・ボックスです。
174
DbTransferToControl
DbTransferToControl(TableID As Integer) As Integer
概要
現在のレコードをフォームにあるデータベース・コントロールのデータとして転送
します。
パラメータ
TableID
テーブルの ID を整数値で指定します。
戻り値
正常ならば 0 が返されます。テーブル ID の誤り、データベースがオープンされ
ていない場合は-1 が返されます。フォームがアクティブでない場合は-2 を返し
ます。
注意
データ転送の対象となるコントロールは、エディット、コンボボックス、リスト、オプ
ション・ボタン、チェック・ボックスです。
175
DbUnlock
DbUnlock(TableID As Integer,UnlockType As Integer) As Integer
概要
指定されたテーブルのレコード・ロックを解除します。
パラメータ
TabldID
テーブルの ID を整数値で指定します。
UnlockType
以下の値を指定してください。
UNLOCKTYP 詳細
E
0
シングル・レコード・ロックを解除する
-1
マルチ・レコード・ロックされているBtrieveファイルの現在のレコ
ードのみロックを解除する。
-2
マルチ・レコード・ロックのすべてを解除
戻り値
正常ならば 0 が返されます。負の値は VBMan エラー・コード一覧を参照してく
ださい。
注意
なし。
176
作成したアプリケーションの配布
VBMan Controls for Btrieve では、DDF ディレクトリがカスタム・コントロールの
DDFDir プロパティに設定されます。このプロパティには通常ドライブとパス名が
記述されることが多く、作成したアプリケーションを配布する場合は動作環境に
おいて DDF が置かれるパスを DDFDir プロパティで指定される値以外に変更す
る必要が生じると思われます。この章では、DDFDir プロパティを実行時に、VB
MAN.INI ファイルから指定する方法を解説します。
DistName プロパティと VBMan.INI ファイル
VBMan データベース・コントロールには DistName プロパティがあります。このプ
ロパティには VBMan.INI ファイルの中に DDF へのパスが記述してあるセクショ
ン名を指定できます。アプリケーションの名前や EXE ファイルの名前などシステ
ムでユニークに識別できる値を設定します。VBMAN.INI ファイルの DistName プ
ロパティで指定されるセクションの中には VBMan データベース・コントロールの
Name プロパティの値に置換する DDF ディレクトリを記述します。以下は VBMA
N.INI ファイルのサンプルです。
[StockControlApp]
ItemDb = c:\StockSys\DDF
Tranaction = c:\StockSys\DDF
[SalesReport]
SalesTrn = z:\Sales\DDF
SalesPerson = z:\Sales\DDF
SalesTmp = z:\Sales\Tmp
上の例では、StockControlApp には2つの VBMan データベース・コントロール
があり Name プロパティはそれぞれ ItemDb,Transaction が設定されています。
配布時には c:\StockSys\DDF というディレクトリを DDF ディレクトリとして参照し
ます。
[SalesReport]には3つの VBMan データベース・コントロールがあり、Name プロ
パティはそれぞれ SalesTrn,SalesPerson,SalesTmp です。参照する DDF ディレ
クトリは最初の2つが z:\Sales\DDF で SalesTmp という名前のコントロールは z:
\Sales\Tmp ディレクトリから DDF を読み込みます。
以上からわかるように、複数の環境でDDFの存在するドライブ、パスが変更され
る可能性のあるアプリケーションを作成する場合は、DistNameプロパティを設定
することが必須で参照するDDFのディレクトリが異なる場合はVBManデータベー
ス・コントロールのNameプロパティの値をシステムでユニークにすることが必要
177
です。この場合のシステムとはVisual Basicでは1つのプロジェクトになります。
23
プロファイルへの書き込み
VBMan.INI ファイルへの書き込み方法としては、単にテキスト・エディターで編集
する方法もありますが、インストーラーを作成する場合は WritePrivateProfileStri
ng という Windows API を使うのが一般的です。Visual Basic 4.0 では SaveSett
ins ステートメントが用意されていますが、32bit 環境ではレジストリに登録される
ため Windows API を直接呼び出すことが必要です。以下は Visual Basic 4.0 3
2bit でのプロファイルへの書き込みの例です。
‘ モジュール・ファイルで宣言してください。
Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
‘以下は書き込みサンプル
Dim rc As Long
Dim DDFDir As String
DDFDir = “C:\StockSys\DDF”
rc = WritePrivateProfileString( “StockControlApp”, _
“ItemDB”, _
DDFDir, _
“vbman.ini” )
この結果 VBMAN.INI ファイルは以下になります。
[StockControlApp]
ItemDB = c:\StockSys\DDF
注意
VBMan データベース・コントロールは DistName プロパティが設定されかつ、実
行時であれば、DDFDir プロパティに入れ替えのために VBMan.INI ファイルを参
照します。VBMan.INI ファイルに VBMan データベース・コントロールの Name プ
ロパティと同じエントリがあれば、必ず DDFDir プロパティの値は置換されてしま
います。デバッグ中などこの DistName プロパティを指定している場合はどちら
23
EXE ファイル単位。
178
の DDF が参照されているか、注意してデバッグしてください。
179
DDF ビルダー・リファレンス
Btrieve 6.15 等 DDF 編集環境をお持ちでないお客様用に当製品には VBMan D
DF ビルダーが添付されています。Pervasive.SQL 2000i をお使いのお客様は Per
vasive Control Center でデータベースの定義、データの入力と共に DDF の編集
が可能になっておりますので、Control Center をお使いください。VBMan DDF ビ
ルダーは Btrieve 6.1X 当時に定義されていた Btrieve データ型のみサポートとな
ります。
DDF ビルダーの起動
VBMan メニューから DDF ビルダーを選択します。以下のような初期画面が表示さ
れます。メニューは初期状態になります。
新規 DDF の作成
DDF ビルダー起動後の「ファイル」メニューの下の「新規 DDF の作成」メニューを
180
選択します。以下のウィンドウが表示されますから、新規に DDF を作成するディレ
クトリを指定し「開く」ボタンを押します。以下のテーブル情報入力ダイアログが表
示されます。テーブル名と Btrieve ファイル名を指定して OK ボタンを押します。Bt
rieve ファイル名にはドライブ名やサーバー名にパスを含めて記述することも可能
です。単にファイル名を設定した場合には DDF と同じディレクトリに Btrieve ファイ
ルが存在することになります。
テーブル情報を入力するとメニューが切り替わり、テーブルを定義できる DDF 編
集モードのメニューになります。以下は初期画面の様子です。
181
フィールドの定義
DDF 編集モードのメニューで「フィールド」メニューから「追加」を選択するとフィー
ルド追加のダイアログが以下のように表示されます。
フィールド名を入力してデータ型、データ・サイズを入力します。上の例では String
型のフィールドを定義しているので、小数点以下桁数の入力はディセーブルにな
って入力できない状態になっています。入力項目が正しいことを確認したら「登録
ボタン」を押します。
フィールド設定の入力がフィールド・グリッドに表示されます。以下は例です。
182
インデックスの定義
DDF 編集モードのメニュー「インデックス」から追加を選択します。以下のような画
面でインデックスの定義をします。
183
フィールドを選択して、ソート・オーダー、キータイプを選択して OK ボタンを押しま
す。「データ変換モード」でセグメントがチェックされている場合にはセグメント・メン
バーのリストにメンバーとして表示されるだけで、このダイアログは閉じません。セ
グメントのチェックが無いフィールドが定義されて OK ボタンを押すと、すべてのセ
グメント・メンバーが定義された状態になり、このダイアログはクローズします。
キーの定義はテーブル・ウィンドウのインデックス・グリッドに表示されます。
セグメント・キーを定義する場合にはキー・タイプ、ソート・オーダーがすべてのセ
グメント・キーのメンバーについて同じでないと Btrieve ファイルの生成時にエラー
が発生しますのでご注意ください。
184
セグメント・キーはセグメントのフラグがオフになった項目までが1セグメントとなり
ます。上の例では ID と ITEMNAME で1つのセグメント・キーが定義されています。
既存 DDF の編集
既存 DDF を編集する場合は、DDF ビルダー起動画面の「ファイル」メニューから
「既存 DDF のオープン」を選択します。ファイルを選択するダイアログが表示され
ますので、FILE.DDF, FIELD.DDF, INDEX.DDF の存在するディレクトリを指定しま
す。DDF ビルダーの設定を「データ移行モード」とした場合には DDF で指定される
ディレクトリにデータ移行する Btrieve データ・ファイルが必要です。この時点で Bt
rieve データと DDF の定義が合致しない場合には DDF ビルダーは正常にデータ
変換できなくなるのでご注意ください。
データ変換モードの動作について
システム・オプション・メニューから「Btrieve データ変換モード」を選択すると、既存
の Btrieve ファイルに対して追加、削除されたフィールド、インデックスについては
DDF の形式の変更と共に実際の Btrieve データにもフィールドやが追加・削除さ
れ、DDF との整合性が保たれるように動作します。データ変換モードで動作してい
る場合にはフィールドの修正、およびインデックスの修正メニューはディセーブル
185
状態となり利用できない仕様です。既存のデータ・ファイルのフィールドやインデッ
クスを修正したい場合は、一旦削除してからフィールドやインデックスを追加する
ことになります。
また、重複を許さないインデックスを追加する際には既存のデータに重複が存在
するとエラーになってインデックスが生成できなくなりますのでご注意ください。
テーブルの搬入・搬出
DDF 編集モードでは「ファイル」メニューから「テーブルの搬入」、「テーブルの搬
出」が実行できます。テーブル定義を別の DDF にコピーする場合や一部定義が
異なるが大半の項目が同じテーブルを定義する場合に便利です。搬出したテーブ
ルを同じ DDF に搬入する場合は DDF に存在しないテーブル名を設定する必要
があります。搬出されたファイルのテーブル名を変更する場合は搬出したファイル
を notepad 等のエディターで[TableName]の次の行を編集します。(2行目)Btriev
e ファイル名は[TableLocation]の次の行にあります。(4行目)編集したファイルは
再度、搬入して編集します。
dbMagic データ辞書を搬入
VBMan DDFビルダーのオプションメニューから「dbMagicテーブルの搬入」を選択
することで、dbMagic バージョン 4.26,4.30,7.00のデータ辞書情報をDDFに搬入す
ることが可能です。dbMagicのデータ辞書をDDFに搬入する手順は以下のとうりで
す。
①
dbMagicでデータ辞書出力を実行します。このとき、dbMagicの出力オプション
の「モード」で、「I」を選択します。このモード以外で出力された場合の動作は
保証されませんので、ご注意ください。
②
VBMan DDFビルダーを起動して、DDF編集の状態にします。新規の場合は
最初に適当なテーブル名、Btrieveファイル名を入力して空のテーブルが1つ
だけの状態に、オプション・メニューから「dbMagicテーブル搬入」を選択し、搬
入が完了したら、最初のテーブルをファイル・メニューの下からテーブルの削
除を選択し、テーブルを削除します。既存のDDFをオープンした場合にはこ
のDDFにdbMagicデータ辞書の定義を追加することになります。
③
メニューから「dbMagicファイル搬入」を選択すると、ファイル指定ダイアログ
が表示されます。先程1で出力したデータ辞書の定義ファイルを指定します。
186
④
搬入が完了すると、dbMagicのBtrieveファイル毎にDDFの編集ウィンドウが
表示されます。複数定義を搬入する場合、途中でエラーとなる定義が存在し
た場合、それ以降の定義の搬入はされませんので、注意してください。
注意事項
①
dbMagicのデータ辞書でメモ型(M)のフィールドはDDFのString型に変換しま
す。VBManでは可変長のレコードはDDFの最後に1フィールドのみサポートと
なりますから、複数のメモ型の存在するdbMagicのデータ辞書定義、メモ型の
フィールドが最後にないもの等は扱うことができません。
②
dbMagicのデータ辞書で日付け型(D)のフィールドはDDFのInteger型4バイト
に変換します。これは、dbMagicがBtrieveのDate型を使っていないことが原
因です。dbMagicでは西暦1年1月1日を1として起算した数値を日付け型と
して使っていますので、お客様のアプリケーションでデータを変換するなどの
作業が必要になります。
③
dbMagicのデータ辞書定義でBtrieveファイル名が指定されないものはVBMan
DDFビルダーでは、取り込めません。(出力ファイルのFILEがある行にNAM
E=の記述がないもの)データ辞書定義でdbMagicの論理パスを指定して作成
されたBtrieveファイルはVBMan DDFビルダーのオプション・メニューから「Bt
rieveファイル情報」で論理パス情報を修正することが可能です。
Visual Basic 用フォームの生成
DDF編集モードのメニューで「オプション」からフォーム生成を選択することでVisual
Basic用のフォームを生成することが可能です。Visual Basicで簡単なマスター登
録ができるフォームを生成することが可能です。画面の解像度は無視されるので
フィールドが多い場合はアプリケーションが動作するパソコンの解像度にあわせて
フォームを編集してください。生成されたフォームはVisual Basicでプロジェクトに
追加して利用します。
フィールド ID リストの生成
Visual Basic でアプリケーションを作成する場合、VBMan のメソッドのパラメータを
Const で指定したい場合はこの機能を利用してフィールド ID のリストを生成してそ
れを Visual Basic のプロジェクトに追加します。
187
メソッドのパラメータとしてテーブル名やフィールド名を文字列で指定する場合に
はフィールドが追加になってもコードの変更は必要無いですが、VBMan バージョ
ン 1.x 関数や ID 指定のメソッド(DbGetFieldDataByID 等)を使っている場合、ID を
直接指定しているとフィールドの挿入によって ID が変わるとコードの変更も必要
になる場合があります。関数やメソッドのパラメータをシンボルで指定しておけば、
フィールドの挿入で ID が変わっても、Const 定義部分だけを変更するだけで関数
やメソッドの呼び出しコードを変更する必要はなくなります。
以下は ID リストの例です。
'テーブル ID for
Global Const
'フィールド ID
Global Const
Global Const
Global Const
'インデックス ID
Global Const
Global Const
TEST1.DAT
TID_TEST1 = 0
FID_ID = 0
FID_ITEMNAME = 1
FID_PRICE = 2
KID_ID = 0
KID_ITEMNAME = 1
以下は上の ID リストでの Visual Basic コード例です。
Dim rc As Integer
With VBManDb1
Call .DbSetFieldDataByID(TID_TEST1,FID_ID,”101”)
Call .DbSetFieldDataByID(TID_TEST1,FID_ID,”商品名”)
Call .DbSetFieldDataByID(TID_TEST1,FID_PRICE,”1200”)
rc = .DbAccessByID(BTR_INSERT,TID_TEST1,KID_ID)
If rc <> 0 Then
MsgBox CStr(rc)
End If
End With
システム・オプションについて
以下はシステム・オプションの設定の最初のページです。
188
設定項目についての説明は以下になります。
項目
フィールド名入力時の IME オン
フィールド名英数字の Upper 変換
ゼロ・オフセット表示
DDF 読込時に ID のリナンバー
概要
フィールド情報設定ダイアログでフォール
ド名の入力時に IME がローマ時かな入
力に設定されます。
DDF では英数字はケースは無視される
仕様です。このオプションを設定すると入
力時にすべて大文字に変換します。
フィールドやインデックスのグリッド表示
で左に表示される ID をゼロ・オフセットで
表示します。バージョン 1.x コンパチ関数
等のパラメータでフィールドやインデック
スは 0 オフセット表示なので、同関数を
使う場合には 0 オフセット表示にしたほう
が便利です。
Pervasive Software がノベルだった時代
に作成された DDF 作成用の DLL で作成
189
DDF 読込時にウィンドウを開く
最大化する
Btrieve データ変換モード
された DDF は内部 ID がシリアルに設定
されない場合があります。このオプション
では DDF 読み込み時にそのような ID を
シリアルな値で保持します。
このチェックをはずすと既存の DDF をオ
ープンした時には一旦テーブル・リストが
作成されて、編集用のウィンドウは表示
されません。テーブル数の多い DDF をオ
ープンする場合には画面のリソースの消
費を押さえることと表示のパフォーマンス
が改善されます。
チェックした場合には DDF ビルダー起動
時にウィンドウを最大化します。
チェックした場合には既存の Btrieve デ
ータの形式を DDF 定義の変更に合わせ
て変更します。
以下はシステム・オプション・ダイアログの出力タブです。
190
設定項目についての説明は以下です。
項目
1ページに印字するフォールド数
フォーム生成
文字列型シンボル
概要
テーブルの印字で1ページに印字される
フィールドの数を指定します。
フォーム生成で生成されるフォームの形
式を指定します。VB5 用、VB4 用は当 A
ctiveX Control で利用できるフォームで
す。VB2 を選択した場合には 16bit の V
BMan for Btrieve/VBX 用のフォームが
出力されます。
VBMan バージョン 1.x 関数でフィールド
指定パラメータに利用できるシンボルを
生成する場合はこの項目のチェックをは
ずします。VBMan バージョン 2.x からメソ
ッドでの文字列型でテーブルやフィールド
を設定する場合にはこの項目をチェック
191
してフィールド ID リストを出力します。
192
Appendix
A. Microsoft Visual Studio.NET 制約事項
Refresh メソッドについて
Refresh メソッドは.NET framework のラップ・クラスによってオーバーライドされ
ていると思われ、VBMan の Refresh メソッドが呼び出されません。回避方法とし
ては予約名になっていない Reload メソッドを追加しました。
ImeMode について
.NET framework では ImeMode をデフォルトで全てのコントロールに追加します。
VBMan でも IMEMode を定義しているため、プロパティウィンドウには ImeMode/
IMEMode と二つプロパティが並んで表示されます。VBMan のプロパティは頭か
ら3文字が大文字の IMEMode プロパティが該当します。.NET framework が付
加する ImeMode プロパティについては設定しても動作に関係しないことを確認
しました。
VBMEdit コントロールの FormatString について
Microsoft Visual Studio .NET のでは IVBFormat インターフェースが実装され
ていないと思われるため、Edit コントロールの FormatString プロパティは動作い
たしません。アプリケーションコードで文字列フォーマットが必要になります。
B. Active Server Pages からの利用
概要・制約事項
マイクロソフト社の Windows NT Option Pack には IIS(Internet Information Se
rver)が含まれます。IIS では VBScript から ActiveX Object を利用することが出
来る仕様になっており、VBMan のデータ・ベース・コントロールを呼び出して Btri
eve データを操作することが可能です。
VBScript は ActiveX Object を呼び出せますが、ウィンドウを持つ ActiveX Con
trol は利用できない仕様ですからユーザー・インターフェースを持たない VBMan
のデータ・ベース・コントロールのみ利用できます。
また、言語の仕様が Visual Basic より簡略化されていることが原因でデータ・ベ
ース・コントロールを使う上では制約があります。以下に制約事項をまとめまし
193
た。
①
②
③
④
プロパティはすべてコードで設定する必要がある。
DbLoadDDF メソッドで DDF のロードをする必要がある。
AutoOpen プロパティは利用できないので、DbOpen/DbOpenAll で Btrieve
ファイルのオープンが必要になる。
文字列型の配列をパラメータとして指定する DbGetRecord メソッド等は動
作しない。(VB とパラメータの処理形式が異なるためと思われます)
ASPスクリプトの作成手順
ASP スクリプトから VBMan を参照可能とするためには、OBJECT タグで VBMa
n を指定する必要があります。このタグは各.asp ファイルの先頭で宣言します。
また、global.asa ファイルに指定することも可能です。以下は OBJECT タグで VB
Man を指定する例です。
<object RUNAT=Server id="VBMan" name="VBMan"
classid="clsid:3235CFF0-D891-11D1-BD2B-004026182472" border="0"
width="32" height="32">
</object>
次に Btrieve のオペレーション・コードを定義したファイルを.asp ファイルにインク
ルードして BTR_INSERT のようなコンスタントを利用可能とします。VBMan のサ
ンプルに添付される Btrieve.inc ファイルを以下のようにインクルード指定します。
<!-- #INCLUDE FILE=”btrieve.inc” -- >
DDF をロードするコードを記述します。DDF のロードは DbLoadDDF メソッドで実
行可能です。このメソッドは DDFDir プロパティに指定されたディレクトリを参照し
ますので、メソッドを呼び出す前に DDFDir プロパティを指定します。以下はサン
プル・コードです。
<%
<%
<%
<%
<%
LANGUAGE="VBSCRIPT" %>
Dim rc %>
VBMan.DDFDir="\\OurServer\ddf" %>
VBMan.AllOpen=FALSE %>
rc = VBMan.DbLoadDDF %>
194
<% if rc <> 0 Then %>
<p> DDF エラー <%= rc %>
<% End If%>
DDF をロードしたら Btrieve ファイルをオープンします。DDF に定義されている
すべてのテーブルを一度にオープンしたい場合は DbOpenAll メソッドが便利で
す。以下はサンプル・コードです。
<% rc = VBMan.DbOpenAll %>
<% If rc <> 0 Then %>
<p> オープン・エラー <%= rc %>
<% End If %>
Btrieve ファイルがオープンできたら、データ・ベース・コントロールのメソッド呼び
出しコードが記述できますので、お客様のアプリケーション・コードを記述してく
ださい。
処理の終了時には必ず DbCloseAll メソッドで Btrieve ファイルをすべてクロース
することを忘れないでください。以下はサンプル・コードです。
<% rc = VBMan.DbCloseAll %>
195
C. FAQ – よくあるご質問
この章では、VBMan を使った Btrieve アプリケーション・プログラミングやシステ
ム・セットアップに共通の問題、疑問などの解説をします。
Netware に添付されていた Btrieve 6.10x エンジンについて
以前 Netware に添付されていた Btrieve 6.10x エンジンは 32bit アプリケーショ
ンから利用するためのクライアント通信モジュールが提供されませんので Vbma
n からも利用することができません。このエンジンが添付されていたころにはま
だマイクロソフトの 32bit OS が発売される以前のバージョンですから、32bit の
通信モジュールは提供されていないのは仕方の無い事です。動作させるために
は Btrieve 6.15 以降の Btrieve サーバー・エンジンが必要になります。
Pervasive.SQL で作成したカラムのサイズについて
SQL で作成したカラムは”not null”制約をつけない場合はデータの先頭にヌル
状態を保持するフラグ領域が 1 バイト確保されますのでレコード長等の計算時
や Btrieve アプリで構造体の計算をする場合には注意が必要です。VBMan で
はバージョン 3 からこのようなフィールドをサポートします。
VBMan Controls for Btrieve の動作に必要なファイルは何か?
以下のファイルをアプリケーションと一緒に配布してください。下記のファイル以
外にはBtrieveの実行モジュールが必要になります。Btrieve関連のモジュール
は構成によって変わりますので、詳細はBtrieveマニュアルをご覧ください。VBM
anのレジストリ登録に失敗しないようにするのであれば、最低限wbtrv32.dllの配
布は必要になります。
VBMBT330.OCX
DIBAPI32.DLL
DDFIO330.DLL
VBMBT330.OCX を手動でレジストリ登録する
Regsvr32.exe を使って COM コンポーネント l を手動で登録することが可能です。
MS DOS プロンプトで以下のコマンドを実行してください。Regsvr32.exe がウィン
ドウズのシステムに存在しない場合は VBMan のインストール・ディレクトリにあ
るものをご利用ください。
Regsvr32.exe c:\windows\system32\vbmbt330.ocx
Regsvr32.exe で 0x485 のエラーとなる
196
Regsvr32.exeはモジュールのロードに失敗した場合、上記のようにC言語の16
進形式でエラーを表示します。この値はWIN32 APIのGetLastErrorからの値で
す。 0x485という値はモジュールが見つからない、ロードできないと言う意味で
必要なDLLが存在しない場合のエラーです。VBMBT330.OCXの登録でエラーに
なる場合はDIBAPI32.DLL,DDFIO330.DLLが\windows\system32に存在すること、
Btrieveが正常にインストールされていることをご確認ください。特にBtrieve開発
キットのみインストールしているような状況ですとc:\BTI\BINのようにBtrieveの
モジュールへのパスがautoexec.batファイルで指定してないとvbmbt3.30.ocxが
登録できない状況になりますのでご注意ください。BtrieveのモジュールではWB
TRV32.DLLがロードできないとVBMBT330.OCXは登録できません。
VBMBT330.OCX が依存するファイル
Visual C++に添付されるdumpbin.exeで以下のようなコマンドで依存するファイル
を知ることが出来ます。
dumpbin /IMPORTS c:\windows\system32\vbmbt330.ocx
VB6セット・アップ・ウィザード
Vb6のセット・アップ・ウィザードにはVBMan Control for Btrieveのモジュール依
存状況をvb6dep.iniに以下のように追加します。
[VBMBT330.OCX]
Register=$(DLLSelfRegister)
Dest=$(WINSYSPATH)
Uses1=DIBAPI32.DLL
Uses2=DDFIO330.DLL
[DIBAPI32.DLL]
Dest=$(WinSysPath)
[DDFIO330.DLL]
Dest$=(WinSysPath)
チェック・ボックスをクリックしても解除されない
VBManCheckBox コントロールの DbValueTrue プロパティと DbValueFalse プロ
パティに同一の値が設定されています。異なる値をセットしてください。
セグメント・キーの作成方法
197
複数項目で一つのキーとすることを、Btrieve ではセグメント・キーといいます。V
BMan でセグメント・キーを作成する方法は以下の手順でおこないます。
1) プルダウンからインデックス、追加を選択。インデックス指定ダイアログでセ
グメントのチェック・ボックスをチェック
2) 複合キーにするフィールドを上記の手順を繰り返す。最後のフィールドを指
定する時セグメントをチェックしない。セグメントがなしとする項目までで、ひとつ
の複合キーとなることに注意。
Btrieve ではセグメント・キー全体でキー番号を一つだけ設定しますが、VBMan
においては管理方法が異なり、それぞれのフィールドに ID が割り振られること
にご注意ください。データベース・アクセス関数 DbAccess に指定するキー番号
はセグメント・キーを構成する最初のフィールド ID から1引いた値を設定します。
以下は3つの項目でセグメント・キーを作成した場合のインデックス・グリッドの
例です。
以下はセグメント・キーで GET_EQUAL する Visual Basic でバージョン 1.x コン
パチブル関数を使ったサンプルです。フィールド ITEM_CDOE1, ITEM_CODE2 が
セグメントで、Const 文で設定している値はDDF定義の ID から1を引いたもの
を設定します。
Const ITEM_TABLE = 10
Const ITEM_CODE1 = 0
Const ITEM_CODE2 = 1
Const ITEM_KEY1 = 0
Dim rc As Integer, Code1$, Code2$
Code1$ = "100"
Code2$ = "ABC"
rc = DbSetFieldData( ITEM_TABLE, ITEM_CODE1, Code1$ )
rc = DbSetFieldData( ITEM_TABLE, ITEM_CODE2, Code2$ )
rc = DbAccess( BTR_GET_EQUAL, ITEM_TABLE, ITEM_KEY1 )
If rc <> 0 Then
MsgBox "Btrieve Err" & Str$(rc)
198
End If
DbListIndex 指定に同じ名前のキーが表示される
同じフィールドで複数のセグメント・キーの先頭項目になっている場合、プロパテ
ィ・ダイアログで同じフィールド名が DbListIndex プロパティに選択肢に表示され
ます。これらを識別するためには、インデックス名(Named Index)を VBMan DDF
ビルダーで設定してください。設定の方法は名前をつけたいインデックスを選択
して、(セグメント・キーの場合は先頭の項目)「インデックス」メニューから「イン
デックス名を追加」を選択してください。インデックス名を入力するダイアログが
表示されますから、他のインデックスと識別可能な名前を設定してください。イン
デックス名はインデックス・グリッドに括弧で表示されます。
DDF ファイルのディレクトリの移動
VBMan DDF ビルダーでデータベース定義し、フォームを定義した後、それらの
ファイルをまったく別のディレクトリに移動した場合、VBMan データベース・コント
ロールの DDFDir プロパティを移動したディレクトリに変更してください。変更せ
ずに実行した場合の動作は保証できません。
DDF ディレクトリと別のディレクトリに Btrieve ファイルをおきたい
VBMan DDF ビルダーでテーブル名と Btrieve ファイル名を設定するダイアログ
において、Btrieve ファイル名としてドライブとパスを指定することで可能です。た
だし、ドライブ名を含めた場合は別環境で実行する場合(ドライブ名が異なる場
合)にシステムやシステムの変更作業量が大きいと思われる為、お勧めしませ
ん。
AutoIncrement がカウントしない
キーが設定されていない場合は整数型のフィールドと同じ扱いとなります。また、
設定するキーは昇順のキーでなければなりません。
VBMan データベースアクセス関数で集計処理の仕方
バージョン 1.x コンパチブル関数を使った場合の集計処理のサンプル・コードを
示します。
Const
Const
Const
Const
SALES_CODE 0
SALES_AMOUNT 3
SALES_CODE 0
SALES_AMOUNT 3
199
Const SALES_ITEM_KEY 0
Dim rc As Integer
Dim Total As Ingeter, Key$, Sales$
Total = 0
' 検索開始キーの値をバッファに設定
rc = DbSetFieldData( SALES_TABLE, SALES_ITEM, "AAA")
' BTRIEVE を呼び、最初に合致するレコードを得る
rc = DbAccess(BTR_GET_GREATER_OR_EQUAL, SALES_TABLE, SALES_I
TEM_KEY )
Do While rc = 0
Key$ = DbGetFieldData( SALES_TABLE, SALES_ITEM )
If Key$ > "BBB" Then ' 集計範囲の検査
Exit Do
End If
' 集計処理
Sales$ = DbGetFieldData( SALES_TABLE, SALES_AMOUNT )
Total = Total + Val( Sales$ )
' BTRIEVE を呼び次のレコードを得る
rc = DbAccess(BTR_GET_NEXT,SALES_TABLE,SALES_ITEM_KEY)
Loop
If rc <> 9 And rc <> 0 Then
MsgBox "Btrieve Err" & Str$(rc)
End If
リクエスタ環境で DDFOpen エラー(20)が起こる
Btrieve サーバーに接続できない状況が多いと思われます。クライアント・アプリ
ケーションが Btrieve のリクエスター・モジュールにアクセスできない場合や、サ
ーバーで Btrieve が実行されていない場合、サーバーと通信ができない場合な
どに発生します。
Btrieve ステータス 2003 について
ワークステーション・エンジンの設定が無いためにローカル・ディスクにある Btrie
ve ファイルにアクセスできない状況です。DDF ファイル自体も Btrieve ファイル
なので、DDF ビルダーでローカル・ディスクにある DDF をオープンする場合にも
このステータスが表示されることがあります。
金額フィールドについて
VBMan バージョン 1.x では Money 型のフィールドについては自動的に金額フォ
200
ーマットしましたが、VBMan Controls for Btrieve では Format プロパティと For
matOption プロパティの指定が必要です。前のバージョンと同じフォーマットをす
るにはプロパティの設定を以下のようにしてください。Format プロパティ、MaxLe
ngth プロパティはフィールドのサイズによって変える必要があります。
VBManEdit1.Format = “###,###,###”
VBManEdit1.FormatOption = 3
VBManEdit1.NumericMask = True
VBManEdit1.MaxLength = 11
VBMan ボタンの押下をコードで実現したい
以下のコードで動作を確認しました。直接 Click イベントをよびだしても、Btrieve
のオペレーションは実行されませんのでご注意ください。この方法は Visible プ
ロパティが True のボタンに対して有効です。ボタンをフォームの見えない位置
に設定した場合でも動作します。
VBManBtn1.SetFocus
SendKeys "{Enter}"
削除ボタンでカレント・レコードが無条件に消される
VBManBtn の DbOperation に削除を指定した場合、ボタンがクリックされた時点
でのカレント・レコードが削除されてしまいます。フォームの入力とカレント・レコ
ードが一致するかを検査するコードを VBManBtn の SetData イベントに追加す
ることで問題を解決できます。以下はサンプル・コードで、現在入力されている
主キーで GET_EQUAL してレコードの再ポジショニングをしています。
Sub VBManBtn1.SetData()
Dim rc as Integer
rc = DbTransferFromControl( TABLE_ID )
rc = DbAccess(BTR_GET_EQUAL,TABLE_ID,PRIM_KEY)
If rc = 4 Or rc = 9 Then
MsgBox "削除するデータが存在しません"
VBManBtn1.Abort = True
Exit Sub
End If
If rc <> 0 Then
MsgBox "Btrieve error " & str$(rc)
VBManBtn1.Abort = True
Exit Sub
End If
201
End Sub
WaitLock の指定について
Btrieve for Windows では WaitLock はサポートされていませんでしたが、Btriev
e for Windows95/NT ではマルチ・タスク環境に対応して WaitLock が可能にな
りました。
Format イベントのコード例
リスト・ボックス、コンボ・ボックス、拡張コンボ・ボックス、拡張リスト・ボックスの F
ormat イベントのコードはバージョン 1.x では DbSetFormattedString,DbExSetFo
rmattedString 関数を使って設定していました。VBMan Controls for Btrieve で
はこれらの関数は使う必要がなく、パラメータとして渡される文字列を直接書き
換えることでリストされる文字列を指定可能となりました。以前のバージョンとの
コンパチビリティの為にこれらの関数も使用可能です。以下は Visual Basic に
おける Format イベントのコード例です。
Sub VBManListBox1_Format( LineData As String )
Dim rc As Integer
Dim ItemName As String
‘ VBMan リスト・ボックスではこの時点でカレント・レコードの
‘ フィールドからデータを得ることができる。
ItemName = VBManDB1.DbGetFieldData(“商品”,”商品名”)
‘ LineData には商品のコードが入っているとする。
LineData = LineData & “ - “ & ItemName
End Sub
DDF ビルダーの VE1070 メッセージ
データ変換モードの DDF ビルダーで、Btrieve データの形式を移行する場合、V
E1070 エラー・メッセージが表示されることがあります。このメッセージの括弧内
はオペレーティング・システムからのエラー値です。(Win32 API GetLastError
からの戻り値)エラー値5が表示される場合は Btrieve ファイルが他のプロセス
により使用中のステータスです。Btrieve ファイルを使っているプロセスを終了し
てください。
DDF ビルダーのデータ変換モードでの編集機能
Btrieve の Create supplimental Index が既存のキーID がある場合はキー値を
設定できない等の制約により、このモードで DDF ビルダーを稼動させている場
合は、インデックスの挿入メニューは使用可能になりません。(ディスエーブルさ
202
れます)
Visual C++を使いたい
Visual C++では動作を確認できておりません。デザイン・モードでの ActiveX Co
ntrol サポート機能が不足していること、プロパティを表示する再に漢字表示が
正しく行えないなどが理由です。
モジュールがロードされる順序
Windows95/98/ME/2000/XP と Windows 3.1 ではモジュールがロードされるデ
ィレクトリの検索順序が異なりますのでご注意ください。特に Btrieve は同じファ
イル名で別のバージョンが存在しますので、注意が必要です。MS Developer N
etWork-CD の Q129943 からの情報です。
16 bit
1.
2.
3.
4.
5.
6.
Windows の DLL サーチ・パス
カレント・ディレクトリ
Windows ディレクトリ
Windows の System ディレクトリ
EXE ファイルの存在するディレクトリ
PATH 環境変数で指定されるディレクトリ
ネットワーク上のマップされたディレクトリ
32 bit
1.
2.
3.
4.
5.
6.
Windows の DLL サーチ・パス
アプリケーションがロードされたディレクトリ
カレント・ディレクトリ
32bit の Windows System ディレクトリ
16bit の Windows System ディレクトリ
Windows ディレクトリ
PATH 環境変数で指定されるディレクトリ
203
204
エラー・メッセージ
この章では、VBMan のエラー・メッセージを解説します。エラーメッセージは製品
の改良のために予告なく追加、変更される場合があります。ご了承ください。
VE001 DDF読み込みエラ-
VE002 Btriveを初期化できません
VE003 メモリ-が足りません
VE004 DDFDirが指定されていません
VE005 DbTableが指定されていません
VE006 DDF読み込みエラ-
VE007 Btrieveファイルの生成に失敗
VE008 Btrieveファイルのオ-プンに失敗
(%d)
DDFビルダーで生成したデータ
ベース定義ファイルが読み込め
ません。
VBManがBtrieveの初期化を実
行しましたが、エラーがBtrieve
から戻されました。Btrieveの設
定ファイル、インストールが完
全か再度検査してください。
実行時のメモリが足りません。
VBManDBコントロールのDDFir
プロパティが設定されていない
ため、オペレーションが可能で
はない状態です。
VBManコントロールのDbTable
プロパティが設定されていない
ため、DbFieldプロパティを設定
できない状態です。
データベース定義ファイルの読
み込み中にファイルの終わりと
なりました。データベース定義フ
ァイルが破壊されているか、VB
Manのバージョンが異なりま
す。
データファイルが存在しなかっ
たのでBtrieveデータファイルを
生成しようとしましたが、エラー
がBtrieveから返されました。rc
=xxとBtrieveのエラー・コードが
表示されるので、Btrieveエラー
を調べて対処してください。
Btrieveデータファイルが破壊さ
れています。Btrieveのユーティ
リティで復旧してください。
205
VE009 DDFファイルの形式が異なります
VE010 レコ-ド数取得失敗(rc=%d)
VE011 デ-タ型の不正
VE013 イメージ・コントロールに適合しないデータ
型です。
VE014 このバージョンのVisual Basicでは動
作しません。
VE015 イメージ・コントロールにビットマップを読み込
めません。
VE018 VBManPixはフォームに最大個(10)存
在します。
VE019 メタファイルが読めません。
VE020 アイコンファイルをオープン出来ま
せん。
VE021 アイコンファイルのフォーマットが不
正です。
VE023 アルダス形式のメタファイルを読め
ません。
VE024 テーブルIDの指定が範囲外です。
VE025 フィールドIDの指定が範囲外です。
VBManのバージョンが異なりま
す。または、データベース定義
ファイルが破壊されています。
レコード件数を取得できませ
ん。データベースが破壊されて
います。Btrieveのユーティリテ
ィで復旧が必要です。
データ型がサポートされていま
せん。使用しているデータ型が
現在のVBManバージョンで使
用可能かどうか確認してくださ
い。VBMan.DDFファイルが破壊
されている可能性もあります。
VBManの現在のバージョンで
は.bmp,.ico,.wmf以外のファイル
拡張子はイメージ・コントロール
に表示ができません。
VBMan Controls for Btrieve
はVisual Basic 4.0J 32bit版で
動作します。
.BMPファイルの形式が正しくあ
りません。
VBManPixはフォームに10個以
上設定できません。
データベースで指定されたメタ
ファイルが存在しません。
データベースで指定されたアイ
コンファイルが存在しません。
指定されたアイコンファイルの
形式が正しくありません。
指定されたメタファイルはアル
ダス形式と判断されましたが、
その形式が正しくありません。
データベース・アクセス関数に
指定したテーブルのIDが範囲
外です。
データベース・アクセス関数に
指定したフィールドのIDが範囲
外です。
206
VE026 テンポラリ文字領域が確保できま
せん。
VE027 インデックスIDの指定が範囲外で
す。
VE028 DDFオープン・エラー(nn)
VE029-031 DDF読み込みエラー
VE035 キーID の指定が範囲外です。
VE036 セグメント・キーの指定が不正で
す。
VE037 FindPercentage に失敗(%d)
VE038 GetByPercentage に失敗
(%d)
DbGetFieldDataで戻るテンポラ
リの文字領域がありません。文
字領域で使用しないものがあ
れば、開放してください。
データベース・アクセス関数に
指定したインデックスIDが範囲
外です。
DDFファイルをオープンできま
せん。括弧内はBtrieveのステ
ータス・コードです。この値をBtr
ieveマニュアル等を参考にして
問題を解決してください。
DDFファイルの形式が正しくあ
りません。
DDF で定義されていないキー
の ID を指定しました。正しいキ
ーID を指定してください。
セグメント・キーの場合、セグメ
ントの先頭のキーの ID を指定
してください。
Btrieve 6.X の Find Percentag
e オペレーションに失敗しまし
た。括弧内は Btrieve からのス
テータス・コードです。Btrieve
のファイル形式が 5.x の場合に
このメッセージが表示される場
合が多いです。ファイル形式を
6.x に変換してください。
Btrieve 6.X の Get By Percen
tage オペレーションに失敗しま
した。括弧内は Btrieve からの
ステータス・コードです。Btrieve
のファイル形式がバージョン 5.x
の場合にこのメッセージが表示
されることが多いです。ファイル
形式を 6.x に変換してください。
207
VE039 Extended Opeartion エラー(%d)
VE040 抽出するフィールド・リストが指定さ
れていません。
VE041 検索条件のフィールド指定には@が
必要です。
VE042 比較演算子は(=,<,>,<>,<=,>=)のい
ずれかを指定してください。
VE043 Extended 系オペレーションに可変
長データは指定できません。
VE044 このオペレーション・コード(nn)は使
用可能ではありません。
VE045 DbMaxRecords が指定されていま
せん。
VE046 データの指定がなく、& | オペレー
タが指定されています。不正な検索条件文
字列は(string)です。
Extended 系 Btrieve オペレー
ションが括弧内に表示されるエ
ラー・コードを返しました。詳細
は Btrieve プログラマーズ・マニ
ュアル等を参照してプログラム
を修正してください。
Extended 系 Btrieve オペレー
ションにおいて、抽出するフィー
ルドが指定されていません。
Extended 系オペレーションの
検索条件の指定でフィールド ID
が@プリフィックスになっていま
せん。
Extended 系オペレーションの
検索条件の指定で比較演算子
の指定が不正です。正しい比
較演算子を指定してください。
Extended 系オペレーションの
抽出フィールドまたは検索条件
に Note 型、Lvar 型のいずれか
が指定されています。可変長型
データを Extended 系オペレー
ションに指定することはできま
せん。
DbExAcccess 関数の第一パラ
メータに不正な値が設定されて
います。
拡張リスト・ボックスまたは拡張
コンボ・ボックスの DbMaxRecor
ds プロパティに値 0 が指定され
ています。抽出するレコード件
数を設定してください。
Extended 系コントロールまた
は、メソッド/関数で DbConditio
ns プロパティまたはパラメータ
において検索条件式の右辺が
ありませんでした。正しい検索
条件式を設定してください。
208
VE050 テーブル ID(nn)のレコード長が DDF
定義と一致していません。Btrieve=xx,DDF=
yy
VE053 センチネルエラーです。ステータス
=(nn,nn)です。
VE801 オープン・モードの指定不正です。
VE802 DbSource または DbTable プロパテ
ィが不正です。
VE803 Btrieve ファイル(name)のオープン
に失敗(nn)
Btrieve ファイルをオープンし
て、レコードを入出力するメモリ
を割り振ろうとしましたが、Btrie
ve のレコード・サイズと DDF で
定義されるレコードサイズが合
致しませんでした。Btrieve ファ
イルを生成しなおすか、既存の
Btrieve ファイルに合致するよう
に DDF を定義しなおしてくださ
い。Btrieve と DDF の定義が合
致してることを確認するには既
存の Btrieve ファイルと DDF を
定義して生成された Btrieve フ
ァイルの両方に BUTIL ユーティ
リティ等で Stat オペレーション
を実行して、インデックスの定
義、レコード長が同一であるこ
とを確認してください。DDF と B
trieve の定義が合致していない
場合の VBMan の動作は一切
保証できません。
センチネルを認識できませんで
した。当マニュアルのセンチネ
ルインストール手順に従って、
ハードウェアの接続、ドライバ
ーのインストール状況等をご確
認ください。どうしても接続出来
ない場合はカッコ内のステータ
スをサポートまでご連絡くださ
い。
VBMan データベース・コントロ
ールの OpenMode プロパティの
設定が正しくありません。
これらのプロパティを正しい値
を指定してください。
Btrieve ファイル name を Btriev
e ステータス nn の理由でオー
プンすることができませんでし
た。ステータスの詳細を Btrieve
プログラマーズ・マニュアル等
で調査して問題を解決してくだ
さい。
209
VE804 インデックスの指定が不正です。
VE805 データ・ファイル name をオープンで
きません(nn)
VE806 Btrieve ファイルと DDF ファイルの
定義が合致していません。(Btrieve=mm,DD
F=nn)
VE807 ボタンによる Btrieve オペレーション
に失敗しました。(nn)
DbIndex または DbIndexName
プロパティの指定が DDF 定義
に存在しません。これらのプロ
パティの値を正しく設定してくだ
さい。
Btrieve データ・ファイル name
を Btrieve ステータス nn が原
因でオープンすることができま
せんでした。ステータスの詳細
を Btrieve プログラマーズ・マニ
ュアル等で調査して問題を解決
してください。
Btrieve ファイルをオープンし
て、レコードを入出力するメモリ
を割り振ろうとしましたが、Btrie
ve のレコード・サイズと DDF で
定義されるレコードサイズが合
致しませんでした。Btrieve ファ
イルを生成しなおすか、既存の
Btrieve ファイルに合致するよう
に DDF を定義しなおしてくださ
い。Btrieve と DDF の定義が合
致してることを確認するには既
存の Btrieve ファイルと DDF を
定義して生成された Btrieve フ
ァイルの両方に BUTIL ユーティ
リティ等で Stat オペレーション
を実行して、インデックスの定
義、レコード長が同一であるこ
とを確認してください。DDF と B
trieve の定義が合致していない
場合の VBMan の動作は一切
保証できません。
VBMan ボタン・コントロールをク
リックされたので、Btrieve オペ
レーションを発行しましたが、Bt
rieve ステータス nn が返されま
した。Btrieve ステータスを Btri
eve プログラマーズ・マニュアル
等で調査してエラーを取り除い
てください。
210
VE808 Parent の DispatchID を取得できま
せん。
VE809 Parent ディスパッチ・インターフェー
スを取得できません。
VE810 Parent の Name DispatchID を取得
できません。
VE811 Parent の Name ディスパッチ・イン
ターフェースを取得できません。
VE812 DDF ファイルクローズ・エラー(nn)
VE813 Btrieve ファイル name のクローズ・
エラー(nn)
VBMan コントロールが置かれ
ているフォーム等の OLE Dispa
tch ID が取得できません。この
コントロール・コンテナは VBMa
n を使用するには機能が不足し
ています。
VBMan コントロールが置かれ
ているフォーム等の OLE ディス
パッチ・インターフェースが取得
できません。このコントロール・
コンテナは VBMan を使用する
には機能が不足しています。
VBMan コントロールが置かれ
ているフォーム等の Name プロ
パティの OLE Dispatch ID が
取得できません。このコントロー
ル・コンテナは VBMan を使用
するには機能が不足していま
す。
VBMan コントロールが置かれ
ているフォーム等の Name プロ
パティの OLE ディスパッチ・イ
ンターフェースが取得できませ
ん。このコントロール・コンテナ
は VBMan を使用するには機能
が不足しています。
DDF ファイルをクローズすると
きに Btrieve がステータス nn を
返しました。このステータスを B
trieve プログラマーズ・マニュア
ル等で調査してエラーを取り除
いてください。
Btrieve ファイル名が name で
ある Btrieve ファイルをクローズ
するとき、Btrieve が nn のステ
ータスを返しました。このステー
タスを Btrieve プログラマーズ・
マニュアル等で調査してエラー
を取り除いてください。
211
VE814 コンテナから Name, FormName を
取得できません。
VE815 プロパティの値が不正です。
VE816 パーセンテージ・オペレーションに失
敗(nn)
VE817 ゲット・パーセンテージ・オペレーショ
ンに失敗(nn)
VE818 Extended オペレーションで指定さ
れたフィールド(field_name)が存在しませ
ん。
VE819 イメージ・ファイル(name)が存在しま
せん。
コンテナ・アプリケーションの機
能が不足しているので、VBMan
カスタム・コントロールを使うこ
とができません。
特定のコントロールのプロパテ
ィ値が不正です。
スクロールバーの操作をするた
めに Btrieve のパーセンテー
ジ・オペレーションを発行しまし
たが、Btrieve がステータスの n
n を返しました。このステータス
を Btrieve プログラマーズ・マニ
ュアル等で調査してエラーを取
り除いてください。
スクロールバーの操作をするた
めに Btrieve のゲット・パーセン
テージ・オペレーションを発行し
ましたが、Btrieve がステータス
の nn を返しました。このステー
タスを Btrieve プログラマーズ・
マニュアル等で調査してエラー
を取り除いてください。
Extended 系のオペレーションを
実行する際に DbConditions ま
たは DbListFields プロパティに
指定されたフィールド field_nam
e が見つかりませんでした。
VBMan ピクチャー・コントロー
ルがイメージ・ファイル name を
オープンできませんでした。
212
213
VBMan エラー・コード
VBMan Controls for Btrieve では、メソッドや関数の戻り値にマイナスの値を
返す場合があります。以下はこれらの VBMan エラー・コードについての説明で
す。値(-16)以降は version 3.30 で新たに追加になったエラー・コードです。
エラー・シンボル
VBM_ERR_GENERIC
値
-1
VBM_ERR_ALREADY_OPEN
-2
VBM_ERR_NOT_OPEN
-3
VBM_ERR_INVALID_TABLE_NAME
-4
VBM_ERR_INVALID_FIELD_NAME
VBM_ERR_INVALID_KEY
VBM_ERR_INVALID_OPCODE
-5
-6
-7
VBM_ERR_INVALID_EXCOND
-8
VBM_ERR_INVALID_EXTRACTOR
-9
VBM_ERR_LOCK_BIAS
-10
VBM_ERR_CONTROL_NOT_FOUN -11
D
VBM_ERR_NOT_ATTACHED
-12
詳細
一般的なエラー。これ以外のエ
ラーに含めることができないも
の。
Btrieve ファイルがオープンして
いない時に実行されるべきメソッ
ド/関数がオープン中のファイル
に対して実行された。
Btrive ファイルがオープンされて
いる時に実行されるべきメソッド/
関数がオープンされていないファ
イルに対して実行された。
テーブル名が DDFDir プロパティ
で指定される DDF に存在しな
い。
フィールド名が存在しない。
インデックス名が存在しない。
Btrieve のオペレーション・コード
として指定できない値を設定し
た。
Extended 系の Btrieve オペレー
ションを発行するメソッド/関数で
検索条件の指定が不正である。
Extended 系の Btrieve オペレー
ションを発行するメソッド/関数で
抽出するフィールドの指定が不
正である。
トランザクション関連のメソッド/
関数などで、ロック値として不正
な値を設定した。
DbAttachControl 関数で最初の
パラメータがただしくない。
DbAttachControl 関数が呼び出
214
VBM_ERR_INVALID_FIELD_ID
VBM_ERR_INVALID_KEY_ID
VBM_ERR_INVALID_TABLE_ID
VBM_ERR_EXPAND_FILE_NAME
-13
-14
-15
-16
VBM_ERR_DATA_TYPE
-17
VBM_ERR_ARRAY_DIMS
-18
VBM_ERR_OUT_OF_RANGE
-19
VBM_ERR_DDF_LOAD
-20
VBM_ERR_INVALID_DDF_DIR
-21
VBM_ERR_ARRAY_ACCESS
-22
VBM_ERR_INVALID_ARRAY_TYPE
-23
されていない状態でバージョン 1.
x コンパチブル関数が呼び出さ
れた。
フィールド ID が正しくない。
インデックス ID が正しくない。
テーブル ID が正しくない。
DDFDir を短いファイル名に変換
する際にエラーが発生しました。
ファイル・システムの破損が考え
られます。ScanDisk 等でエラー
が発生するファイル・システムを
修復してください。
配列で変数を指定する仕様のメ
ソッドにおいてパラメータのデー
タ型が不正です。
1次元配列が指定されたメソッド
のパラメータにそれ以外の次元
の配列が指定されました。
データを受取る配列のサイズが
不充分です。またはデータを配
列で設定するメソッドの場合、配
列のインデックス範囲がフィール
ド ID の範囲を越えています。
DDF がロードされていない状態
で DDF 情報が必要とされるメソ
ッド、コントロールが利用されて
います。アプリケーションは DbLo
adDDF メソッドで事前に DDF を
読みこませる必要があります。
DbLoadDDF メソッドが呼び出さ
れましたが、DDFDir プロパティ
に正しい値が設定されていませ
んでした。
指定された配列をアドレスに変
換する Win32 API がエラーを返
しました。Visual Basic 等の言語
では通常起こり得ないシステム・
エラーです。言語やシステムの
再インストールをお勧めします。
配列で変数を指定する仕様のメ
ソッドにおいてパラメータのデー
215
VBM_ERR_INVALID_ARRAY_DIM
-24
VBM_ERR_SENT_MODULE_LOAD
-25
VBM_ERR_SENT_MODULE_ENTRY
-26
VBM_ERR_SENT_QUERY
-28
VBM_ERR_SENT_MISSING
-29
VBM_ERR_SENT_OPEN
-30
VBM_ERR_SENT_INIT
-31
VBM_ERR_SENT_FIND_UNIT
-33
タ型が不正です。
1次元配列が指定されたメソッド
のパラメータにそれ以外の次元
の配列が指定されました。
サポート用センチネル診断値で
す。センチネル用ドライバーが正
常にインストールされていませ
ん。
サポート用センチネル診断値で
す。Sx32w.dll または sp32w.dll
が破損している可能性がありま
す。
サポート用センチネル診断値で
す。パラレルポート用センチネル
が接続されていないと思われま
す。
サポート用センチネル診断値で
す。パラレルポート用センチネル
が接続されていないと思われま
す。
サポート用センチネル診断値で
す。センチネルの初期化に失敗
しています。
サポート用センチネル診断値で
す。センチネルの初期化に失敗
しています。
サポート用センチネル診断値で
す。USB センチネルのユニット
が接続されていません。
216
DDF ビルダー・メッセージ
DDF ビルダーが表示するメッセージについて解説します。
メッセージ
意味
VE1000 DDF ディレクトリを指定してく 新規 DDF の作成で DDF ディレクトリが
ださい
指定されていません。DDF ディレクトリ
を正しく指定してください。
VE1001 DDF 情報を正しく指定してくだ 新規 DDF の作成で Btrieve ファイル名
さい
が入力されていません。正しい Btrieve
ファイル名を指定してください。
VE1002 フィールド名を指定してくださ フィールドの追加、修正でフィールド名
い
が入力されていません。
VE1003 データサイズまたは小数点以 フィールドの追加、修正で設定したデー
下桁数が不正です
タ型のサイズまたは小数点以下の設定
が正しくありません。正確な値を設定し
てください。データ型の詳細を Btrieve
マニュアルで参照されることをお勧めし
ます。
VE1004 フィールドはこれ以上追加でき 現在の DDF ビルダーで設定可能なフィ
ません
ールド数の上限に達しました。これ以上
フィールドは追加することができませ
ん。
VE1006 すでに同名のフィールドが定 フィールドの追加ですでにテーブルに
義されています
存在するフィールド名を指定しました。
フィールド名は他と識別するためにユニ
ークな名前を設定することが必要です。
VE1007 すでに同名のテーブルが定義 新規テーブルの定義で指定したテーブ
されています
ル名はすでに DDF に存在します。テー
ブル名は他と識別するためにユニーク
な名前を設定することが必要です。
VE1008 フィールドが選択されていませ メニューからフィールド処理を選択しま
ん
したが、処理対象となるフィールドが選
択されていません。マウスの左クリック
で処理対象となるフィールドを選択して
からメニューの選択を実行してくださ
い。
VE1009 テーブルが選択されていませ メニューからテーブルに関する処理が
ん
選択されましたが、処理対象となるテー
ブルが選択されていません。処理する
217
VE1010 フィールド [%s] を削除します
か?
VE1011 フィールドが定義されていませ
ん
VE1012 インデックスはこれ以上設定
できません
VE1013 フィールドが選択されていませ
ん
VE1014 修正するインデックスが選択さ
れていません
VE1015 インデックス[%s]を削除します
か?データ変換モードの場合で、セグメント・
キーの場合はセグメント・キーを一括削除し
ます。
VE1016 削除するインデックスが選択さ
れていません
VE1017 DDFOpen API エラー(%d)
テーブルのウィンドウのタイトルをクリッ
クしてアクティブな状態にしてからメニュ
ーを選択してください。
フィールド削除の確認です。削除しても
良い場合は OK ボタンをクリックしてくだ
さい。
インデックスの追加をメニューから選択
しましたが、まだフィールドがひとつも定
義されていません。先にフィールドを定
義してください。
インデックス定義の上限値に達しまし
た。Btrieve の仕様により定義できるイ
ンデックス数には上限があります。
インデックスの追加・修正でフィールド
が選択されていません。フィールドを選
択してください。
インデックスの修正をメニューから選択
しましたが、修正対象となるインデック
スが選択されていません。先にインデッ
クスのグリッドから修正対象となるイン
デックスをマウスの左クリックで選択し
てください。
インデックス削除の確認メッセージで
す。かぎ括弧で表示されたインデックス
を削除してよければ、OK ボタンをクリッ
クしてください。データ変換モードではセ
グメント・キーの途中を残すことは意味
が無いのでセグメント・キー全体を削除
します。
インデックスの削除をメニューから選択
しましたが、削除対象となるインデック
スが選択されていません。先にインデッ
クスのグリッドから削除対象となるイン
デックスをマウスの左クリックで選択し
てください。
既存の DDF ファイルを修正するために
DDF をオープンしましたが、Btrieve か
ら括弧内のステータスが返されました。
括弧内の値を Btrieve のマニュアルな
どで調査してください。多くの場合は Bt
rieve エンジンやサーバー環境の設定
に問題があると思われます。
218
VE1018 DDFWriteFile API エラー(%d)
VE1019 DDFWriteField API エラー[%s]
(%d)
VE1020 DDFWriteIndex API エラー(%d)
VE1021 テーブルが定義されていませ
ん
VE1022 インデックスの最後の項目は
セグメントをオフにしてください
VE1023 データ型が選択されていませ
ん
VE1024 フィールドにはインデックスが
作成されています。先にインデックスを
削除してください
VE1025 DDF ファイルが存在しません
VE1026 FILE.DDF 読みエラー(%d)
FILE.DDF を書きこむ際に Btrieve が括
弧内のステータスを返しました。括弧内
の値を Btrieve のマニュアルなどで調
査してください。多くの場合、Btrieve エ
ンジンやサーバー環境の設定、ディス
ク容量などの問題思われます。
FIELD.DDF を書きこむ際に Btrieve が
括弧内のステータスを返しました。括弧
内の値を Btrieve のマニュアルなどで
調査してください。多くの場合、Btrieve
エンジンやサーバー環境の設定、ディ
スク容量などの問題思われます。
INDEX.DDF を書きこむ際に Btrieve が
括弧内のステータスを返しました。括弧
内の値を Btrieve のマニュアルなどで
調査してください。多くの場合、Btrieve
エンジンやサーバー環境の設定、ディ
スク容量などの問題思われます。
DDF の保存を指定されましたが、テー
ブルがひとつも定義されていないので
保存できません。
DDF の保存時にインデックスの最後の
項目がセグメントがオンになったまま
で、セグメント・キーの終わりが設定さ
れていません。インデックス定義の見直
しが必要と思われます。
フィールドの設定でデータ型が定義され
ていませんでした。データ型の選択は
必須です。
フィールドの削除が指定されましたが、
対象となるフィールドにはインデックス
が設定されています。フィールドを削除
する前に関連するインデックスをすべて
削除してからフィールドを削除してくださ
い。
既存の DDF ファイルのオープンが指定
されましたが、FILE.DLL,FIELD.DDF,IND
EX.DDF の3ファイルが同じディレクトリ
に存在しませんでした。DDF の存在す
るディレクトリを正しく指定してください。
既存の DDF ファイルのオープンが指定
されましたが、FILE.DDF の読み込み時
219
VE1027 FIELD.DDF 読みエラー(%d)
VE1028 INDEX.DDF 読みエラー(%d)
VE1031 vbman.ini への書き込みに失
敗しました
VE1032 搬出ファイルを書き込みモードで
オープンできません
VE1033 テーブル[%s]の搬出が終了し
ました
VE1034 搬入ファイルを読み込みモードで
オープンできません
に Btrieve が括弧内のステータスを返
しました。括弧内の値を Btrieve マニュ
アルなどで調査してください。多くの場
合、Btrieve エンジンの設定に問題があ
るか破損した DDF ファイルを指定して
いるか、形式の正しくない DDF ファイル
を指定していると思われます。
既存の DDF ファイルのオープンが指定
されましたが、FIELD.DDF の読み込み
時に Btrieve が括弧内のステータスを
返しました。括弧内の値を Btrieve マニ
ュアルなどで調査してください。多くの
場合、Btrieve エンジンの設定に問題が
あるか破損した DDF ファイルを指定し
ているか、形式の正しくない DDF ファイ
ルを指定していると思われます。
既存の DDF ファイルのオープンが指定
されましたが、INDEX.DDF の読み込み
時に Btrieve が括弧内のステータスを
返しました。括弧内の値を Btrieve マニ
ュアルなどで調査してください。多くの
場合、Btrieve エンジンの設定に問題が
あるか破損した DDF ファイルを指定し
ているか、形式の正しくない DDF ファイ
ルを指定していると思われます。
ウィンドウズがインストールしていある
ディスクが満杯か破損している状況と
思われます。ディスクの容量を確認でき
たら、ScanDisk 等を実行して破損を回
復してください。
搬出を指定したディスクの容量が不足
しているかディスクが破損していると思
われます。ディスクの容量を確認できた
ら、ScanDisk 等を実行して破損を回復
してください。
搬出が正常に終了した場合の通知メッ
セージです。
搬入を指定したファイルかディスクが破
損しているか、ファイルが存在しないと
思われます。ファイルの存在が確認で
きたら、ScanDisk 等を実行して破損を
回復してください。
220
VE1035 テーブル[%s]の搬入が終了し
ました
VE 1 0 37 テーブル[%s]を削除します
か?
VE1039 メモリが確保できません。
VE1040 BTRIEVE CREATE に失敗(%
d)
VE1041 BTRIEVE ファイル %s が存在し
ます。上書きしますか?
VE1042 ファイル %s はすでに存在し
ます。上書きしますか?
VE1043 ファイルが書き込みモードでオ
ープンできません。
VE1044 フィールド ID ファイルの出力が終了
しました
VE1045 DDF ファイルを保存しますか
VE1046 書き込むフォーム %s のオープンに
搬入が正常に終了した場合の通知メッ
セージです。
テーブルを削除する際の確認メッセー
ジです。かぎ括弧で表示されるテーブ
ルを削除する場合は OK ボタンをクリッ
クします。
DDF ビルダーが動作するのに十分なメ
モリが確保できませんでした。同時に起
動しているアプリケーションがあれば終
了させてください。DDF ビルダー単独で
起動しても同メッセージが表示される場
合は、パソコンの実装メモリを増やす
か、スワップを大きくしてください。
Btrieve ファイルの生成に失敗しまし
た。失敗した理由は括弧内の Btrieve
ステータスで表示されていますので、Bt
rieve マニュアルなどで原因をお調べく
ださい。
Btrieve ファイルの生成を指定しました
が、生成の対象となるファイルはすでに
存在しています。既存のファイルが不
要であれば、このメッセージに OK をク
リックして新しい Btrieve ファイルを上書
きして生成します。
フィールド ID ファイルの出力で指定さ
れたファイルはすでに存在しています。
既存のファイルが不要であれば、このメ
ッセージに OK をクリックして既存のファ
イルを上書きしてください。
フィールド ID ファイルの出力で指定さ
れたファイルを出力するモードでオープ
ンすることが出来ませんでした。ディス
クの容量が満杯になっているか、ディス
クの破損が原因と思われます。ディスク
の容量に問題が無ければ、ScanDisk
などでディスクの障害をとりのぞいてく
ださい。
フィールド ID の出力が正常に終了した
ことを通知するメッセージです。
DDF ファイルの保存確認メッセージで
す。
フォームの生成で指定されたファイルを
221
失敗しました
VE1047 新規または修正されたテーブル%
s に対して整合性のないとおもわれる B
TRIEVE ファイル %s が存在します。OK を
クリックした場合は BTRIEVE ファイルを削除
します
VE1048 BTRIEVE ファイルの削除ができ
ません。他のプログラムが使用中です
VE1049 テーブルにフィールドが定義されて
いません
VE1050 クリップボードの内容が不正で
す
VE1051 1ページに印字するフィールド数が
不正です
VE1052 可変長フィールドを挿入するこ
とはできません。テーブルの最後に1フ
ィールドのみの追加は可能です
VE1053 すでに可変長の項目が存在し
ます
書きこみのモードでオープンすることが
できませんでした。ディスクの容量が満
杯になっているか、ディスクの破損が原
因と思われます。ディスクの容量に問
題が無ければ、ScanDisk などでディス
クの障害をとりのぞいてください。
フィールド定義で合算されるレコード長
と異なる既存の Btrieve ファイル存在し
ます。Control ではフィールド定義と合
致しない Btrieve ファイルを扱うことが
できないので、このメッセージに OK を
クリックした場合は該当 Btrieve ファイ
ルを削除します。
VE1047 メッセージで削除を指定された
Btrieve ファイルは他のアプリケーション
などでオープンされているため削除す
ることが出来ませんでした。該当 Btriev
e ファイルを削除したい場合はアプリケ
ーションを終了させてから削除してくだ
さい。
フォームの生成が指定されましたが、
指定されたテーブルにはフィールドがひ
とつも定義されていませんでした。フィ
ールド定義、インデックス定義が完了し
たテーブルについてフォームの生成を
実行してください。
クリップ・ボードには VBMan DDF ビル
ダーで設定した以外のデータが保持さ
れているので、クリップ・ボードからのペ
ーストが実行できませんでした。クリッ
プ・ボードへのコピーからやり直してくだ
さい。
システム・オプションの指定で1ページ
に印字するフィールド数の指定が0か
空白になっています。0以外の値を指
定してください。
フィールドの挿入を指定しましたが、設
定したフィールドは可変長のデータ型で
す。可変長のフィールドはテーブルの最
後に追加することだけが可能です。
テーブルには可変長のデータ型を持つ
フィールドを複数定義することはできま
222
VE1054 テーブルの最後の項目以外は
可変長データ型に変更できません
VE1055 Named Index は変更できませ
ん
VE1057 テーブル[%s]にインデックスが
ありません。VBMan からの DDF 利用
にはすくなくとも一つインデックスを作成
してください
VE1059 dbMagic 情報ファイルの搬入
に失敗しました
VE1060 dbMagic の数値形フィールドに
不正なデータ長があります
VE1061 dbMagic 情報ファイルの FILE
行に DESC=が存在しません
VE1062 dbMagic 情報ファイルの FILE
行に NAME=(btrieve ファイル名)の定義
が存在しません
VE1063 インデックス名[%s]を削除しますか
VE1064 インデックス名を設定するときは
セグメント・キーの場合はセグメントの
先頭にセットしてください
VE1070 ファイルのコピーまたは移動に
失敗しました。オペレーティングシステ
ムからのエラー・コードは %d です。
せん。
フィールドの変更を指定しましたが、テ
ーブルの最後の項目では無いため、可
変長データ型のフィールドに変更するこ
とは出来ません。
インデックス名は追加と削除のみ可能
な仕様です。
DDF の保存を指定しましたが、インデッ
クスがひとつも定義されていません。V
BMan のコントロールを使う際にはイン
デックスが1個は必要なので、インデッ
クスを定義してから DDF の保存をして
ください。
DbMagic データ辞書ファイルの搬入に
失敗したことを通知するメッセージで
す。
DbMagic のデータ辞書の形式が不正で
す。今一度 dbMagic でデータ辞書搬出
をした結果をご確認ください。
DbMagic のデータ辞書の形式が不正で
す。今一度 dbMagic でデータ辞書搬出
をした結果をご確認ください。
DbMagic のデータ辞書の形式が不正で
す。今一度 dbMagic でデータ辞書搬出
をした結果をご確認ください。
インデックス名の削除確認メッセージで
す。かぎ括弧でかこまれたインデックス
名を削除してもよければ、OK ボタンを
クリックしてください。
インデックス名の追加を指定する場合
はセグメント・キーの先頭の項目に設定
してください。セグメント・キーの先頭以
外のメンバーを選択した状態でインデッ
クス名の指定をメニューから選択してい
ます。
データ移行モードでフォーマット変換の
対象となる Btrieve データ・ファイルを移
動する際にオペレーティング・システム
がエラーを返しました。エラー・コードは
Win32 API の GetLastError からの値で
す。Windows SDK 等マイクロソフトの資
料にエラー・コードの詳細が記載されて
223
VE1071 Btrieve ファイルのフォーマット
変換中にエラー(%d)
VE1072 ファイル変換につかったとおも
われるファイル %s が存在します。削
除して処理をすすめますか?
VE1073 Btrieve ファイルがオープンで
きません。Btrieve のステータスは(%d)
です。
います。
データ移行中に Btrieve が括弧内のエ
ラーを返しました。括弧内の値を Btriev
e マニュアルなどで調査してください。
既存のデータにインデックスを追加する
際に重複が発生する際には括弧内に
ステータス5が表示されます。
データ移行を開始する際に前回に変換
に失敗したと思われる一時ファイルが
残っていました。前回の変換で途中ま
での変換が残っていてそこからデータ
を復元できる場合もあります。一時ファ
イルが不要であれば OK クリックして作
業を進めてください。
データ移行の際に該当 Btrieve ファイ
ルをオープンしたら Btrieve から括弧内
のステータスが返されました。括弧内の
値を Btrieve マニュアル等で調査してく
ださい。
データ変換モードでのフィールド変更に
関する注意メッセージです。
VE1074 Btrieve データ変換モードではフィ
ールド、インデックスの修正はできません。
変更したいフィールド、インデックスはいった
ん削除してから、追加してください。デー
タを変換する必要がなければ、システム・オ
プションからデータ変換モードを解除してくだ
さい。
VE1075 Btrieve の DropIndex オペレー データ変換モードでインデックスの削除
ションに失敗しました。Btrieve からのス を指定されました。それに従って Btriev
e のキー削除を実行しましたが、Btriev
テータスは(%d)です
e が括弧内のステータスを返してきまし
た。括弧内の値を Btrieve マニュアル
等で調査してください。
VE1076 Btrieve の CreateIndex オペレ データ変換モードでインデックスの追加
ーションに失敗しました。Btrieve からの を指定されました。それに従って Btriev
e のキー追加を実行しましたが、Btriev
ステータスは(%d)です
e が括弧内のステータスを返してきまし
た。括弧内の値を Btrieve マニュアル
等で調査してください。
VE1078 フィールド数が多いのでフォー DDF のテーブルに定義されたフィール
ムを作成しても VB で利用できません。 ド数が 254 個を越えているので、フォー
(VB5/4 では最大 254 コントロール/For ムを生成しても Visual Basic で入力画
面として利用することが出来ません。フ
m)
224
VE1079 dbMagic 情報ファイルに FILE=
の行が存在しません。
ィールド数の少ないテーブルを指定して
ください。
DbMagic データ辞書ファイルの軽視 k
いが不正です。データ辞書ファイルの
搬出結果を確認してください。
225
226
Btrieve ステータス・コード
以下に Btrieve のステータス・コードと概要を記述します。この VBMan Controls
for Btrieve のマニュアルが記述された時点の情報であることに注意してくださ
い。将来のコンパチビリティについては当社では保証できません。詳細は Btriev
e の開発キットのマニュアルまたは、ノベルの NetWare の「Btrieve インストー
ル・オペレーション」マニュアルなどに記載があります。
2 I/O ERROR
3 File not opened
4 Key Value not found
5 Duplicate key value
6 Invalid key number
7 Different key number
8 Invalid Positioning
9 End of file
10 Modifiable Key value error
11 invalid file name
12 file not found
13 Extended file error
14 Pre-Image open error
15 Pre-Image I/O error
16 Expansion error
17 Close error
18 Disk Full
19 Unrecoverable error
20 Record Manager Inactive
21 Key Buffer Error
22 Key Buffer Error
23 Position Block Error
24 Page Size Error
25 Create I/O Error
227
26 Number of Keys
27 Key Position
28 Record Length
29 Key Length
30 Btrieve file name
31 Extended Error
32 Extended I/O error
34 Extend Name
35 Directory Error
37 Begin Transaction error
38 Transaction Control File
39 End/Abort Error
40 Transaction Max Files
41 Operation not allowed
42 Incomplete accelerated access
43 Invalid data record address
44 Null key path
45 Inconsistent Key flags
46 Access denied
47 Maximum open files
48 Invalid Alternate sequence definition
49 Key type error
50 Owner already set
51 Invalid Owner
52 Error Writing cache
53 Invalid Interface
54 Variable Page Unreadable
55 Autoincrement error
56 Incomplete index
57 Expanded Memory Error
58 Compression buffer too short
59 File Already Exists
228
60 Reject Count Reached
61 Work space too small
62 Incorrect descriptor
63 Invalid extended insert buffer
64 Filter limit reached
65 Incorrect field offset
74 Automatic transaction abort
75 Server Routing list too small
76 File server list too small
77 Wait lock error
78 Deadlock detected
80 Conflict
81 Lock error
82 Lost position
83 Read Outside Transaction
84 Record in use
85 File in use
86 File full
87 Handle full
88 Mode Error
90 Redirected Device table full
91 Server Error
92 Transaction table full
93 Incomplete lock type
94 Permission error
95 Session no longer valid
96 Communication environment error
97 Data message too small
98 Internal transaction error
1001 Invalid lock parameter
1002 Invalid memory parameter
1003 Insufficent memory for parameters specified
229
1004 Invalid page size parameter
1005 Invalid pre-image device parameter
1006 Invalid pre-image memory parameter
1007 Invalid file parameter
1008 Incorrect parameter
1009 Invalid transaction parameter
1010 Unable to access btrieve file for transaction recovery
1011 Invalid compression parameter
1012 Number of files in transaction should be between 1 to 18
1013 Task list is full
1014 File is open or transaction is active
1016 Already initialized
2001 Insufficent Memory
2002 Parameter Invalid or Out of Range
2003 No Local Access Allowed
2004 SPX is Not installed
2005 Wrong version of SPX Installed
2006 No Available SPX Connection
2007 Invalid Parameter
230
VBMan Controls for Btrieve 調査依頼フォーム
日付
会社名
登録ユーザー名
製品シリアル番号
VBMan Controls for Btireve
バージョン
電話番号
ファックス番号
インターネット・メール・アドレス
使用パソコン機種
OSバージョン
Btrieve/Pervasive.SQLバージョン
Visual Basic/Visual Studio.NETバージョン
お問合わせ内容、問題記述など、具体的に再現可能なようにご記入ください。
添付資料
231
VBMan Controls for Btrieve
Version 3.30
第1版
2005年11月1日第1刷発行
版権・著作 株式会社テクナレッジ
Printed In Japan
232