PSQL_ActiveX_Guide.book

Size: px
Start display at page:

Download "PSQL_ActiveX_Guide.book"

Transcription

1 Pervasive PSQL v11 ActiveX Controls Guide Developing Applications Using Pervasive PSQL ActiveX Controls

2 免責事項 商標 Pervasive Software Inc. は 本ソフトウェアおよびドキュメントの使用を 利用者またはその会社に対して 現状のまま で かつ同梱の使用許諾契約書に記載の契約条件によってのみ許諾するものです Pervasive Software Inc. は いかなる場合にも本ソフトウェアおよび本マニュアルに記載された内容に関するその他の一切の保証を 明示的にも黙示的にも行いません Pervasive Software Inc. は 市場性 権利 特定の目的に対する適合性 あるいは一連の取引業務や職業的な使用に関する問題などに対し 一切の保証を行わないことを明示するとともに 利用者およびその会社がこれに同意したものとします Btrieve Client/Server in a Box Pervasive Pervasive Software および Pervasive Software のロゴは Pervasive Software Inc. の登録商標です Built on Pervasive Software DataExchange MicroKernel Database Engine MicroKernel Database Architecture Pervasive.SQL Pervasive PSQL Solution Network Ultralight ZDBA は Pervasive Software Inc. の商標です Microsoft MS-DOS Windows Windows 95 Windows 98 Windows NT Windows Me Windows 2000 Windows 2003 Windows 2008 Windows 7 Windows 8 Windows Server 2003 Windows Server 2008 Windows Server 2012 Windows XP Win32 Win32s および Visual Basic は Microsoft Corporation の登録商標です NetWare および Novell は Novell, Inc. の登録商標です NetWare Loadable Module NLM Novell DOS Transaction Tracking System TTS は Novell, Inc. の商標です Sun Sun Microsystems Java および Sun Solaris Java を含むすべての商標やロゴは Sun Microsystems の商標または登録商標です すべての会社名および製品名は各社の商標または登録商標です Copyright 2013 Pervasive Software Inc. All rights reserved. このマニュアルの全文 一部に関わりなく複製 複写 配布をすることは 前もって発行者の書面による同意がない限り禁止します 本製品には Powerdog Industries により開発されたソフトウェアが含まれています Copyright 1994 Powerdog Industries.All rights reserved. 本製品には KeyWorks Software により開発されたソフトウェアが含まれています Copyright 2002 KeyWorks Software.All rights reserved. 本製品には DUNDAS SOFTWARE により開発されたソフトウェアが含まれています Copyright DUNDAS SOFTWARE LTD. All rights reserved. 本製品には Apache Software Foundation Foundation ( により開発されたソフトウェアが含まれています 本製品ではフリーソフトウェアの unixodbc Driver Manager を使用しています これは Peter Harvey ([email protected]) によって作成され Nick Gorham ([email protected]) により変更および拡張されたものに Pervasive Software が一部修正を加えたものです Pervasive Software は unixodbc Driver Manager プロジェクトの LGPL 使用許諾契約書に従って このプロジェクトの現在の保守管理者にそのコード変更を提供します unixodbc Driver Manager の Web ページは にあります このプロジェクトに関する詳細については 現在の保守管理者である Nick Gorham ([email protected]) にお問い合せください GNU Lesser General Public License (LGPL) は本製品の配布メディアに含まれています LGPL は でも見ることができます ActiveX Controls Guide 2014 年 5 月

3 目次 このマニュアルについて xxiii このマニュアルの読者 xxiv このマニュアルの構成 xxv 表記上の規則 xxvi 1 ActiveX の概要 ActiveX アクセス方法の概要 開発環境 サードパーティデータバウンドコントロール ActiveX コントロールオブジェクト ActiveX アクセス方法の選択 ActiveX アクセス方法を利用するとき ActiveX アクセス方法の主要な機能 VB 内のデータアウェアコントロールのデータソース フィールドレベルアクセス プロパティおよびメソッドインターフェイス Extended オペレーション DDF ActiveX DDF アクセスメソッド リモートデータアクセス 結合テーブル ActiveX アクセス方法では使用できない Pervasive PSQL 機能 SQL 構文 チャンクオペレーション 非常に大きなレコード 複数の ACS を使用するファイルの作成 データ型 URI 構文 ActiveX コントロールを使用する最初の手順 Pervasive PSQL Control Center を使用してデータベースを作成する Visual Basic と Delphi への ActiveX アクセス方法のインポート ActiveX クイックスタート ActiveX で使用されるファイルとディレクトリ ActiveX アクセス方法を使用したアプリケーションの作成 プロジェクトへの ActiveX アクセス方法の追加 VAccess コントロールの使用 プロパティへのアクセス プロパティの設定 Pervasive PSQL ファイルへの接続 インデックスの選択 自動と手動のファイルオープンの設定 例 データソースへのバウンドコントロールのリンク レコードの取得 iii

4 目次 例 特定のレコードの検索 例 レコードの追加 更新および削除 例 レコードのロック 例 ファイルの結合 Extended オペレーションの有効化 Pervasive PSQL ActiveX ファイルの配布と登録 ActiveX アクセス方法に関する追加情報 ActiveX でのデータ辞書メソッドの使用 ActiveX データソースコントロールによる DDF の処理 ファイルの内容とメモリイメージ 辞書ファイルの読み取り 辞書ファイルの変更 テーブル定義の作成 辞書の作成 データファイルの変更 その他の DDF 操作 オーナーネームによる DDF の保護 既存のフィールドとインデックス情報の削除 永続的な DDF メモリイメージによるコメントの強制設定 広範囲に影響が及ぶ ActiveX メソッド ActiveX コントロールリファレンス VAccess データソース カスタムプロパティ メソッドおよびイベント VACheck カスタムプロパティとメソッド VACombo カスタムプロパティとメソッド VACommand カスタムプロパティ VAHScroll と VAVScroll iv

5 目次 カスタムプロパティ VAList カスタムプロパティとメソッド VAOption カスタムプロパティとメソッド VAText カスタムプロパティとメソッド カテゴリ別プロパティ メソッド およびイベント ActiveX のプロパティ メソッド およびイベントの概要 レコードセットの取得 プロパティとメソッド イベント ファイルの処理 プロパティとメソッド データ辞書メソッド プロパティとメソッド レコード内のフィールドへのアクセス プロパティとメソッド レコードの挿入 更新 および削除 プロパティとメソッド イベント 個別レコードの取得 プロパティとメソッド イベント 最適化とデバッグ プロパティとメソッド ActiveX プロパティリファレンス AutoDialog 関連項目 AutoLogon 関連項目 AutoMode v

6 目次 関連項目 AutoOpen 関連項目 Buffer 構文 例 関連項目 CacheRejectMax 関連項目 CacheRows 関連項目 CancelDialog 関連項目 Column 関連項目 ColumnName 関連項目 Columns 例 関連項目 ColumnWidth vi

7 目次 関連項目 CompressData 関連項目 DatabaseName 関連項目 DataLength 関連項目 DdfKeyUseIndexDDFOnly 関連項目 DdfPath マップされたドライブ URL (Uniform Resource Locator) UNC (Universal Naming Convention) 例 関連項目 DdfTransactionMode 関連項目 ExtendedOps 関連項目 FieldList 例 vii

8 目次 関連項目 Fields 関連項目 FieldValue 構文 例 関連項目 FileVersion FireEvents FocusSelText HostAddress 関連項目 HostConnect 関連項目 IncludeCurrent 関連項目 IndexList 例 関連項目 IndexNumber viii

9 目次 関連項目 IntegralHeight Join 構文 例 関連項目 KeyNumber 関連項目 List 構文 例 Location 例 関連項目 Locked 構文 MaxBufferSize 関連項目 MaxLength OemString ix

10 目次 OpenMode 関連項目 OwnerName 例 関連項目 PageSize 関連項目 Percentage 構文 例 関連項目 Port Position 例 関連項目 RefreshLocations 例 関連項目 Row 例 関連項目 RowPosition x

11 目次 関連項目 Rows 例 関連項目 SelectedFields 例 関連項目 SelectedRecords 構文 関連項目 SessionID 関連項目 Status 関連項目 TableName 例 関連項目 TimeOutVal TotalRecords 例 関連項目 Uppercase xi

12 目次 VAccessName VAAutoScroll VADataType VADebugMode VADecimal VAErrorDialog VAFieldName VAFormat 例 VALockBias VAOffset VAOperation xii

13 目次 VARecordList VASearch VASize VAValueFalse VAValueTrue ActiveX メソッドリファレンス AboutBox AddItem 構文 例 Btrv 構文 例 Clear 構文 例 Close xiii

14 目次 構文 例 DdfAddIndex 構文 戻り値 関連項目 DdfAddTable 構文 戻り値 例 関連項目 DdfAddTableName 構文 戻り値 例 関連項目 DdfClearFields 構文 戻り値 関連項目 DdfClearIndexes 構文 戻り値 関連項目 DdfCreateDictionary 構文 戻り値 関連項目 xiv

15 目次 DdfCreateTable 構文 戻り値 例 関連項目 DdfDropIndex 構文 戻り値 例 関連項目 DdfDropIndexMaintain 構文 戻り値 例 関連項目 DdfDropTable 構文 戻り値 関連項目 DdfGetFieldComments 構文 戻り値 例 関連項目 DdfModifyLocation 構文 戻り値 例 関連項目 DdfModifyTableName xv

16 目次 構文 戻り値 関連項目 DdfSetOwner 構文 例 DdfTestOwnerName 構文 戻り値 関連項目 Delete 構文 例 FormatFieldValue 構文 例 関連項目 GetDirect 構文 GetEqual 構文 例 GetFirst 構文 xvi

17 目次 例 GetGreater 構文 例 GetGreaterOrEqual 構文 例 GetLast 構文 例 GetLess 構文 GetLessOrEqual 構文 GetNext 構文 例 GetNextExtended 構文 例 GetPrevious 構文 xvii

18 目次 GetPreviousExtended 構文 GetTableList 構文 戻り値 例 関連項目 GetTotalSegments 構文 例 Init 構文 例 #1 - Automode = True 例 #2 - Automode = False Insert 構文 例 Open 構文 例 Refresh 構文 例 RemoveItem 構文 xviii

19 目次 RowColumnValue 構文 例 SetFileFlag 構文 例 SetOwner 構文 関連項目 ShowSelectedFieldsDlg 構文 例 ShowSelectedRecordsDlg 構文 例 Stat 構文 戻り値 StatusDialog 構文 例 StepFirst 構文 StepLast xix

20 目次 構文 StepNext 構文 StepNextExtended 構文 StepPrevious 構文 StepPreviousExtended 構文 Transaction 構文 例 Unlock 構文 Update 構文 例 ActiveX イベントリファレンス CommError 構文 xx

21 目次 Logon 構文 OnRemote 構文 関連項目 Reposition 構文 Validate 構文 xxi

22 目次 xxii

23 このマニュアルについて このマニュアルでは Pervasive PSQL 用 ActiveX コントロールを使用した Pervasive PSQL アプリケーション開発についてします xxiii

24 このマニュアルの読者 このマニュアルは Pervasive PSQL に精通し Pervasive PSQL 用 ActiveX コントロールを使用して Pervasive PSQL アプリケーションを開発するユーザーを対象としています xxiv

25 このマニュアルの構成 ActiveX Control's Guide は 以下のセクションに分かれています 第 1 章 ActiveX の概要 この章では Pervasive PSQL 用の ActiveX コントロールの概要を示し 新しい ActiveX バージョンの主な拡張機能についてします 第 2 章 ActiveX クイックスタート この章には Pervasive PSQL SDK と共にインストールされる ActiveX ファイルとその場所を示す表 および Pervasive PSQL 用 ActiveX コントロールを使用する基本的な作業についてのが含まれています ActiveX コントロールについてのほかの情報源の一覧も含まれています 第 3 章 ActiveX でのデータ辞書メソッドの使用 この章では DDF ファイルの作成 読み取りおよび変更で使用するメソッドについてします 第 4 章 ActiveX コントロールリファレンス この章では ActiveX をサポートするアプリケーションが Pervasive PSQL のデータにアクセスできるようにするカスタムコントロールについてします 第 5 章 カテゴリ別プロパティ メソッド およびイベント この章では Pervasive PSQL 用 ActiveX コントロールに固有のプロパティ メソッド およびイベントすべてを一覧にしてあります 第 6 章 ActiveX プロパティリファレンス この章では カスタムコントロールのプロパティについてします 第 7 章 ActiveX メソッドリファレンス この章では カスタムコントロールに適用されるメソッドのと構文についてします 第 8 章 ActiveX イベントリファレンス この章では カスタムコントロールに適用されるイベントについてします xxv

26 表記上の規則 特段の記述がない限り コマンド構文 コード およびコード例では 以下の表記が使用されます 大文字小文字の区別 太字 固定幅フォント 通常 コマンドと予約語は 大文字で表記されます Linux を使用しているか本書で別途記述がない限り これらの項目は大文字 小文字 あるいはその両方を使って入力できます たとえば MYPROG myprog または MYprog と入力することができます 太字で表示される単語には次のようなものがあります メニュー名 ダイアログボックス名 コマンド オプション ボタン ステートメントなど 固定幅フォントは コマンド構文など ユーザーが入力するテキストに使われます [ ] 省略可能な情報には [log_name] のように 角かっこが使用されます 角かっこで囲まれていない情報は必ず指定する必要があります 縦棒は [file name] のように 入力する情報の選択肢を表します <> <> は /D=<5 6 7> のように 必須項目に対する選択肢を表します 変数 file name のように斜体で表されている語は 適切な値に置き換える必要のある変数です... [parameter...] のように 情報の後に省略記号が続く場合は その情報を繰り返し使用できます ::= 記号 ::= は ある項目が別の項目用語で定義されていることを意味します たとえば a::=b は 項目 a が b で定義されていることを意味します xxvi

27 ActiveX の概要 1 この章では Pervasive の ActiveX アクセス方法についてします 以下の項目が含まれます ActiveX アクセス方法の概要 ActiveX アクセス方法の選択 ActiveX アクセス方法の主要な機能 ActiveX アクセス方法では使用できない Pervasive PSQL 機能 ActiveX コントロールを使用する最初の手順 1

28 ActiveX の概要 ActiveX アクセス方法の概要 Pervasive ActiveX のアクセス方法は ActiveX をサポートする開発環境で Btrieve データに簡単にアクセスできるようにする 9 個のカスタムコントロールから構成されています このインターフェイスには 1 個のデータソースコントロールと 8 個のバウンドデータコントロールが組み込まれています Pervasive PSQL データソースコントロールは アプリケーションと Btrieve データファイル間の接続点を提供します このデータコントロールはほかのデータアウェアコントロールのデータソースの役割を果たすほか ファイルのオープン クローズおよび作成や レコードの検索 更新および削除など アプリケーション内のコードからデータにアクセスする際に使用できるプロパティ メソッド イベントを公開します Pervasive PSQL バウンドコントロールはデータソースコントロールに接続する必要があるもので これらにはデータアウェアテキストボックス リストボックス コンボボックス チェックボックス オプションボタンの各コントロールが含まれています リストボックスコントロールとコンボボックスコントロールは フィールドバウンドコントロールまたは複数列レコードリストコントロールとして動作します コマンドボタンと水平および垂直スクロールバーコントロールで インデックスレコードのスクロール操作を行います Microsoft Visual Basic では Pervasive PSQL データソースコントロールは データアウェア Visual Basic コントロール用およびサードパーティデータアウェア ActiveX コントロール用のレコードソースの役割も果たすことができます ここでは 以下の項目についてします 開発環境 サードパーティデータバウンドコントロール ActiveX コントロールオブジェクト 開発環境 ActiveX のアクセス方法は以下の環境をサポートします Visual Basic 5.0 以降 Delphi 3.0 以降 Visual C 以降 Embarcadero C++ Builder 3.0 以降 メモほかの開発環境やアプリケーションの中には ActiveX コントロールの拡張機能もサポートするものがあります ただし Pervasive Software では 上に示したプログラミング環境 言語またはアプリケーション以外での ActiveX アクセス方法のテストは行っておりません サードパーティデータバウンドコントロール Pervasive の ActiveX アクセス方法は Sheridan APEX GreenTree および Microsoft のコントロールからデータをバインドできます Pervasive Software では Pervasive の ActiveX アクセス方法に書式設定機能やプレゼンテーション機能がないときだけこれらのサードパーティ製品を使用するようにお勧めしています Pervasive Software ではサードパーティソフトウェアの開発を制御することはできません したがって これらのコントロールの機能をすべてサポートするわけではありません 同じ理由から これらの製品のテクニカルサポートを行っておりません メモサードパーティデータアウェアコントロールへのデータバインドは Microsoft Visual Basic 以外の環境ではサポートされません 2

29 ActiveX アクセス方法の概要 ActiveX コントロールオブジェクト 以下の表に ActiveX アクセス方法に組み込まれている ActiveX コントロールオブジェクトを示します 表 1 組み込まれている ActiveX コントロールオブジェクトアイコンコントロール VAccess データソースコントロールはアプリケーションのソースコードを提供して Pervasive PSQL バウンドコントロールがデータファイルにアクセスできるようにします VACheckBox チェックボックスをブール (True/False) 型のフィールドにバインドできます VAComboBox VACommandButton データバウンドコンボボックスをレコード内の 1 つのフィールドにバインドすると そのフィールドの値を所定の値の中から選択できます このコンボボックスは レコードリストコントロールや使用可能なインデックスフィールドのリストとしても機能します データバウンドコマンドボタンでは レコードの取得 更新 または削除の操作を行えます VAHScrollBar データバウンドスクロールバーを使用すると インデックスパスに沿ってレコード内をスキャンできます VAVScrollBar VAListBox リストボックスコントロールを使用すると 所定の値セットの中からフィールドの値を選択できます このコントロールは 複数列のレコードリストコントロールとしても機能します VAOptionButton オプションボタンをブール (True/False) 型のフィールドにバインドできます VATextBox データアウェアテキストボックスでは あらゆるフィールドの変更を受け入れ 自動的に表示できます また このボックスを検索モードで使用すると テキストが入力されるにつれて ファイルから一致するレコードを捜し出すことができます 3

30 ActiveX の概要 ActiveX アクセス方法の選択 ActiveX は Microsoft の商標用語で Windows OLE ( オブジェクトのリンクと埋め込み ) カスタムコントロールを示します ActiveX は当初 Microsoft Visual Basic 言語の拡張機能として開発されたもので その後すぐに Microsoft のほかの言語製品や インターネットエクスプローラーなどのほかのアプリケーションへ導入されました ActiveX コントロールをサポートする言語またはプログラミング環境で Windows アプリケーションを作成する場合は 以下のような一般的には難しい エラーを起こしやすいデータアクセスの作業の多くを Pervasive ActiveX アクセス方法で処理できます ファイルの作成 (Create) および Extended オペレーションにおけるバッファーの設定と使用 データ変換およびフィールドレベルのアクセスの提供 ファイル間のインデックス付き結合の保守 Microsoft Visual Basic では これらのコントロールは Visual Basic のテキストボックスコントロールとリストボックスコントロール APEX および Sheridan のグリッドコントロール その他のデータアウェアオブジェクトのデータに対するシームレスなアクセスも実現します Visual Basic のほか Microsoft Visual C/C++ Embarcadero Delphi C++ Builder などの多数のプログラミング環境も ActiveX コントロールをサポートします ただし Microsoft Visual Basic データバインドは Visual Basic 以外ではサポートされません これらの言語で ActiveX アクセス方法を使用する予定であり アプリケーションがテキストボックス リストボックス グリッドなどのユーザーインターフェイスオブジェクトを必要とする場合は Pervasive PSQL SDK ActiveX アクセス方法に用意されている Pervasive データバウンドコンロールを使用するか アプリケーションコード内でこれらへのデータバインドを実装する必要があります ActiveX アクセス方法を利用するとき Pervasive ActiveX アクセス方法は SQL アクセスやデータベース抽象化よりデータベースのパフォーマンスが重要であるアプリケーションで ODBC インターフェイスの代替として使用できます このインターフェイスは同じ基本的なデータサービスの多くを提供しますが リレーショナル (SQL) でなくトランザクショナル (Btrieve) データモデルを使用します 4

31 ActiveX アクセス方法の主要な機能 ActiveX アクセス方法の主要な機能 Pervasive ActiveX アクセス方法には Pervasive PSQL でのアプリケーション開発を容易にする主要な機能が数多くあります VB 内のデータアウェアコントロールのデータソース Apex TrueGrid グリッドコントロールや Sheridan Data Widgets のようなサードパーティコントロールなど Visual Basic 内のほかのデータアウェアコントロールで Pervasive ActiveX アクセス方法をデータソースとして使用できます Pervasive バウンドコントロールは Visual Basic 環境やその他の開発環境で使用できます フィールドレベルアクセス ActiveX アクセス方法では データ辞書ファイル (DDF) を使用して Pervasive PSQL データにフィールドレベルでアクセスします フィールドは 名前または序数で参照できます LVAR 以外の Pervasive PSQL フィールドデータ型はすべてサポートされます プロパティおよびメソッドインターフェイス ActiveX アクセス方法は コントロールオブジェクトのほかに プログラミングの利便性と柔軟性を高めるための多数のプロパティとメソッドを提供します これらのプロパティとメソッドを使用すると 大量のコードを記述せずに多数の Pervasive PSQL オペレーションを設定および実行できます また Pervasive PSQL バウンドコントロール プログラミング環境またはその他のサードパーティコントロールとの対話処理を通じ コードによってデータを処理できます Extended オペレーション Pervasive の ActiveX アクセス方法は クライアント / サーバーレコードセットのキャッシュ フィールドの選択 レコードのフィルター処理などの機能を提供する Pervasive PSQL Extended オペレーションの使用を簡単にします Extended オペレーションには 集中管理されているデータベースに対して分散アプリケーションを実行する際のネットワークトラフィックを最小限にしてパフォーマンスを向上させ グリッドコントロールやレコードリストなどの複数行オブジェクトの実装を容易にする機能があります DDF ActiveX アクセス方法は ODBC インターフェイスと同様に DDF を必要とします DDF ファイルとデータベースにアクセスするには Pervasive PSQL Control Center を使用します Pervasive PSQL Control Center の詳細については Pervasive PSQL User's Guide または Pervasive PSQL Control Center のオンラインヘルプを参照してください ActiveX DDF アクセスメソッド データソースには アプリケーションコード内から DDF 情報にアクセスする手段があります リモートデータアクセス ActiveX アクセス方法を使用すると ワークステーションやクライアント / サーバーオプション以外にも URI を使って Pervasive PSQL データにアクセスできます 5

32 ActiveX の概要 結合テーブル VAccess コントロールの Join プロパティを使用すると 2 つのファイルをキー値でリンクし 第 1 のファイルのレコード位置の変更が 第 2 のファイルから検索されたレコードにも反映されるように指定することができます Join プロパティは リレーショナルデータベースを参照するための簡単な機能を提供します 6

33 ActiveX アクセス方法では使用できない Pervasive PSQL 機能 ActiveX アクセス方法では使用できない Pervasive PSQL 機能 以下の機能は Pervasive PSQL の一部ですが ActiveX アクセス方法ではサポートされません SQL 構文 ActiveX アクセス方法は Pervasive PSQL データベースにトランザクショナルインターフェイスを公開します このインターフェイスはリレーショナルモデルインターフェイスを公開せず SQL クエリ処理機能がありません チャンクオペレーション 非常に大きなレコード Pervasive ActiveX アクセス方法は Pervasive PSQL Chunk オペレーションプリミティブをサポートしません ActiveX アクセス方法でサポートされる最大レコードサイズは データ辞書の限界により決まります 固定レコード長の限界は 4 KB であり 固定長と可変長を組み合わせた最大長は 32 KB です 複数の ACS を使用するファイルの作成 ActiveX アクセス方法は 複数のオルタネートコレーティングシーケンス (ACS) を持つ新規テーブルを作成するインターフェイスを公開しません ただし ActiveX アクセス方法はこれらのインデックスを使用するテーブルでインデックスを正しく照合します データ型 次の Pervasive PSQL データ型は ActiveX アクセス方法ではサポートされません LONGVARCHAR LONGVARBINARY URI 構文 Pervasive ActiveX では HostAddress プロパティおよび DatabaseName プロパティを使って リモートマシンに接続するための URI を作成します ただし コードからすべての URI 構文パラメーターを指定することはできません データベースがセキュリティで保護されている場合は ActiveX コントロールは prompt=yes パラメーターを使用することにより ユーザーに資格情報を要求するよう トランザクショナルインターフェイスに指示します 7

34 ActiveX の概要 ActiveX コントロールを使用する最初の手順 ここでは Pervasive PSQL で処理をすばやく開始する方法を示します このセクションの作業を実行すれば Pervasive PSQL アプリケーションの開発を順調に進めることができるでしょう Pervasive PSQL Control Center を使用してデータベースを作成する Pervasive の Active X インターフェイスを開発ツールにインポートする (Visual Basic と Delphi の ) Pervasive PSQL Control Center を使用してデータベースを作成する Pervasive PSQL データベースを作成する最も簡単な方法は Pervasive PSQL Control Center を使用することです これは Windows の [ スタート ] メニューから開くことができます 既存の Btrieve ファイルにリレーショナル機能を追加するか 新しいデータベースを作成できます このデータベースは ほかのアプリケーションで Btrieve データにアクセスできるように標準データ辞書ファイル (DDF) を作成します Pervasive PSQL User's Guide にはデータベースの作成方法のチュートリアルが含まれており Advanced Operations Guide には既存の Btrieve ファイルに DDF を作成する方法のチュートリアルが含まれています Pervasive PSQL User's Guide には リレーショナル機能 (FILE.DDF INDEX.DDF および FIELD.DDF) による新しいデータベースの作成を順を追ってすばやく行えるようにするためのが記載されています Visual Basic と Delphi への ActiveX アクセス方法のインポート 以下の手順では ActiveX コントロールを IDE にインポートする方法を示します Visual Basic Visual Basic プロジェクトに ActiveX コントロールをインポートするには 1 メニューバーから [ プロジェクト ] を選択します 2 [ プロジェクト ] ドロップダウンメニューから [ コンポーネント ] を選択します 3 [ コンポーネント ] ダイアログボックスから [ コントロール ] タブを選択します 4 [Pervasive ActiveX Data Source] および [Pervasive Bound Controls] オプションを選択します 5 [OK] をクリックします 8

35 ActiveX コントロールを使用する最初の手順 Delphi ActiveX コントロールを Delphi へインポートするには 1 [ コンポーネント ] メニューから [ActiveX コントロールの取り込み ] を選択します [ActiveX の取り込み ] ダイアログボックスが表示されます 図 1 ActiveX の取り込みダイアログボックス (Delphi) 2 [Pervasive ActiveX Data Source] を選択した後 [ インストール ] をクリックします 3 次に バウンドコントロールをインポートする必要があります [ActiveX の取り込み ] ダイアログボックスで [Pervasive Bound Controls] を選択し [ インストール ] をクリックします これで青い ActiveX コントロールアイコンが Delphi コンポーネントパレット [ActiveX] ページに表示されます 9

36 ActiveX の概要 10

37 ActiveX クイックスタート 2 この章では Pervasive の ActiveX アクセス方法に付属するファイルの Pervasive PSQL ディレクトリ構造を示すほか コントロールを使用するアプリケーションの開発に関わる基本的作業手順についてします この章では 以下の項目についてします ActiveX で使用されるファイルとディレクトリ ActiveX アクセス方法を使用したアプリケーションの作成 主な作業のリストについては 上記のセクションを参照してください Pervasive PSQL ActiveX ファイルの配布と登録 ActiveX アクセス方法に関する追加情報 11

38 ActiveX クイックスタート ActiveX で使用されるファイルとディレクトリ Pervasive の ActiveX アクセス方法のファイルとディレクトリを表 2 に示します この表では Pervasive PSQL がデフォルトの場所にインストールされていることを前提としています Pervasive PSQL ファイルのデフォルトの保存場所については Getting Started with Pervasive PSQL の Pervasive PSQL ファイルはどこにインストールされますか? を参照してください アプリケーションの実装に必要なファイルについては Pervasive PSQL ActiveX ファイルの配布と登録 を参照してください 表 2 ActiveX アクセス方法ファイル ファイル場所 ACBTR732.OCX file_path\psql\bin\ Pervasive PSQL データソースコントロール ACCTR732.OCX file_path\psql\bin\ Pervasive PSQL バウンドコントロール *.DDF *.MKD C:\Documents and Settings\All Users\Application Data\Pervasive Software\PSQL\Demodata または C:\ProgramData\Pervasive Software\PSQL\ Demodata データ辞書ファイル (.DDF) と MicroKernel エンジンのテーブル (.MKD ファイル ) readme_activex.htm file_path\psql\docs リリースノート情報 PSQL.JAR file_path\psql\bin\ Pervasive Java アクセスライブラリ用 JAR ファイル 12

39 ActiveX アクセス方法を使用したアプリケーションの作成 ActiveX アクセス方法を使用したアプリケーションの作成 ここでは ActiveX アクセス方法を使用したアプリケーションの作成に関連する主な作業を行う方法についてします 作業項目は以下のとおりです プロジェクトへの ActiveX アクセス方法の追加 VAccess コントロールの使用 プロパティへのアクセス プロパティの設定 Pervasive PSQL ファイルへの接続 インデックスの選択 自動と手動のファイルオープンの設定 データソースへのバウンドコントロールのリンク レコードの取得 特定のレコードの検索 レコードの追加 更新および削除 レコードのロック ファイルの結合 Extended オペレーションの有効化 プロジェクトへの ActiveX アクセス方法の追加 Pervasive の ActiveX アクセス方法のデータソースとバウンドコントロールを Visual Basic プロジェクトに追加するには 1 [ プロジェクト ] メニューから [ コンポーネント ] を選択します ( または ツールボックスを右クリックし [ コンポーネント ] を選択します ) 2 コントロールリスト内をスクロールし [Pervasive ActiveX Data Source] と [Pervasive Bound Controls] チェックボックスを選択します 3 [OK] をクリックします ツールボックスに青色の Pervasive ActiveX アイコンが表示されます VAccess コントロールの使用 VAccess コントロールはデータをポイントするもので ほかすべての Pervasive PSQL コントロールがバインドするマスターコントロールです このコントロールは Pervasive PSQL とのすべての通信を処理します 13

40 ActiveX クイックスタート Visual Basic フォームにデータソースコントロールを追加するには 1 Pervasive PSQL ActiveX コントロールを含んでいる Visual Basic のツールボックスをクリックします 2 VAccess コントロールアイコンをクリックします 3 フォームにカーソルを置いてドラッグし コントロールを保持するための四角形を作成します マウスを離すと 四角形の中に ActiveX アクセス方法が表示されます このコントロールは 設計時にはアイコンとして表示されますが 実行時には表示されません また Pervasive PSQL の起動画面には Pervasive PSQL ワークステーションエンジンが起動されたことが表示されます 4 デフォルトでは フォームに配置する最初の VAccess コントロールには VAccess1 という名前が付きます 必要であれば Name プロパティに新しい名前を入力してこの名前を変更できます 次に この VAccess コントロールのプロパティを設定する必要があります プロパティへのアクセス プロパティの設定 および Pervasive PSQL ファイルへの接続 をお読みください プロパティへのアクセス コントロールのプロパティは次の 3 つの場所で設定できます プロパティページダイアログボックス Visual Basic のプロパティウィンドウ Visual Basic コードエディター プロパティページ コントロールを右クリックし ショートカットメニューから [ プロパティ ] を選択すると プロパティページが表示されます これは コントロールの Pervasive PSQL ActiveX プロパティを設定できるタブ付きのダイアログボックスです 詳細については 図 2 を参照してください 図 2 プロパティページダイアログボックス 14

41 ActiveX アクセス方法を使用したアプリケーションの作成 Visual Basic のプロパティウィンドウ Visual Basic のプロパティウィンドウには Visual Basic に固有のプロパティなど 選択したオブジェクトのすべてのプロパティセットが表示されます 図 3 を参照してください 図 3 VAccess プロパティを表示するプロパティウィンドウ Visual Basic コードエディター フォームまたはコントロールをダブルクリックすると Visual Basic のコードエディターが開きます コードエディターの使用方法については Visual Basic のマニュアルを参照してください 各プロパティの構文などの詳細については 本マニュアルを参照してください プロパティの設定 コントロールのプロパティを設定するには 1 プロパティを設定するコントロールを選択します 15

42 ActiveX クイックスタート 2 プロパティページ Visual Basic プロパティウィンドウまたはコードエディターで変更するプロパティを検索します プロパティへのアクセスについては プロパティへのアクセス を参照してください 3 追加または変更する各プロパティの値を設定するには テキストボックスにその値を入力するか フィールドをクリックしたときに表示されるドロップダウンリストから値を選択するか あるいは 値の設定が行えるダイアログボックスを呼び出す省略記号をクリックします メモプロパティには 設計時または実行時に設定できるものと 設計時または実行時にしか設定できないものがあります Pervasive PSQL ファイルへの接続 VAccess コントロールには このコントロールを Pervasive PSQL データファイルへ接続するための重要なプロパティとして DdfPath TableName および Location という 3 つのプロパティがあります これらのプロパティにアクセスする最も簡単な方法は コントロールを右クリックしてショートカットメニューから [ プロパティ ] を選択したときに表示されるプロパティページからアクセスする方法です プロパティウィンドウからも これらのプロパティにアクセスできます 図 4 データに接続するためのプロパティの設定 データに接続するための 3 つの重要なプロパティを以下に示します DdfPath - このプロパティは VAccess コントロールで使用する DDF ( データ辞書ファイル ) の位置を決定します プロパティには DDF が置かれている有効なドライブとパスが含まれていなければなりません TableName - このプロパティは DDF のどのテーブル ( データファイル ) が VAccess コントロールで使用されるかを決定します DdfPath で指定された DDF に含まれている有効なテーブル名に設定する必要があります ドロップダウンメニューからテーブル名を選択できます Location - このプロパティは どの Pervasive PSQL テーブルが VAccess コントロールで使用されるかを決定します FILE.DDF に含まれている Table Location に対応します このプロパティのデフォルトは TableName プロパティで指定されたテーブルの Table Location ですが 必要に応じてテーブルに代替パスを与えることができます データを指定するプロパティを設定するには 1 データに接続する VAccess コントロールを選択します 2 VAccess コントロールの DdfPath を設定します 16

43 ActiveX アクセス方法を使用したアプリケーションの作成 3 TableName プロパティのドロップダウンメニューからテーブル名を選択します このメニューには 手順 2 で指定した DDF で使用できるテーブル名が含まれています この VAccess コントロールにバインドするバウンドコントロールはすべて このテーブルを参照します 4 手順 3 でテーブル名を選択すると Location プロパティはそのテーブルを含んでいる.MKD ファイルに変更されます データへの接続を完了するには IndexNumber プロパティをアクセスしたいインデックスに設定します メモ実行時にコードからこれらのプロパティを設定しても 同じ順序が適用されます インデックスの選択 VAccess コントロールの IndexNumber プロパティは レコード取得メソッドを呼び出すときに VAccess コントロールで使用されるインデックスを決定します このインデックスは 設計時に VAccess コントロールのプロパティウィンドウで設定するか あるいは 実行時にコードで設定できます 設計時にインデックス番号を設定するにはプロパティウィンドウでは IndexNumber プロパティのドロップダウンリストから値を選択してプロパティを設定できます 次のように プロパティページから IndexNumber を設定することもできます 1 インデックス番号を設定する特定の VAccess コントロールを選択します 2 右クリックしてプロパティページダイアログボックスを開きます 3 VAccess1 プロパティページダイアログボックスの [Settings] タブをクリックし IndexNumber フィールドをクリックします 選択したテーブルに定義されているインデックスのリストが表示されます 4 インデックス 0 - ID を選択し [OK] をクリックします 図 5 に設定を示します 図 5 IndexNumber プロパティの設定 実行時にインデックス番号を設定する方法として コードによる方法と VAComboBox コントロールによる方法があります 17

44 ActiveX クイックスタート 実行時にコードによりインデックス番号を設定するには 1 インデックスを設定する VAccess コントロールをダブルクリックします コードエディターが呼び出されます 2 以下の例に倣って コードを入力します VAccess1.IndexNumber = 0 ' 最初のインデックスを選択 実行時にコンボボックスでインデックス番号を設定するには 1 フォームに VAComboBox を配置して選択します 2 VAccessName プロパティを VAccess コントロールの名前に設定し VAFieldName プロパティを [Index List] に設定します VAComboBox にはファイルからインデックスのリストが自動的に設定され このリストからの選択によって VAccess コントロールで使用されるインデックスが設定されます 自動と手動のファイルオープンの設定 VAccess コントロールは AutoOpen プロパティの設定状態に基づいて 2 つの方法のいずれかで Pervasive PSQL データファイルを開きます (AutoOpen は設計時のみのプロパティです ) AutoOpen が True に設定されている場合 VAccess コントロールは DdfPath TableName および Location プロパティの設定に基づいて 実行時にファイルがロードされるとき そのファイルを自動的に開きます コントロールは ファイルがアンロードされるときに自動的にファイルを閉じます AutoOpen が False に設定されている場合 コントロールは Open メソッドが呼び出されるまでファイルを開きません DdfPath TableName および Location プロパティはプロパティウィンドウで設定するほか Open の前にコードで設定できます したがって 同じ VAccess コントロールで異なる時間に異なるファイルを開いたり ファイルを選択するためにユーザー入力を受け入れることができます Close メソッドは 開いているデータファイルを閉じます 例 も参照してください AutoOpen プロパティを設定するにはプロパティウィンドウで AutoOpen プロパティを設定するには ドロップダウンリストから True または False を選択します 次のように プロパティページから AutoOpen を設定することもできます 1 コントロールを右クリックしてプロパティページを呼び出します 2 [Settings] タブをクリックします 3 AutoOpen チェックボックスを選択または選択解除します チェックボックスを選択すると AutoOpen が True に設定されます チェックボックスを選択解除すると AutoOpen が False に設定されます 例 この例は AutoOpen が False に設定されている場合に ファイルを閉じ 別のファイルを開く方法を示したものです ' 現在開いているファイルを閉じる VAccess1.Close ' データ辞書情報を設定する VAccess1.DdfPath = "file_path\psql\demodata\" VAccess1.TableName = "Student" ' ファイルを開く VAccess1.Open 18

45 ActiveX アクセス方法を使用したアプリケーションの作成 データソースへのバウンドコントロールのリンク VAccess コントロールをフォームに追加してプロパティを設定した後 必要なバウンドコントロールを追加し この VAccess コントロールにバインドすることができます これにより それらのバウンドコントロールは VAccess コントロールが指定するデータにリンクされます 特定のバウンドコントロールについては ActiveX コントロールリファレンス を参照してください 8 個ある Pervasive バウンドコントロールのどれかをデータにリンクするには 1 バウンドコントロールの VAccessName プロパティを 既にデータをポイントしている VAccess データソースコントロールの名前に設定します 2 VATextBox や VAOptionButton などのフィールドバウンドコントロールの場合は VAFieldName プロパティをデータソースコントロール内のフィールドのうちの 1 つの名前に設定する必要もあります レコードの取得 以下の 3 つの方法でレコードを取得できます VAHScrollBar または VAVScrollBar による方法 VACommandButton による方法 コードによる方法 スクロールバーでレコードを取得するには 1 VAHScrollBar または VAVScrollBar をフォームに追加して選択します 2 VAccessName プロパティを使用する VAccess コントロールに設定します コマンドボタンでレコードを取得するには 1 フォームに VACommandButton を追加して選択します 2 VAccessName プロパティを使用する VAccess コントロールの名前に設定し VAOperation プロパティを希望の取得オペレーションに設定します 使用可能な Pervasive PSQL オペレーションのリストについては VAOperation を参照してください コードでレコードを取得するには 表 3 のメソッドのうちの 1 つを使用します Get メソッドは IndexNumber プロパティで指定されたインデックスを使用します Step メソッドはインデックスを使用しません 表 3 個々のレコードを取得するためのメソッド GetDirect GetLast StepFirst GetEqual GetLess StepLast GetFirst GetLessOrEqual StepNext GetGreater GetNext StepPrevious GetGreaterOrEqual GetPrevious 例 ' 人の名前を表示 ' データ辞書情報を設定 'VAccess1.DdfPath = "file_path\psql\demodata\" 'VAccess1.TableName = "Person" 19

46 ActiveX クイックスタート 'VAccess1.IndexNumber = 1 (Last_Name + 'First_Name) Stat = VAccess1.GetFirst While Stat = 0 List1.AddItem VAccess1.FieldValue("Last_Name") _ & " " & VAccess1.FieldValue("First_Name") Stat = VAccess1.GetNext Wend 特定のレコードの検索 以下の 2 つの方法で特定のレコードを検索できます バウンドコントロールによる方法 コードによる方法 テキストボックスで特定のレコードを検索するには 1 フォームに VATextBox を配置します 2 VATextBox の VASearch プロパティを True に設定します これにより テキストボックスにテキストが入力されると 一致するレコードを取得するために VAccess コントロールで GetGreaterOrEqual メソッドが実行されるようになります コードで特定のレコードを取得するには 1 VAccess コントロールをダブルクリックします 2 IndexNumber プロパティを設定して適切なインデックスを選択します 3 FieldValue メソッドを使用して 検索する値をインデックスフィールドに設定します 複数のフィールドを使用するインデックスの場合は 必ず各フィールドに値を代入してください 4 次に 表 4 のメソッドのうちの 1 つを実行して目的のレコードを取得します 表 4 特定のレコードを取得するためのメソッド GetEqual GetGreater GetGreaterOrEqual GetLess GetLessOrEqual キーと一致する最初のレコードを返します キーより後の次のレコードを返します キーレコード またはキーより後のレコードを返します キーより前のレコードを返します キーレコード またはキーより前のレコードを返します 5 IndexNumber プロパティが 検索が行われるフィールドに対応するインデックスに設定されていることを確認してください 例 ' キーフィールドに検索値を入力 VAccess1.FieldValue("last_name") = "Reich" VAccess1.FieldValue("first_name") = "Steve" ' 正しいインデックス番号を設定してレコードを取得 VAccess1.IndexNumber = 1 stat = VAccess1.GetEqual If stat = 0 Then MsgBox " レコードが見つかりました " Else 20

47 ActiveX アクセス方法を使用したアプリケーションの作成 MsgBox " ファイルには該当するレコードがありません " End If レコードの追加 更新および削除 レコードを追加 更新または削除する方法として 以下の 2 つの方法があります VACommandButton による方法 コードによる方法 コマンドボタンでレコードを追加 更新または削除するには 1 フォームに VACommandButton を配置します 2 VAccessName プロパティを対応する VAccess コントロールの名前に設定します 3 VAOperation プロパティを希望のオペレーションに設定します 可能なオペレーションのリストについては 本書の プロパティリファレンス の VAOperation プロパティを参照してください コードでレコードを追加 更新または削除するには以下の VAccess コントロール用カスタムメソッドの 1 つを使用し コードからデータベースへの書き込みを行います 表 5 レコードを追加 更新および削除するためのカスタムメソッド Delete Insert Update 現在のレコードを削除します メモリ内のレコードを新しいレコードとして挿入します 現在のレコードをメモリ内のレコードで更新します 例 ' 指定された学生の専攻科目を変更 VAccess1.TableName = "Student" VAccess1.IndexNumber = 1 VAccess1.FieldValue (ID) = stat = GetEqual If stat = 0 VAccess1.FieldValue ("Major") = "Music" VAccess1.Update End If レコードのロック Pervasive PSQL には Pervasive の ActiveX アクセス方法でサポートされる次の 2 種類のロックがあります 単一レコードノーウェイトロックと複数レコードノーウェイトロックです Pervasive の ActiveX アクセス方法でこれらのロックを適用するには 以下のアプローチのうちの 1 つを使用します VACommandButton を使用してレコードの取得とロックを行う場合は VALockBias プロパティを設定します Get または Step メソッドを呼び出すときは オプションパラメーターとして対応するロックバイアス ( 単一レコードの場合は 200 複数レコードの場合は 400) を含めます レコードをロック解除するには Unlock メソッドを使用します 21

48 ActiveX クイックスタート レコードロックと並行制御の詳細は Pervasive PSQL Programmer's Guide で データの整合性 を参照してください 例 ' レコードをロックし 学生の名前を変更して レコードを更新する Const SINGLE_NOWAIT_LOCK = 200 Const MULTIPLE_NOWAIT_LOCK = 400 VAccess1.FieldValue("ID") = "<valid #>" ' ロックバイアス付きのロックをかけてレコードを取得 stat = VAccess1.GetEqual SINGLE_NOWAIT_LOCK ' 学生の名前を変更してレコードを更新 ' レコードの更新によりロックが解除される If stat = 0 VAccess1.FieldValue("Major") = "Astronomy" VAccess1.Update End If ファイルの結合 VAccess コントロールの Join プロパティを使用すると 2 つのファイルをキー値でリンクし 第 1 ファイルのレコード位置におけるあらゆる変更が 第 2 ファイルから取得されるレコードにも反映されるようにすることができます Join プロパティは リレーショナルデータベースを参照するための簡単なメカニズムを提供します スレーブコントロール内の結合フィールドはインデックスフィールドである必要があり また マスターコントロール内の対応するフィールドと同じ未加工データが含まれていなければなりません マスターコントロール内のフィールドは インデックスである必要はありません スレーブコントロールの IndexNumber プロパティは 結合に関係するインデックスに設定されたままにしておく必要があります そうしないと 結合が断たれます 1 対 1 多対 1 1 対多 多対多の結合はすべてサポートされます VAListBox の VAccessName プロパティをスレーブコントロールの名前に設定し VAFieldName プロパティを表示されるフィールドに設定することによって データをレコードリストモードで表示できます 2 つの VAccess コントロールを結合するには 1 スレーブコントロールとする VAccess コントロールを選択します 2 プロパティウィンドウで [Join] ボタンをクリックして [Join Controls] ダイアログボックスを開きます ダイアログボックスの左側には 結合元のスレーブコントロールのテーブルとそのテーブルの選択したインデックスが表示されます 右側には 結合先のマスターコントロールとそのコントロールで使用できるフィールドが表示されます 3 マスターコントロールをスレーブコントロールのテーブルに結合するには マスターコントロールのフィールドをクリックします そうすると Equals 列の下にフィールドが表示され そのフィールドが結合されていることを示します Extended オペレーションの有効化 Extended オペレーションを使用すると 複数のレコードに対するリクエストの処理を Pervasive PSQL トランザクショナルインターフェイスにさせることが可能になります ネットワークサーバーベースの Pervasive PSQL システムでは Extended オペレーションによってネットワークトラフィックを大幅に削減し データ取得を高速化することができます Extended オペレーションは 複数のレコードを一度に読み取る際に最も有効です たとえば 統計データを収集して表に記入するためにファイルをスキャンしたり 表 レポートまたはグリッドを作成するために多数のレコードを一度に要求したり 必要なレコードを照合するための適切なインデックスを持たないデータベースに対する一度限りの検索を実行するのに適しています Extended オペレーションは個々のレコードにアクセスするためのインデックス付きレコード取得に代わるものではなく データセットを高速に取得するための強力なツールになります 22

49 ActiveX アクセス方法を使用したアプリケーションの作成 Extended オペレーションを使用可能にするには 1 Extended オペレーションで使用する VAccess コントロールを選択します 2 プロパティウィンドウを使用している場合は ExtendedOps プロパティを True に設定します プロパティページを使用している場合は [Extended Operations] タブをクリックし [ExtendedOps] チェックボックスをオンにして [OK] をクリックします Pervasive の ActiveX アクセス方法は 以下の Extended Fetch メソッドをサポートします Get Next Extended は 現在のキーの論理位置より後続のレコードのうち 指定されたフィルター条件を満たすレコードを取得します Get Previous Extended は 現在のキーの論理位置より前にあるレコードのうち 指定されたフィルター条件を満たすレコードを取得します Step Next Extended は ファイル内における物理位置より後続のレコードのうち 指定されたフィルター条件を満たすレコードを取得します Step Previous Extended は ファイル内における物理位置より前にあるレコードのうち 指定されたフィルター条件を満たすレコードを取得します Init メソッドの使用 Init メソッドは SelectedFields または SelectedRecords プロパティを変更した後 あるいは 単一レコードのフェッチメソッドを使ってファイル内の現在のカーソル位置を再設定してから Extended Fetch メソッドを呼び出すまでの間に使用します AutoMode プロパティによるデータ スナップショット の構築 AutoMode を有効にすると VAccess データソースは選択基準を満たす行が取得されるときにそれらをすべてメモリにキャッシュして データの スナップショット を構築できるようにします Row プロパティを使用して返されたレコードセットを走査したり RowColumnValue メソッドを使用してレコードセット内の任意の行と列における値を取得することができます AutoMode を使用するには 1 VAccess コントロールの ExtendedOps と AutoMode プロパティを True に設定して Extended オペレーションを使用可能にし コントロールをオートモードに切り替えます 2 取得するレコードセットを指定するために コントロールの SelectedFields と SelectedRecords プロパティを設定します 3 取得オペレーションごとに取得する最大レコード数を CacheRows プロパティに設定します 4 ユーザーがスキャンを終了する前にスキャンを取り消せるようにする場合は CancelDialog プロパティを True に設定します AutoMode は環境によっては Extended オペレーションを使いやすくしますが 使用可能メモリの制限を受けます AutoMode を無効 ( デフォルト ) にして 明示的な Extended Fetch メソッドの GetNextExtended GetPreviousExtended StepNextExtended または StepPreviousExtended を使用すれば 考慮したブロックでデータセットを返すことができます Extended Fetch メソッドの使用 Extended Fetch メソッドの GetNextExtended GetPreviousExtended StepNextExtended および StepPreviousExtended はファイル内の現在のカーソルの位置から始まり 指定された選択基準を満たす一連の行 ( レコード ) と列 ( フィールド ) を返します Get メソッドは 現在のインデックスを使用してインデックス順にレコードを返します Step メソッドは 物理位置の順序で並べられたレコードを返します Step メソッドは一般にほかのメソッドより高速なので 返されるレコードの順序が重要でない場合に使用してください 23

50 ActiveX クイックスタート 特定の Extended Fetch オペレーションから返される最大レコード数の設定には いくつかのプロパティが関与します 単一の Extended Fetch オペレーションから返されるデータの総量は MaxBufferSize プロパティで指定するデータ通信バッファーのサイズによって制限されます このバッファーは最大 64 KB ですが Pervasive PSQL MicroKernel データベースエンジンの設定によってはこれより小さくなります このプロパティに大きすぎる値を指定すると ステータスコード 97 データバッファーが小さすぎます が返されます SelectedFields プロパティは個々のデータ行のサイズを決定しますが このサイズは選択されたフィールドの記憶域の長さの合計に 6 バイトを加えた長さです CacheRows パラメーターは 一度に取得する最大行数を指定します Extended Fetch メソッドは CacheRows の値か 行のサイズと MaxBufferSize に基づいた計算値のいずれか小さい値を使用します CacheRows がゼロであれば 計算値が使用されます SelectedRecords プロパティを使用すると ある基準を満たすレコードだけを取得できます このプロパティは CacheRejectMax プロパティと結び付いて機能し 検索条件に合わないレコードをスキップします CacheRejectMax プロパティに値を指定しないと Pervasive PSQL はシステムで定義された値を使用します 次の 2 つの条件のうちの 1 つが満たされると レコードセットが返されます つまり 選択基準を満たす行数が CacheRows プロパティの値に等しくなるか あるいは 最後の一致を検出して以降にスキャンされたレコード数が CacheRejectMax プロパティの値を超えるという条件です Status プロパティは いずれの条件が満たされたかを示します Rows プロパティは Extended Fetch オペレーションから返された行数を示します Extended Fetch の後には必ず このプロパティの値をチェックしてください オペレーションがゼロ以外のステータス ( ファイルの終わりなど ) を返しても 有効なデータを返す可能性があるからです Columns プロパティは SelectedFields プロパティで指定されたフィールド数に対応するか レコード選択基準を指定しなかった場合は ファイルに定義されているフィールド数に対応します RowColumnValue メソッドは Extended Fetch レコードセット内の指定された行および列の位置にあるフィールド値を取得します Extended Fetch オペレーション後の現在のカーソル位置は オペレーションでスキャンされた最後のレコードに対応します このカーソル位置は レコード選択基準が指定されているアプリケーションでは不確定です なぜなら この位置は実際に取得された最後の行を超えている可能性があるからです IncludeCurrent プロパティの設定によって 次の Extended Fetch オペレーションが現在のカーソル位置のレコードをスキャンするか 後続のレコードから開始するかが決まります ほとんどの場合 このプロパティを設定する必要はありません このプロパティは自動的に Init メソッドで True に設定され Extended Fetch の後に False に設定されます それ以降の Extended Fetch オペレーションで現在のカーソル位置のレコードを取り込むには オペレーションの直前にこのプロパティに True を設定します 結合ファイルに対する ExtendedOps の使用 ExtendedOps プロパティは 典型的な 品目を注文するための注文ヘッダーレコード などに見られるような 1 対多関係の VAccess データコントロールの結合を高速化かつ単純化することができます 結合されたデータソース ( この例では Orderlines コントロール ) に対して Extended オペレーションを有効にすると 適応するクエリが自動作成され コントロールは Extended オペレーションを使って結合 (Join) を実行し 結合基準に合致する結合ファイルから すべてのレコードを Extended Fetch のレコードセットとして返します Extended Fetch の最適化 Extended Fetch オペレーションを最も効率よく使用するには まず 検索条件に合う最初のレコードのできるだけ近くにカーソルを置きます 多くの場合 まず GetEqual または GetGreaterOrEqual メソッドをインデックスと併用して Pervasive PSQL が必要なレコードを返すためにスキャンしなければならないレコードの範囲を制限し 初期位置を確立してから 次に GetNextExtended を使用して後続のレコードを取得できます 24

51 ActiveX アクセス方法を使用したアプリケーションの作成 CacheRejectMax プロパティは SelectedRecords の基準で現在のインデックス上のレコードが制限される場合に有効です たとえば CacheRejectMax プロパティの値を 1 に設定すると Pervasive PSQL サーバープロセスに対し 基準に合わない最初のレコードを見つけたら停止するよう指示することができます ファイル全体をスキャンする必要があってもレコードの順序が重要でない場合は StepFirst メソッドでファイルの先頭にカーソルを置き StepNextExtended メソッドでファイルをスキャンすることによって 時間をある程度節約できます Step メソッドの方が一般に高速なのは インデックスパスに沿ってレコードを照合する必要がないからです SelectedFields プロパティに入手したいフィールドのみを指定することによっても 時間とリソースを節約できます Extended Fetch オペレーションの制限要因はデータバッファーのサイズなので 各行に必要なメモリが少ないほど 一度に返せる行が多くなります ここで Extended オペレーションは別のタスク 一般には Pervasive PSQL サーバープロセスで実行されるため アプリケーションは拡張クエリを実行するとすぐにプロセスの制御を放棄し クエリ条件が満たされるまでもう 1 つのプロセスが制御を引き受けるということに留意してください したがって 拡張クエリを計画し最適化すれば アプリケーションのパフォーマンスに大きな差が出てくる可能性があります 例 ' 奨学金を受けているすべての学生の ID を出力 Q = Chr$(34) ' Student ID はインデックスなので レコードの並べ替えに使用できます ' しかし 選択条件にはインデックスがありません したがって データベース全体を ' スキャンする必要があります 効率を上げるため Extended オペレーションを使用します VAccess1.ExtendedOps = True ' レコード選択条件を指定することにより Pervasive PSQL がサーバーで ' レコードにフィルターをかけるようにできます VAccess1.SelectedRecords = "Scholarship_Amount > " & Q & "0" & Q ' 必要なのは金額と Student ID だけなので ' この情報を返すだけで 一度により多くのレコードを取得することができます VAccess1.SelectedFields = "ID,Scholarship_Amount" ' データの並べ替えは不要なので Step オペレーションを使用します ' Step オペレーションは物理位置に基づいているので ' データベースを最も速く読むことができます VAccess1.StepFirst VAccess1.Init Do Stat = VAccess1.StepNextExtended ' 注意 : Extended フェッチは ファイルの終わり (9) のようなステータス値を ' 返しても有効なデータを返すことがあります For R = 1 to VAccess1.Rows List1.AddItem VAccess1.RowColumnValue(R, 1) & Chr$(9) & _ Format(VAccess1.RowColumnValue(R, 2), "Currency") Next R Loop While Stat = 0 25

52 ActiveX クイックスタート Pervasive PSQL ActiveX ファイルの配布と登録 Pervasive PSQL アプリケーションの配布については Pervasive PSQL Programmer's Guide の Pervasive PSQL アプリケーションの配布 を参照してください 次の表に Pervasive の ActiveX アクセス方法を使って構築されたアプリケーションの実行に必要なファイルを示します 表 6 再配布可能なファイル ファイル場所 ACBTR732.OCX file_path\psql\bin\ Pervasive PSQL データソースコント ロール ACCTR732.OCX file_path\psql\bin\ Pervasive PSQL バウンドコントロール PEDTCONV.DLL file_path\psql\bin\ データ変換用 DLL PBTRVD32.DLL file_path\psql\bin\ メタデータ処理用 DLL Pervasive PSQL ファイルのデフォルトの保存場所については Getting Started with Pervasive PSQL の Pervasive PSQL ファイルはどこにインストールされますか? を参照してください Pervasive PSQL ActiveX ファイルと必要な DLL を配布した場合 ActiveX ファイルが正しく機能するように ActiveX ファイルを登録する必要があります これらのファイルを登録するには次の 2 種類の方法があります InstallShield などの現行のインストール用ユーティリティの多くは インストール処理中に ActiveX コントロールを自動的に登録するよう変更することができます ( 詳細については お使いになる特定のインストール用ユーティリティのマニュアルを参照してください ) ActiveX コントロールを登録するもう 1 つの方法は 再配布可能なファイル REGSVR32.EXE をインストールし インストール中またはインストール後に実行する方法です これは単純な ActiveX 登録用ユーティリティで 登録する ActiveX の名前をコマンドラインパラメーターとして受け取ります ( たとえば REGSVR32 C:\ MyInstall\ACBTR732.OCX) 26

53 ActiveX アクセス方法に関する追加情報 ActiveX アクセス方法に関する追加情報 このマニュアルのほかにも ActiveX アプリケーションの開発に役立つリソースがあります これらの項目は以下のとおりです Status Codes and Messages - このマニュアルでは Pervasive PSQL のコンポーネントを使用しているときに発生する可能性のある各ステータスコードとメッセージについてしています 27

54 ActiveX クイックスタート 28

55 ActiveX でのデータ辞書メソッドの使用 3 この章では 以下の項目についてします ActiveX データソースコントロールによる DDF の処理 ファイルの内容とメモリイメージ 辞書ファイルの読み取り 辞書ファイルの変更 テーブル定義の作成 辞書の作成 データファイルの変更 その他の DDF 操作 29

56 ActiveX でのデータ辞書メソッドの使用 ActiveX データソースコントロールによる DDF の処理 データ辞書ファイル (DDF) は Pervasive PSQL データに対する列レベルのアクセスを行うために Pervasive PSQL アプリケーションや多数のサードパーティアプリケーションで使用されます ActiveX アクセス方法は Pervasive PSQL 開発者が DDF の作成 読み取りおよび変更を容易に行えるようにする多数のメソッドを提供します 辞書ファイル処理のほとんどで コントロールへの新しいメソッドの追加が必要です ただし 旧バージョンの ActiveX データソースコントロールはデータ辞書を認識したため 既存のプロパティとメソッドの動作にいくつかの変更が加えられました 旧バージョンとの互換性は保たれていますが RefreshLocations などのように拡張されたプロパティがある一方 FieldInde や FieldName などのように使用が推奨されなくなったものもあります 30

57 ファイルの内容とメモリイメージ ファイルの内容とメモリイメージ ActiveX データソースコントロールは DDF から情報を読み取り 必要に応じて内容をキャッシュに格納します つまり 辞書には DDF 自体の内容と DDF ファイルに関する ActiveX アクセス方法コントロールのメモリイメージの内容という 2 つのバージョンが常に存在します ActiveX コントロールのバージョン 3 では コントロールが DDF 情報を DDF 自体から読み取るか または 保持しているメモリイメージから読み取り アプリケーションの起動時間を節約するかを RefreshLocations プロパティが決定していました この機能は維持されていますが RefreshLocations の意味は オペレーションを実行するために DDF 自体を使用するか あるいは辞書情報に関する ActiveX コントロールのメモリイメージを使用するかを示すように拡張されました 言い換えると オペレーションがコントロールのメモリイメージまたは DDF を参照できる場合は RefreshLocations を False に設定すれば コントロールはメモリイメージのみを使ってオペレーションを処理するように制限されます RefreshLocations が True である場合 オペレーションはメモリイメージとファイル自体に作用します したがって RefreshLocations は ActiveX コントロールの DDF 処理用メソッドとプロパティの多くに作用する優先プロパティです メモ RefreshLocations を True に設定して DDF を編集するときは DDF を上書きしないように注意してください 31

58 ActiveX でのデータ辞書メソッドの使用 辞書ファイルの読み取り 以前のバージョンの ActiveX アクセス方法は DDF に含まれる情報の大部分を公開していましたが 特定の情報を取り出すのが非常に困難であったり ときには不可能なことがありました また 項目ごとに複数のプロパティ設定が必要だったので 情報の複数の項目を検索することは面倒でした 本バージョンの ActiveX アクセス方法では これらの問題の解決にバリアント配列を使用しました バリアントとは 複数のデータ型を表すことができ かつどのデータ型を現在表しているかがわかる変数の一種です ActiveX アクセス方法コンテナーはバリアントをサポートします バリアント配列はバリアントの一種で 実質的にはバリアントのリストへの参照であり リストの各項目に異なる型の情報を保持できるものです この配列は コード環境によって異なる方法で表されます Visual Basic では バリアント配列は myarray (1, 1) のような単なる通常の配列として表示されます しかし Visual C++ では バリアント配列は VT_ARRAY VT_VARIANT 型のバリアントにすぎず "SafeArray" システム API を使用して配列の内容を処理する必要があります 既に述べたように ActiveX アクセス方法はバリアント配列を使用してコア DDF 情報を公開します ActiveX インターフェイスが使用する配列は 1 次元として列 2 次元として行を持つ 2 次元配列です この配列では Visual Basic ユーザーは ReDim Preserve 関数を使用して行数を変更することができます 列は要求された情報のさまざまな面を表すのに対して 行は項目の集合を表します たとえば GetTableList は 2 次元配列を返します 1 次元は 3 つの情報 つまり TableID TableName および TableLocation から構成されているのに対して 2 次元は辞書内のテーブルごとに 1 行を含んでいます したがって Visual Basic におけるテーブル名のリストの取得は以下のように行われます リストボックスに現在の辞書内のテーブル名を設定するには Dim tablelist as Variant Dim tablecount as integer ' すべての情報をファイル自体から読み込むことを確認する VAccess1.RefreshLocations = True 'DdfPath を設定 - これにより辞書を開く VAccess1.DdfPath = "c:\mydata" ' バリアント配列を取得 tablelist = VAccess1.GetTableList ' リストボックスに名前を入力 - 配列の上限に達するまでループ For tablecount = 0 to UBound(tableList, 2) ' リストボックスに配列の正しいメンバーを追加 List1.AddItem tablelist(1, tablecount) Next tablecount FieldList と IndexList は ほとんど同じ機能を果たします ただし これらはプロパティであるため 配列のエントリを変更したり エントリを追加することができます 各配列の 1 次元の構造については FieldList と IndexList を参照してください 言うまでもなく 各配列の 2 次元はフィールド数またはインデックス数を表します 32

59 辞書ファイルの変更 辞書ファイルの変更 ActiveX メモリイメージでのファイルの変更は DDF の新しい定義を追加または変更してコミットする最初の段階として また 間違った DDF の情報を修正する場合において有用です 必要とされる変更のほとんどは FieldList プロパティおよび IndexList プロパティを使用して行うことができます DDF を変更する場合は すべての変更がコミットできる状態になるまで ActiveX メモリイメージに変更情報を保管しておき その後 DdfAddTable を使用してファイルに変更情報をコミットする方が効率的です したがって FieldList または IndexList を設定するときは RefreshLocations を False に設定することをお勧めします Visual Basic では ReDim 関数で Preserve オプションを使用すれば 既存の定義にフィールドを追加することができます また DdfModifyTableName と DdfModifyLocation を使用して 現在のメモリイメージまたは DDF ファイル自体に含まれるテーブルを変更することもできます たとえば 次のようにします 既存のテーブル定義にフィールドを追加するには Option Base 0 Dim fields as Variant 'DDF から直接現在の情報を取得 VAccess1.RefreshLocations = True 'VAccess を正しい DDF とテーブルに設定 VAccess1.DdfPath = "c:\mydata" VAccess1.TableName = "TableShortAField" ' フィールドリストを取得 fields = VAccess1.FieldList ' 配列の次元の変更およびフィールドの追加 ReDim Preserve fields(7, UBound(fields, 2) + 1) ' これで 前と同じ配列の最後に空のフィールドが追加されました ' 空のフィールドを定義 fields(1, UBound(fields, 2)) = "NewComment" fields(2, UBound(fields, 2)) = 0 ' 文字列 fields(3, UBound(fields, 2)) = VAccess1.DataLength fields(4, UBound(fields, 2)) = 20 '20 バイトの文字列 fields(7, UBound(fields, 2)) = "This is a new comment" ' この変更をまだファイルに書き込まない VAccess1.RefreshLocations = False ' 空のフィールドを ActiveX メモリイメージに保存 VAccess1.FieldList = fields... < そのほかの DDF 処理 >... ' さて テーブルは希望どおりに設定されました ' テーブルの名前を変更しましょう DdfModifyTableName "TableWithAllFields" ' 次の操作を DDF に直接作用させるため RefreshLocations を設定してもかまいませんが 'DdfAddTable はメモリイメージではなく DDF にのみ作用するため 'RefreshLocations は無視されます ( リファレンスの DdfAddTable を参照 ) ' テーブルをファイルに保存 - 既存の定義を上書き DdfAddTable True 33

60 ActiveX でのデータ辞書メソッドの使用 メモ上記の例で示した変更は DDF のみに作用します この追加フィールドの領域がテーブル自体になければ フィールドはファイル自体に存在しません データファイルの構造の変更については 以下のセクションを参照してください 34

61 テーブル定義の作成 テーブル定義の作成 ActiveX アクセス方法のメモリイメージ ( および DDF) でテーブルを作成することは データファイルに関連付けられた DDF エントリがない場合や 新しいテーブルを作成する場合に有用です このプロセスには 以下の 3 つの基本的な手順があります 1 ActiveX アクセス方法のメモリイメージで空のテーブルを作成します 2 ActiveX アクセス方法のメモリイメージに適切なテーブル情報 フィールド情報 およびインデックス情報を設定します 3 新しいテーブルを DDF に保存します 新しいテーブルを作成する場合は この後に第 4 の手順 つまり データファイルの作成を行います メモ同じディレクトリに ファイル名が同一で拡張子のみが異なるようなファイルを置かないでください たとえば 同じディレクトリ内のデータファイルの 1 つに Invoice.btr もう 1 つに Invoice.mkd という名前を付けてはいけません このような制限が設けられているのは データベースエンジンがさまざまな機能でファイル名のみを使用し ファイルの拡張子を無視するためです ファイルの識別にはファイル名のみが使用されるため ファイルの拡張子だけが異なるファイルは データベースエンジンでは同一のものであると認識されます 空のテーブルを作成するとき ActiveX アクセス方法は現在のメモリイメージに作業テーブルがなく すべてのフィールドおよびインデックス情報が消去されていることを認識できる必要があります DdfAddTableName がこの機能を果たします 現在のテーブルメモリイメージを DDF に追加する DdfAddTable や 現在のテーブル名を変更しても他のすべての情報を保つ DdfModifyTableName と違い DdfAddTableName は現在のテーブルリストに追加スロットを作成し 空のテーブルに関連するすべてのフィールドおよびインデックス情報を消去します この作業を行うときは DDF に空のテーブルを作らないよう RefreshLocations を False に設定することをお勧めします DdfModifyLocation FieldList および IndexList オペレーションを使用して 新しい空のメモリイメージを作成することができます 次に DdfAddTable を使用して DDF にそのイメージを書き出すことができます 辞書に新しいテーブルを追加するには Option Base 0 'DDF から直接現在の情報を取得 VAccess1.RefreshLocations = True 'VAccess を正しい DDF に設定 VAccess1.DdfPath = "c:\mydata" ' テーブル設定中はメモリイメージでのみ作業する VAccess1.RefreshLocations = False ' 現在のメモリイメージに新しいテーブルスロットを作成 VAccess1.DdfAddTableName "NewTable" ' 場所を設定 VAccess1.DdfModifyLocation "newtable.mkd"... < フィールドとインデックス情報を設定 >... 35

62 ActiveX でのデータ辞書メソッドの使用 ' テーブルをファイルに保存 - 既存の定義を上書きしない ' この定義はまだ存在しないはずであるため DdfAddTable False メモ DdfDropTable への 1 回の呼び出しで テーブル定義全体を削除することができます 当然のことながら このオペレーションは決定的な事態を引き起こすため 注意して使用する必要があります 36

63 辞書の作成 辞書の作成 アプリケーションで辞書自体を作成しなければならない場合があります たとえば アプリケーションが初めて実行されたときに必要な DDF を作成するようにアプリケーションを書いて ベンダーがアプリケーションと一緒に DDF を出荷および更新しなくて済むようにすることができます このタスクを行うメソッドとして DdfCreateDictionary があります このメソッドは DdfPath ディレクトリに空の辞書ファイル (COMMENT.DDF と FIELDEXT.DDF も含む ) を作成します メモ overwrite パラメーターを True に設定すると DdfCreateDictionary は現在のディレクトリ内の DDF を破壊して回復不能にしてしまうので 注意して使用してください 37

64 ActiveX でのデータ辞書メソッドの使用 データファイルの変更 これまでしてきた変更はすべて DDF または DDF の ActiveX メモリイメージにだけ当てはまるものです ただし DDF を変更しても データファイル内の実際のレコードの長さや構造は変更されません この変更を行うには データファイルに直接影響を与える関数を使用する必要があります データファイルの長さの変更は 1 つの操作で済む問題ではありません 基本的には データファイルを破壊し 新しい長さで再構築する必要があります 既存のファイルに対してこの変更を行う場合は 2 つの VAccess コントロールとテンポラリファイルを使用してレコードをコピーする必要があります たとえば 次のようにします テーブルとデータファイルにフィールドを追加するには Dim totalrecs as Integer Dim currrec as Integer 'DDF を読めるようにする VAccess1.RefreshLocations = True VAccess2.RefreshLocations = True 'DDFPath を設定 VAccess1.DdfPath = "c:\mydata" VAccess2.DdfPath = "c:\mydata" ' テーブルを設定 VAccess1.TableName = "MyTable" VAccess2.TableName = "MyTable" ' メモリイメージのみを使用 VAccess1.RefreshLocations = False VAccess2.RefreshLocations = False ' 上記ルーチンを使用して VAccess2 メモリイメージに新規フィールドを追加 AddNewField ' 実際のデータファイルを作成し DDF を更新 'VAccess1 のメモリイメージは更新されない VAccess2.RefreshLocations = True VAccess2.DdfCreateTable True ' テーブルを一時的に別の場所に割り当てる VAccess2.RefreshLocations = False VAccess2.DdfModifyLocation "tempdata.mkd" ' ファイルを開き最初のレコードを取得 VAccess1.Open VAccess2.Open VAccess1.GetFirst ' レコードを一方から他方へコピー totalrecords = VAccess1.TotalRecords currrec = 0 While currrec < totalrecords VAccess2.Buffer(0) = VAccess1.Buffer(0) VAccess2.Insert ' ここにエラー処理を追加 VAccess1.GetNext currrec = currrec + 1 Wend 38

65 データファイルの変更 VAccess1.Close VAccess2.Close ' 2 つのデータファイルができた ( 古いデータと新しいデータ ) ' 言語 API を使用して古いデータファイルを削除し ' 新しいデータファイル名を古い名前に変更する RenameTempDataFile ' 正しい場所に置き直す - DDF は既に設定されているので変更しない VAccess2.DdfModifyLocation VAccess1.Location その他にも データファイルのインデックス構造に対して直接行える変更があります これらの操作は ActiveX メソッドリファレンス に示されており DdfAddIndex DdfDropIndex および DdfDropIndexMaintain などがあります 39

66 ActiveX でのデータ辞書メソッドの使用 その他の DDF 操作 ここでするメソッドを使用して さまざまな目的で DDF を処理することができます オーナーネームによる DDF の保護 オーナーネームで DDF をセキュリティ保護することができます この機能を果たすために 以下の 2 つの方法が用意されています DdfSetOwner このメソッドは VAccess メモリイメージに現行の有効な DDF オーナーネームを設定します つまり すべての DDF ファイル操作はこのオーナーネームを使用します RefreshLocations が True である場合 この呼び出しを行う際のアクセスについては前の DDF オーナーネームを使用し このオーナーネームが DDF 自体に適用されます このメソッドは データファイルとの関連でのみ使用される OwnerName プロパティには影響を与えません DdfTestOwnerName このメソッドでは 有効な DDF オーナーネームを設定し その名前で許される権限を決定することができます これらの 2 つの方法の詳細については ActiveX メソッドリファレンス を参照してください 既存のフィールドとインデックス情報の削除 DdfClearFields と DdfClearIndexes は 現在のテーブルの既存のフィールド情報およびインデックス情報をすばやく消去できる便利な方法を提供します メモ RefreshLocations が True である場合 これらの変更内容は DDF に書き込まれるので 注意して使用してください 永続的な DDF メモリイメージによるコメントの強制設定 DdfGetComments このメソッドの用途は非常に限定的です RefreshLocations が False である場合 DDF 以外のテーブルを開いているときは永続的なメモリイメージが読み取られます ただし 永続的なメモリイメージにはコメント情報が含まれていません DdfGetComments は RefreshLocations を無視するため このメソッドを使用してコメント情報を永続的な DDF の情報と同調させるように ActiveX を強制設定することができます 広範囲に影響が及ぶ ActiveX メソッド 最後に 次の 2 つのメソッドは DDF を扱うオペレーションに対して広範囲の影響を与えます DdfTransactionMode このメソッドが True である場合 DDF に直接書き込みを行うように要求されるすべての DDF 処理関数はトランザクションの適用範囲内で書き込みを行います つまり ある部分の書き込みが行えないと すべての書き込みが行えなくなるため たとえば FIELD.DDF と INDEX.DDF の間の関係は破壊されません DdfKeyUseIndexDDFOnly このメソッドは True に設定されている場合のみ コントロールに INDEX.DDF を使用させます ActiveX は通常 ステータスバッファーで指定されたファイル自体に格納されているインデックス情報によって DDF 情報を増補します これは 正しくない INDEX.DDF エントリを処理する場合のコントロールの信頼性を高めます しかし この動作は同時に コントロールを使って正しくない INDEX.DDF エントリを修復することを困難にします それは ファイルを開くときに実際の DDF 情報の一部が上書きされるからです DdfKeyUseIndexDDFOnly を True に設定すると コントロールはインデックス情報をステータスバッファー内のインデックス情報で上書きしません つまり 正しくない INDEX.DDF エントリがあると コントロールはファイル内をナビゲートできませんが DDF の現在の状態を反映します このため 正しくないエントリの診断と修復が容易になります 40

67 ActiveX コントロールリファレンス 4 この章では Pervasive PSQL 用の ActiveX コントロールについてし コントロールの種類ごとにプロパティ メソッド イベントを一覧に示しています 以下の項目が含まれます VAccess データソース VACheck VACombo VACommand VAHScroll と VAVScroll VAList VAOption VAText 41

68 ActiveX コントロールリファレンス VAccess データソース VAccess コントロールはデータソースコントロールです これはアプリケーションのソースコードとのデータベース通信 およびほかの 8 個のバウンドコントロールとサードパーティのコントロールへのデータ転送を提供します VAccess コントロールは 設計時にはアイコンとして表示されますが 実行時には表示されません VAccess コントロールはそれぞれ 一度にデータベースの 1 つのテーブルを参照します コントロールは次の 2 つのいずれかの方法でデータベースに接続されます このコントロールの DdfPath プロパティを データベースを定義するデータ辞書ファイル (FILE.DDF FIELD.DDF および INDEX.DDF) の場所に設定します VAccess コントロールには設計時にデータベース定義用の DDF ファイルが必要です コントロールのレコードソースは TableName プロパティをデータ辞書内のテーブル名の 1 つに設定することによって指定されます データベースファイルへの物理的なオペレーティングシステムパスは Location プロパティによって指定されます この場所は TableName が選択されている場合 DDF に定義されているテーブルの場所のデフォルトとなります このコントロールの HostAddress プロパティをマシン名に設定し DatabaseName プロパティをそのマシン上にあるデータベース名に設定します テーブルは TableName プロパティを使って選択します テーブルを開くためにオーナーネームが必要な場合は OwnerName プロパティによってオーナーネームを指定できます レコードナビゲーションプロパティとメソッド およびフィールドアクセスプロパティはレコードデータをコードで提供します データソースは提供されている別のコントロールや Visual Basic でバウンドコントロールとして動作するサードパーティデータコントロールにバインドすることもできます カスタムプロパティ メソッドおよびイベント 次の表に このコントロールのカスタムプロパティ メソッドおよびイベントの一覧をアルファベット順に示します カスタムプロパティ メソッド およびイベントのカテゴリ別一覧は カテゴリ別プロパティ メソッド およびイベント を参照してください プロパティの一覧には (About) (Custom) (Name) Index Left Tag Top などのストックプロパティは含まれていません 表 7 VAccess カスタムプロパティ AutoDialog DataLength IndexNumber RowPosition AutoLogon DdfKeyUseIndexDDFOnly Join Rows AutoMode DdfPath Location Selected Fields AutoOpen DdfTransactionMode MaxBufferSize SelectedRecords Buffer ExtendedOps OemString SessionID CacheRejectMax FieldList OpenMode Status CacheRows Fields OwnerName TableName 42

69 VAccess データソース 表 7 VAccess カスタムプロパティ CancelDialog FieldValue PageSize TimeOutVal Column FileVersion Percentage TotalRecords ColumnName FireEvents Port VADebugMode Columns HostAddress Position CompressData HostConnect RefreshLocations DatabaseName IncludeCurrent Row 表 8 VAccess カスタムメソッド AboutBox DdfGetFieldComments GetLessOrEqual ShowSelectedFieldsDlg Btrv DdfModifyLocation GetNext ShowSelectedRecordsDlg Clear DdfModifyTableName GetNextExtended Stat Close DdfSetOwner GetPrevious StatusDialog Create DdfTestOwnerName GetPreviousExtended StepFirst DdfAddIndex Delete GetTableList StepLast DdfAddTable FormatFieldValue GetTotalSegments StepNext DdfAddTableName GetDirect Init StepNextExtended DdfClearFields GetEqual Insert StepPrevious DdfClearIndexes GetFileFlag OpCode StepPreviousExtended DdfCreateDictionary GetFirst Open Transaction DdfCreateTable GetGreater Refresh Unlock DdfDropIndex GetGreaterOrEqual RowColumnValue Update DdfDropIndexMaintain GetLast SetFileFlag DdfDropTable GetLess SetOwner 表 9 VAccess カスタムイベント CommError Logon Reposition GotData OnRemote Validate 43

70 ActiveX コントロールリファレンス VACheck VACheck コントロールはブール型 (True または False) のフィールド値の状態を表示します VACheck コントロールのデータソースは VAccessName プロパティの設定によって決まります フィールドソースは VAFieldName プロパティをデータソースのブール型 ( 論理あるいはビットタイプ ) フィールドの名前に設定することによってバインドされます フィールドの True ストレージ値と False ストレージ値の それぞれ 1 と 0 以外の値は コントロールの VAValueTrue プロパティと VAValueFalse プロパティを使用して定義できます カスタムプロパティとメソッド 次の表に このコントロールのカスタムプロパティとメソッドの一覧を示します 表 10 VACheck カスタムプロパティ VAccessName VADataType VADebugMode VAFieldName VAOffset VASize VADecimal 表 11 VACheck カスタムメソッド AboutBox 44

71 VACombo VACombo VACombo はテキストボックスとリストボックスの要素を結合します ユーザーは値を入力することも オプション一覧から選択することもできます VACombo は 3 つの異なるモードであるフィールドバウンド レコードリストおよびインデックスリストで操作できます このコントロールをフィールドバウンドデータコントロールとして使用するには VAFieldName プロパティに VAccessName プロパティで指定されているファイルのフィールドの 1 つの名前を割り当てます AddItem メソッドを使用して フィールドバウンドコンボボックスにこのフィールドの有効な選択肢一覧を追加することができます レコードリストモードでこのコントロールを使用するには VARecordList プロパティを True として設定します メモ VACombo の VARecordList 機能を使用する (VARecordList = True) 場合 1 つのフィールド名のみを SelectedFields プロパティで指定することができます そのフィールドはアクティブキーでインデックス付けされたフィールド ( またはセグメントキーでインデックス付けされたフィールドの 1 つ ) でなければなりません SelectedFields でフィールド名の複数指定はサポートされません 複数指定した場合 最初に指定したフィールドのみが VACombo コントロールに表示されます インデックスが付いていないフィールドの指定はサポートされません インデックスが付いていないフィールドを指定すると VACombo コントロールにはデータが表示されません 関連ファイルに定義されているインデックスをリストに設定し ユーザーが実行時に現在のインデックスを選択できるようにするには VAFieldName プロパティを "Index List" に設定します カスタムプロパティとメソッド 次の表に このコントロールのカスタムプロパティとメソッドの一覧を示します 表 12 VACombo カスタムプロパティ IntegralHeight VAccessName VADecimal VAOffset List VADataType VAFieldName VARecordList VADebugMode VAFormat VASize 表 13 VACombo カスタムメソッド AboutBox Clear RemoveItem AddItem Refresh 45

72 ActiveX コントロールリファレンス VACommand VACommand を使用すると 実行時にボタンがクリックされた時点で データソースファイルに対する一般的な操作を実行できます VACommand は VAccessName プロパティを設計時あるいは実行時に設定することによって データソースにバインドされます VAOperation プロパティは 実行時 ボタンがクリックされたときに実行される操作を判別します VAOperation プロパティにレコード取得操作を指定した場合は VALockBias プロパティを使用して レコードが取得されている間そのレコードをロックすることができます VALockBias プロパティは Open Close Insert Update のオペレーションには影響しません VAErrorDialog プロパティは コントロールによって実行されたオペレーションがエラーを返した場合の ユーザーへのテキストメッセージの表示機能を有効にまたは無効にします メモ Click イベントは VAOperation プロパティに指定された Pervasive PSQL オペレーションの前に VACommand_Click サブルーチンのコードを実行します カスタムプロパティ 次の表に このコントロールのカスタムプロパティの一覧を示します 表 14 VACommand カスタムプロパティ VAccessName VADebugMode VALockBias VAOperation VAErrorDialog 46

73 VAHScroll と VAVScroll VAHScroll と VAVScroll VAHScroll コントロールと VAVScroll コントロールは現在選択されているインデックスパスでデータソースをナビゲートします VAHScroll と VAVScroll は VAccessName プロパティを経由して VAccess コントロールにバインドされます スクロールバーのつまみの位置は Pervasive PSQL FindPercentage オペレーションよって決定される 現在のインデックスパスにおける現在のレコードの相対位置を反映しています つまみをドラッグした位置に該当するレコードは Pervasive PSQL GetByPercentage オペレーションによって取得されます カスタムプロパティ 次の表に このコントロールのカスタムプロパティの一覧を示します 表 15 VAHScroll と VAVScroll のカスタムプロパティ VAccessName VADebugMode Value 47

74 ActiveX コントロールリファレンス VAList VAList コントロールを使用すると ユーザーはリストから項目を選択できます VAList コントロールのデータソースは VAccessName プロパティの設定によって決まります リストボックスコントロールは VARecordList プロパティの設定によって決定される 2 つの異なるモードで動作できます VARecordList プロパティが False の場合は リストボックスはフィールドバウンドデータコントロールとして動作します VAFieldName プロパティをデータソース内のフィールド名の 1 つに設定することによって リストボックスのフィールドデータソースを割り当てます AddItem メソッドを使用して フィールドバウンドリストボックスにこのフィールドの有効な引数一覧を追加することができます VARecordList プロパティが True の場合は リストボックスは関連データソースの複数列のレコードリストとして動作します VAFieldName プロパティの値をセミコロンで区切って リスト内に表示されるフィールド一覧を設定します ( フィールドを空白のままにしておくと すべてのフィールドが設定されます ) 書式文字列の一覧をセミコロンで区切って VAFormat プロパティに指定することによって 各フィールドの書式を設定することもできます ColumnWidth プロパティを設定すると リストボックス内の列の横方向のスペースを制御できます 列幅はピクセル単位で測定されます カスタムプロパティとメソッド 次の表に このコントロールのカスタムプロパティとメソッドの一覧を示します 表 16 VAList カスタムプロパティ ColumnWidth VAccessName VADecimal VAOffset List VADataType VAFieldName VARecordList VAAutoScroll VADebugMode VAFormat VASize 表 17 VAList カスタムメソッド AboutBox Clear RemoveItem AddItem Refresh 48

75 VAOption VAOption VAOption コントロールはブール型 (True または False) のフィールド値の状態を表示します VAOption コントロールのデータソースは VAccessName プロパティの設定によって決まります フィールドソースは VAFieldName プロパティをデータソースのブール型 ( 論理あるいはビットタイプ ) フィールドの名前に設定することによってバインドされます フィールドの True ストレージ値と False ストレージ値は それぞれコントロールの VAValueTrue プロパティと VAValueFalse プロパティを使用して定義できます 指定の親ウィンドウ ( フォーム上 あるいはグループボックス内 ) で一度に 1 つのオプションボタンしか選択 つまり True にできません カスタムプロパティとメソッド 次の表に このコントロールのカスタムプロパティとメソッドの一覧を示します 表 18 VAOption カスタムプロパティ VAccessName VADebugMode VASize VADataType VAFieldName VAValueFalse VADecimal VAOffset VAValueTrue 表 19 VAOption カスタムメソッド AboutBox 49

76 ActiveX コントロールリファレンス VAText VAText コントロールはフィールドの値を表示し ユーザーにその値の編集を許可します VAText コントロールのデータソースは VAccessName プロパティの設定によって決まります フィールドのソースは VAFieldName プロパティをデータソースのフィールドの名前に設定することによってバインドされます ほかのバウンドコントロールと同様 テキストボックスでの変更はメモリのデータバッファーに反映されますが 現在のレコードに対する更新または挿入操作が実行されるまでファイルには書き込まれません テキストボックスの VASearch プロパティが True の場合 テキストボックス内の変更を行うと テキストボックスのテキストの値を現在のインデックスの最初のセグメントとして使用して現在のレコードの位置を変更します レコードリストモードの VAList と検索モードのテキストボックスを一緒に使用して レコードブラウザーあるいはルックアップテーブルを実装することができます カスタムプロパティとメソッド 次の表に このコントロールのカスタムプロパティとメソッドの一覧を示します 表 20 VAText カスタムプロパティ AutoScroll VAccessName VAFieldName VASize FocusSelText VADataType VAFormat WantReturn LockedMaxLength VADebugMode VAOffset Uppercase VADecimal VASearch 表 21 VAText カスタムメソッド AboutBox 50

77 カテゴリ別プロパティ メソッド およびイベント 5 この章は Pervasive PSQL 用に設計されたプロパティ メソッド およびイベントすべてを一覧にまとめ 次のセクションで機能別にします ActiveX のプロパティ メソッド およびイベントの概要 レコードセットの取得 ファイルの処理 データ辞書メソッド レコード内のフィールドへのアクセス レコードの挿入 更新 および削除 個別レコードの取得 最適化とデバッグ 51

78 カテゴリ別プロパティ メソッド およびイベント ActiveX のプロパティ メソッド およびイベントの概要 プロパティ メソッド およびイベントは ActiveX コントロールに適用できる 3 種類の機能です プロパティとメソッドの違いは必ずしも明らかではありませんが 次のような文で明確にすることができます Let variable = method は一般に文法的に正しい構文です Let method = variable は 誤った構文です Let property = variable および Let variable = property は 両方とも文法的に正しい構文です イベントは ActiveX コントロールによってトリガーされるアプリケーション内の関数で ユーザーはこれに応答できます メモこの章に記載されているプロパティ メソッド およびイベントは Pervasive の ActiveX アクセス方法用に設計されたものです また 開発ツール (Visual Basic など ) で提供されるコントロールに関連付けられたほかのプロパティ メソッド およびイベントについてもされています 特定の開発ツールの情報についてはそのツールのマニュアルを参照してください 52

79 レコードセットの取得 レコードセットの取得 ここでは レコードセットを取得する際に使用できるプロパティ メソッド およびイベントの一覧を示します プロパティとメソッド 表 22 Extended オペレーション用プロパティおよびメソッド プロパティ / メソッド AutoMode CacheRejectMax CacheRows CancelDialog Column ColumnName Columns ExtendedOps FocusSelText GetNextExtended GetPreviousExtended IncludeCurrent Init MaxBufferSize Row RowColumnValue RowPosition Rows SelectedFields Extended Fetch データセットの自動キャッシュ処理を有効または無効にします SelectedRecords 条件を使用した単一 Extended Fetch オペレーションの処理でスキップ可能な最大レコード数を決定します 単一 Extended Fetch オペレーションによって返される最大行数を決定します ユーザーが一連の単一 Extended Fetch オペレーションをキャンセルすることのできるダイアログボックスを有効または無効にします Extended Fetch 結果セットの現在の列を決定します Extended Fetch 結果セットの現在の列の名前を指定します デフォルトは列に割り当てられたフィールド名です Extended Fetch 結果セットの合計列数を返します データソースに対して Extended Fetch プロパティおよびメソッドを有効または無効にします テキストボックスがフォーカスを取得したときの VAText ボックス内のテキストを選択します 現在のカーソル位置から始まり 現在のインデックスパスに沿って進行する Extended Fetch を実行します 現在のカーソル位置から始まり 現在のインデックスパスを遡る Extended Fetch を実行します 次に実行される Extended Fetch オペレーションのレコードセットの結果に現在のレコードを含めるか あるいは後続のレコードから始めるかどうかを決定します SelectedFields または SelectedRecords 条件を変更した後 あるいは新たに現在位置をファイル内で設定した後で Extended Fetch メソッドを呼び出す前に Extended Fetch パラメーターを割り当てます Extended Fetch オペレーションで使用するデータバッファーのサイズを指定します Extended Fetch の結果セットの現在の行を設定あるいは返します Extended Fetch メソッドからの結果セットへアクセスする場合に あるいは検索条件を満たす行間を移動する場合に使用します Extended Fetch 結果セット内の指定された行と列からフィールド値を返します Extended Fetch 結果セット内の現在の行にあるレコードの物理位置を返します Extended Fetch 結果セット内のデータの有効行数を返します Extended Fetch 結果セットの列として使用するフィールドを指定します デフォルトは空のリストで これはすべてのフィールドが含まれることを示します 53

80 カテゴリ別プロパティ メソッド およびイベント 表 22 Extended オペレーション用プロパティおよびメソッド プロパティ / メソッド SelectedRecords ShowSelectedFieldsDlg ShowSelectedRecordsDlg StepNextExtended StepPreviousExtended Extended Fetch 結果セットに返されるレコードのレコード選択条件を指定します デフォルトは空のリストで これはすべてのレコードが含まれることを示します SelectedFields プロパティの [ プロパティの設定 ] ダイアログボックスを表示します SelectedRecords プロパティの [ プロパティの設定 ] ダイアログボックスを表示します 現在の位置から始まり 物理レコード順を前方へ進む Extended Fetch を実行します 現在の位置から始まり 物理レコード順を後方へ進む ( 遡る ) Extended Fetch を実行します イベント 表 23 Extended オペレーション用イベント イベント Logon Extended Fetch 操作の完了に伴ない発生します 返されたデータバッファーに含まれるデータの行数および列数を返します 54

81 ファイルの処理 ファイルの処理 ここでは ファイル処理を実行する際に使用できるプロパティとメソッドの一覧を示します プロパティとメソッド 表 24 ファイルの処理用プロパティおよびメソッド プロパティ / メソッド AutoOpen Close DataLength DdfPath FileVersion Insert Location Open OpenMode Extended Fetch データセットの自動キャッシュ処理を有効または無効にします コントロールに関連付けられたファイルを閉じます ファイルに対する単一レコードオペレーションで使用されるレコードデータバッファーのバイト長を取得または設定します 特定のデータ定義ファイルセットに VAccess コントロールを接続します Pervasive PSQL ファイルのバージョンを返します 現在のデータバッファーを新たなレコードとして挿入を試みます 選択された VAccess コントロールに関連付けられたテーブルのドライブ パス ファイル名を設定するか あるいは返します コントロールに関連付けられたファイルを開きます コントロールに関連付けられているファイルのオープンモードを取得または設定します OwnerName VAccess コントロールに関連付けられたファイルを開くときに使用される Pervasive PSQL オーナーネームを指定します PageSize SetOwner Stat TableName TotalRecords Pervasive PSQL データファイルのページサイズを取得または設定します ファイルのオーナーネームを設定します コントロールに関連付けられたファイルから現在のファイルのステータス情報を取得します コントロールに関連付けられているテーブルを示します VAccess コントロールに関連付けられた Pervasive PSQL ファイルに含まれているレコード数を返します 55

82 カテゴリ別プロパティ メソッド およびイベント データ辞書メソッド ここでは データ辞書メソッドに使用できるプロパティとメソッドの一覧を示します プロパティとメソッド 表 25 データ辞書処理用プロパティおよびメソッド プロパティ / メソッド DdfAddIndex DdfAddTable DdfAddTableName DdfClearFields DdfClearIndexes DdfCreateDictionary DdfCreateTable DdfDropIndex DdfDropIndexMaintain DdfDropTable DdfGetFieldComments DdfKeyUseIndexDDFOnly DdfModifyLocation DdfModifyTableName DdfPath DdfSetOwner DdfTestOwnerName DdfTransactionMode FieldList GetTableList IndexList DDF ファイルおよび対応する Pervasive PSQL ファイルにインデックスを追加します 現在のテーブルを現在のデータ辞書に追加します 現在の VAccess コントロールメモリイメージに新たなテーブルを追加します 現在のテーブルの VAccess メモリイメージのフィールド情報を消去します 現在のテーブルの VAccess メモリイメージのインデックス情報を消去します 現在の位置に新たに空の DDF ファイルセットを作成します 辞書にテーブル定義を追加し 空のデータファイルを作成します 現在の Pervasive PSQL データファイルと現在のテーブルのデータ辞書定義からインデックスを削除します 既存インデックスの順序はそのまま維持して 現在の Pervasive PSQL データファイルと現在のテーブルのデータ辞書定義からインデックスを削除します 現在のテーブルをデータ辞書から削除します COMMENT.DDF ファイルからフィールドコメントを VAccess メモリイメージに読み取ります VAccess がファイルの実際のインデックスを使用するか あるいは DDF に指定されたインデックスを使用するかを指定します 現在のテーブルの場所を変更し オプションとして DDF に新しい場所を書き込みます 現在のテーブルの名前を変更し オプションとして DDF に新たな名前を書き込みます このコントロールに関連付けられた DDF ファイルが常駐するドライブとパスを設定します 辞書ファイルの Btrieve オーナーネームをデフォルトのオーナーネーム (..SC...) セキュリティレベル ( 読み取り専用アクセス ) 以外に設定します 辞書を開く際に使用するオーナーネームを設定し このオーナーネームを使用して辞書が正常に開き 更新できるかどうかを判定します データ辞書テーブルへの更新がトランザクション内で実行されるかどうかを判定します ブール値を受け付けます またはブール値を返します 現在のテーブルのフィールドに関する情報を含むバリアント配列を設定します あるいはそのバリアント配列を返します 現在の辞書に定義されているテーブルのリストを 2 次元バリアント配列として返します 現在のテーブルのインデックスに関する情報を含むバリアント配列を設定します あるいはそのバリアント配列を返します 56

83 データ辞書メソッド 表 25 データ辞書処理用プロパティおよびメソッド プロパティ / メソッド Location RefreshLocations TableName VAccess コントロールに関連付けられている Pervasive PSQL ファイルのドライブ パス ファイル名を取得または設定します VAccess コントロールがメタデータに対し DDF ファイルを使用するのか あるいは内部状態と永続的なプロパティ ( またはどちらか一方 ) を使用するのかを判定します 現在の DDF セットに定義されているすべてのテーブルから どのテーブルが目的のコントロールと関連付けられているかを示します 57

84 カテゴリ別プロパティ メソッド およびイベント レコード内のフィールドへのアクセス ここでは レコード内のフィールドにアクセスする際に使用できるプロパティとメソッドの一覧を示します プロパティとメソッド 表 26 レコード内のフィールドへのアクセス用プロパティおよびメソッド プロパティ / メソッド FieldList Fields FieldValue FormatFieldValue OemString 現在のテーブルのフィールドに関する情報を含むバリアント配列を設定します あるいはそのバリアント配列を返します 関連付けられたファイルに定義されたフィールドの合計数を設定します またはその合計数を返します メモリ内の現在のレコード あるいは Extended Fetch レコードセットの現在の行に対して指定されたフィールドの値を取得または設定します 指定の書式文字列を使用して書式設定された現在のレコードのフィールドの値を返します 英数字フィールドに保存されたデータを ANSI 文字セットと OEM 文字セットの間で変換します 58

85 レコードの挿入 更新 および削除 レコードの挿入 更新 および削除 ここでは レコードを挿入 更新 削除する際に使用できるプロパティ メソッド イベントの一覧を示します プロパティとメソッド 表 27 レコードの挿入 更新 および削除用プロパティおよびメソッド プロパティ / メソッド Buffer Clear Delete Insert Refresh Transaction Unlock Update コントロールの現在のレコードバッファーの内容を取得または設定します メモリ内の現在のレコードのデータとインデックスバッファーの内容を消去します 現在のレコードを削除します メモリのレコードを新規レコードとしてファイルに挿入します バウンドコントロールを再描画します トランザクションを開始 終了 あるいは中断します ロックされたレコードのロックを解除します 現在のレコードをメモリ内のレコードイメージに更新します イベント 表 28 レコードの挿入 更新 および削除用イベント イベント Validate 関連付けられたテーブルでレコード操作が行われる前に発生します 59

86 カテゴリ別プロパティ メソッド およびイベント 個別レコードの取得 ここでは レコードセットを取得する際に使用できるプロパティ メソッド イベントの一覧を示します プロパティとメソッド 表 29 個別レコード取得用プロパティおよびメソッド プロパティ / メソッド Buffer GetDirect GetEqual GetFirst GetGreater GetGreaterOrEqual GetLast GetLess GetLessOrEqual GetNext GetPrevious GetTotalSegments IndexNumber Percentage Position RefreshLocations StepFirst StepLast StepNext StepPrevious コントロールの現在のレコードバッファーの内容を取得または設定します ファイル内の物理位置を使用してレコードを返します 現在のインデックスと完全に一致するレコードを返します 現在のインデックスパスにある最初のレコードを返します 現在のインデックスパスにある現在のキー値よりも大きい最初のレコードを返します 現在のインデックスパスにある現在のキー値と等しい あるいは現在のキー値よりも大きい最初のレコードを返します 現在のインデックスパスにある最後のレコードを返します 現在のインデックスパスにある キーフィールドに指定された値よりも小さい値を含む最後のレコードを返します 現在のインデックスパスにある キーフィールドに指定された値よりも小さいまたは等しい値を含む最後のレコードを返します 現在のインデックスパスにある次のレコードを返します 現在のインデックスパスにある前のレコードを返します VAccess コントロールに関連付けられているファイルの 特定のインデックスに含まれるセグメントの総数を返します VAccess コントロールに関連付けられたテーブルの現在のインデックス番号を返します 関連付けられたテーブルの現在選択されているインデックスパス上の指定された相対位置に 取得するレコードを設定します VAccess コントロールに関連付けられたテーブルの現在のレコードの物理位置の値を返します VAccess コントロールがメタデータに対し DDF ファイルを使用するのか あるいは内部状態と永続的なプロパティ ( またはどちらか一方 ) を使用するのかを判定します 物理レコードの格納順での最初のレコードを返します 物理レコードの格納順での最後のレコードを返します 物理レコードの格納順での次のレコードを返します 物理レコードの格納順での前のレコードを返します 60

87 個別レコードの取得 イベント 表 30 個別レコード取得用イベント プロパティ / メソッド Validate 関連付けられたテーブルでレコード操作が行われる前に発生します 61

88 カテゴリ別プロパティ メソッド およびイベント 最適化とデバッグ ここでは 最適化とデバッグ機能を実行する際に使用できるプロパティとメソッドを一覧にまとめてあります プロパティとメソッド 表 31 最適化とデバッグ用プロパティおよびメソッド プロパティ / メソッド FireEvents Join SessionID Status StatusDialog VADebugMode VAccess コントロールのイベントの発生を有効または無効にします コントロールで使用可能なレコードを制限し 別の VAccess コントロールのフィールド値を基準とする 関連テーブルのリレーショナルな位置を維持します クライアントが使用するセッション ID を取得または設定します VAccess コントロールに関連付けられたファイルに対する最新の Pervasive PSQL オペレーションから Pervasive PSQL ステータスを返します ゼロ以外の数値に設定されると タスクモードのメッセージボックスを表示します コントロールに対するデバッグモードのエラーチェック機能を有効または無効にします 62

89 ActiveX プロパティリファレンス 6 この章では ActiveX アクセス方法のプロパティについてします アルファベット順にプロパティをします 63

90 ActiveX プロパティリファレンス AutoDialog VAccess ( 非推奨 - 以前の I*net Data Server のみ ) このプロパティが True に設定されていると コントロールは通信エラーが発生した場合に自動的にダイアログボックスをユーザーに表示します これは Pervasive PSQL サーバーに到達できない場合に発生します VAccess コントロールが IDS 経由でリモートデータへのアクセスを試みないのであれば このプロパティは無視されます AutoDialog プロパティは IDS 経由の通信エラーが発生した場合に ActiveX が自動的にダイアログボックスを表示するかどうかを決定します 再接続が可能な場合は ダイアログボックスに再接続を試行できるプロンプトが含まれます デフォルト値は False です 関連項目 Pervasive PSQL Programmer's Guide 64

91 AutoLogon AutoLogon VAccess ( 非推奨 - 以前の I*net Data Server のみ ) このプロパティを True に設定しておくと アプリケーションは安全な IDS サイトでデータベースを開くとき 自動的にログオンダイアログボックスをユーザーに提供できます このプロパティが False の場合は セキュリティ情報を提供するために アプリケーションは Logon イベントを手動で処理する必要があります AutoLogon プロパティには 2 つの関連機能があります まず IDS からログオンの要求があった場合に ActiveX が自動的にログオンダイアログボックスをユーザーに表示するかどうかを決定します IDS が Browseable に設定されている場合は このダイアログは IDS データベース名のリストを提示します Browseable に設定されていない場合は ユーザーにデータベース名を入力するように要求します また AutoLogon は IDS がセキュリティ情報を要求したときに Logon イベントを発生させるかどうかも決定します AutoLogon が True に設定されている場合 ActiveX はデフォルトのログオンダイアログボックスを表示し Logon イベントは発生しません このプロパティが False に設定されている場合 デフォルトのダイアログは表示されず IDS がセキュリティ情報を要求するたびに Logon イベントが発生します その後 Logon イベントに応答して セキュリティ情報を提供するか カスタムログオンダイアログボックスを実装することができます デフォルト値は True です 関連項目 Logon イベント Pervasive PSQL Programmer's Guide 影響先 : Location Ddfpath 65

92 ActiveX プロパティリファレンス AutoMode VAccess AutoMode プロパティを True に設定しておくと 実行時に Init メソッドが呼び出されるとすぐに Pervasive PSQL の Extended Fetch オペレーション (GetNextExtended) を自動的に実行して SelectedFields および SelectedRecords プロパティで指定されたデータを取得します GetNextExtended オペレーションは論理カレンシーを必要とします 論理カレンシーは GetFirst GetEqual などのインデックス付きのレコードオペレーションを呼び出すことによって設定できます AutoMode が True に設定されている場合は 選択条件を満たすレコードが自動的にフェッチされ Row 値の要求に従って レコードセットのスナップショットとしてメモリにキャッシュされます AutoMode が True に設定されている場合 Extended メソッドは無効になります CancelDialog プロパティが True の場合は データアクセスオペレーションの間にユーザーに [Cancel] ダイアログボックスが表示され ユーザーは このプロセスをキャンセルすることができます AutoMode が True に設定されている場合は Extended オペレーションを使用しようとすると 実行時に -1 のステータスが返されます ExtendedOps を参照してください AutoMode プロパティが False に設定されている場合 データの取得はユーザー自身で行ってください Init メソッドの呼び出しでは Pervasive PSQL が Extended オペレーションの呼び出しで使用する構造体を割り当てるだけで データの取得は実行されません GetNextExtended GetPreviousExtended StepNextExtended または StepPreviousExtended メソッドを実行時に実行することによってデータをフェッチすることができます Extended オペレーションのキャッシュバッファーは 1 つだけメモリに保持され 後続のフェッチで再利用されます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響先 : GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended Init Row 影響元 : ExtendedOps 66

93 AutoOpen AutoOpen VAccess AutoOpen プロパティは以前の RequireOpen プロパティと置き換えられたものです このプロパティは データファイルが妥当な場合に VAccess コントロールがそのファイルを自動的に開くかどうかを決定します このプロパティが True に設定されると VAccess は実行時のインスタンス生成時 また Location プロパティが変更されるたびに要求されたデータファイルを開こうとします このプロパティが False に設定されている場合は データファイルに対して何らかの操作を実行しようとする前には ユーザー自身で Open 呼び出しを行ってください 関連項目 影響先 : Location DdfPath 67

94 ActiveX プロパティリファレンス Buffer VAccess コントロールの現在のレコードバッファーの内容を取得または設定します レコードバッファーは Pervasive PSQL によって取得される未加工のデータです 構文 object.buffer(short alignment) Buffer プロパティの構文は次のような要素で構成されます 要素 object 必須 VAccess オブジェクトの名前は [ ] のオブジェクトを評価するオブジェクト式を表します alignment 必須 データのバイトアライメントを指定します alignment に対して受け付ける値は および 16 バイトです データは現在のレコードバッファーから読み取られ 書き込まれます 読み取りオペレーションでは このプロパティは現在のレコードバッファーを表すバイト配列を含む OLE Variant を返します 書き込みオペレーションでは このプロパティは現在のレコードバッファーに書き込まれるバイト配列を含む OLE Variant を取り出します このプロパティに対する変更は Update メソッドまたは Insert メソッドが正常に呼び出されるまで Btrieve ファイルには保存されません 返されるバッファーは単一レコードバッファーだけです Stat 呼び出しの後のステータスバッファーの内容は含みませんし Extended オペレーションの呼び出し後の Extended オペレーションレコードバッファーも含みません この情報は ほかのプロパティやメソッドからも利用できます (Stat RowColumnValue RowPosition を参照してください ) Clear メソッドはこのバッファーを消去します 特定のプログラミング環境では 構造化された変数用に特定のバイトアライメントを使用できます あるいは特定のバイトアライメントが必要です アライメントパラメーターを用いて レコード内の個別フィールドに使用するバイトアライメントを指定できます このプロパティは設計時には使用できません 例 Public Type SAFEARRAYBOUNDS celements As Long llbound As Long End Type Public Type SAFEARRAY cdims As Integer ffeatures As Integer cbelements As Long clocks As Long pvdata As Long Bounds(0) As SAFEARRAYBOUNDS End Type 68

95 Buffer Public Type Buffer msa_desc As String * 34 population As Long prev_population As Long End Type Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (pdest As Any, psrc As Any, ByVal ByteLen As Long) Declare Function VarPtrArray Lib "msvbvm50.dll" Alias "VarPtr" (Ptr() As Any) As Long Public Sub ReadData() Dim i as integer Dim dataarray() as Buffer Dim bytearray() as Byte VAccess1.Open VAccess1.GetFirst Redim dataarray(vaccess1.totalrecords) For i = 0 to VAccess1.TotalRecords-1 ByteArray = VAccess1.Buffer(4) DataArray(i) = GetBuffer(byteArray) VAccess1.GetNext Next i End Sub Public Function GetBuffer(bufferArray() As Byte) as Buffer Dim status As Integer Dim saptr As Long Dim sastruct As SAFEARRAY Dim record as Buffer 'SAFEARRAY の構造体のアドレスを取得する CopyMemory saptr, ByVal VarPtrArray(bufferArray), 4 'SAFEARRAY の構造体をコピーする CopyMemory sastruct, ByVal saptr, Len(saStruct) ' データ配列を構造体にコピーする CopyMemory record, ByVal sastruct.pvdata, BufferSize(saStruct) GetBuffer = record End Function 関連項目 影響元 : Clear GetDirect GetEqual GetGreaterOrEqual GetLessOrEqual GetFirst GetPrevious GetNext GetLast StepFirst StepPrevious StepNext StepLast Percentage 69

96 ActiveX プロパティリファレンス CacheRejectMax VAccess このプロパティは Pervasive PSQL の Extended Get オペレーション構造体の最大リジェクトカウントパラメーターと対応しています ( Pervasive PSQL Programmer's Guide の Get Next Extended のを参照してください ) CacheRejectMax プロパティの値を指定すると Pervasive PSQL が SelectedRecords プロパティフィルター条件を満たすレコードの検索中にスキップできるレコード数が制限されます このプロパティがゼロの場合はシステム定義の最大値が使用されます このプロパティを使用して 所定クエリの読み取り時間を最適化することができます このプロパティの有効範囲は 0 レコード ( デフォルト値 ) から 65,535 レコードまでです SelectedRecords プロパティに値が指定されていない場合は このプロパティの設定はまったく効果がありません このプロパティは GetNextExtended メソッド GetPreviousExtended メソッド StepNextExtended メソッド または StepPreviousExtended メソッドで使用できるほか 特定の Row 値の要求を受けて AutoMode モードで実行している VAccess コントロールで使用できます Pervasive PSQL が Extended Fetch を処理している間に CacheRejectMax 値に達した場合 このフェッチオペレーションは その処理の中で検出したレコード選択条件を満たすレコードのセットと 拒否された ( 該当しない ) レコードのフィルター制限に達したことを示すステータス値 64 を返します VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響先 : GetPreviousExtended GetNextExtended StepPreviousExtended StepNextExtended 影響元 : SelectedRecords ExtendedOps 70

97 CacheRows CacheRows VAccess CacheRows プロパティは一度の Pervasive PSQL Extended Fetch オペレーションで返される最大行数を決定します このプロパティに設定し得る最大値は返される行のバイト長によって決まりますが この行の長さは SelectedFields プロパティがある場合にはその値によって ない場合はデータファイルの定義済みのデータバッファー長によって決まります このプロパティは Extended Get オペレーション構造体のデータ抽出の固定部分の 取得するレコード数 と対応しています ( Pervasive PSQL Programmer's Guide の Get Next Extended のを参照してください ) このプロパティをゼロに設定すると 返される行の長さと MaxBufferSize プロパティの値に基づいて可能な最大値が自動的に計算され それが使用されます このプロパティに低い値を設定すると 所定クエリの読み取り時間を最適化することができます この値を高く設定しすぎると ステータス 97 になります つまり Pervasive PSQL は要求された行数を保持するのに十分な大きさのバッファーを処理するような構成になっていないということです この問題を解決するには CacheRows プロパティの値の設定を低くし ( 可能であれば ) Pervasive PSQL バッファーサイズを増やすか あるいは SelectedFields プロパティを用いて返されるフィールド数を減らします VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響先 : Rows 影響元 : ExtendedOps MaxBufferSize SelectedFields Init 71

98 ActiveX プロパティリファレンス CancelDialog VAccess AutoMode プロパティが True に設定されている場合 CancelDialog を True に設定すると 複数の Extended Fetch オペレーションが実行される間 ユーザーにダイアログボックスが表示されるようになります これを利用して ユーザーはオペレーションの合間にフェッチ要求をキャンセルできます AutoMode が True の場合 Extended Fetch オペレーションは Row プロパティの変更に伴って実行されます [Cancel] ダイアログボックスには 現在取得済みのレコード数が表示されます この数値は Extended Fetch イベントから新たなレコードブロックが返されるたびに更新されます AutoMode の Extended Fetch イベントをキャンセルすると キャンセル前に取得した行はメモリに保持されます このプロパティは AutoMode プロパティが False の場合にはまったく効果がありません VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響元 : ExtendedOps Row AutoMode 72

99 Column Column VAccess Extended Fetch レコードセットのどの列が FieldValue プロパティおよび ColumnName プロパティの現在の列になるのかを指定します Extended Fetch レコードセットの各列はデータベースのフィールドと対応しています SelectedFields プロパティに値が指定されている場合 列値の順序は SelectedFields プロパティに記載されたフィールドの順序と同じです SelectedFields プロパティに値が指定されていない場合 列値の順序はデータベースレコードのフィールドの順序と同じです Column プロパティと Row プロパティで Extended Fetch オペレーションによって返されるレコードセットの個別フィールドを指定します Column プロパティの値の有効範囲は 1 ( 最初の列 ) から Columns プロパティの値 ( 最後の列 ) までです このプロパティは設計時には使用できません Column プロパティは ColumnName プロパティとペアになります 一方を設定すると もう一方も設定されます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 特定のフィールド値を指定 取得する場合は 通常 Column よりも RowColumnValue の方が簡単です 関連項目 影響先 : ColumnName FieldValue RowColumnValue 影響元 : ExtendedOps 73

100 ActiveX プロパティリファレンス ColumnName VAccess ColumnName プロパティには Extended Fetch オペレーションによって返されたレコードセットの 現在選択されている列に割り当てられたフィールドのフィールド名が格納されます ColumnName プロパティは Column プロパティとペアになります 一方を設定すると もう一方も設定されます つまり Column プロパティは ColumnName の現在の列を特定します このプロパティを連続で呼び出して列挙されたフィールドは FieldList で指定されたフィールドとは異なっている あるいは異なった順序になっている場合があります これは FieldList にはレコードの実際のフィールドがオフセット順で入っているのに対し 列は SelectedFields によって決定づけられるからです VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響元 : Column SelectedFields ExtendedOps 74

101 Columns Columns VAccess Columns プロパティは Extended Fetch レコードセットに定義されている列数を返します Extended Fetch オペレーションに対して SelectedFields プロパティが指定されている場合 この値は SelectedFields プロパティに指定されたフィールド数と同じです その他の場合は データファイルのレコードに対して定義された合計数と同じです ( Fields プロパティ を参照 ) このプロパティは設計時には使用できません 実行時は読み取り専用です このプロパティには Extended オペレーションの Init メソッドが実行時に呼び出された後にのみ有効なデータが入ります VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 ' この例では リストボックスを '1 つの Extended オペレーションバッファーのレコードで埋めます Dim line As String Dim colcount, rowcount As Integer Orders.GetFirst Orders.ExtendedOps = True Orders.Init Orders.GetNextExtended For rowcount = 1 To Orders.Rows Orders.Row = rowcount line = "" For colcount = 1 To Orders.Columns 'FieldValue は文字列と予想されるバリアントを返す ' 文字列であることを確認する If Not VarType(Orders.FieldValue(colcount)) = vberror Then line = line + CStr(Orders.FieldValue(colcount)) End If Next colcount ListBox.Add line Next rowcount 関連項目 影響元 : ExtendedOps SelectedFields 75

102 ActiveX プロパティリファレンス ColumnWidth VAList VAList オブジェクトの複数列レコードリストを利用する際 タブストップ ( タブ位置 ) を割り当てるには このプロパティを設定します VARecordList プロパティが False の場合 このプロパティには影響がありません 複数列レコードリストにタブストップを設定するには 次の手順を実行します 1 リストボックスの幅が すべての列データを収容できる十分な広さがあることを確認します 2 VARecordList チェックボックスを True に設定します 3 VAFieldName プロパティで表示する列をまだ選択していない場合は選択します ( これを行うには リストボックスで右クリックして プロパティページにアクセスします VAFieldName の横にある省略ボタンをクリックし 列を選択します ) 4 プロパティページの VAFieldName プロパティで 目的のフィールドを選択します 使用可能なフィールド ( 列 ) をダブルクリックすると それを選択することができます [OK] をクリックします 5 引き続きプロパティページから ColumnWidth コンボボックスの隣の省略ボタンをクリックし [Multi- Column Listbox Tab Settings] ウィンドウを開きます 選択した最初のフィールドが表示されます 6 最初のフィールドの右側をダブルクリックして 最初のタブストップを設定します 破線が現れます この線をドラッグし この列に表示されるデータ用のスペースを確保します 選択した列のタブがすべて表示され調整されるまで ダブルクリックと線のドラッグを繰り返します 図 6 を参照してください 図 6 複数列リストボックスのタブ設定 7 このウィンドウとプロパティページで [OK] をクリックします 関連項目 影響元 : VARecordList 76

103 CompressData CompressData VAccess ( 非推奨 - 以前の I*net Data Server のみ ) IDS とデータを送受信する際のデータの圧縮を有効または無効にします VAccess コントロールが IDS 経由でリモートデータへのアクセスを試みないのであれば このプロパティは無視されます CompressData プロパティは IDS と通信する際に圧縮機能を使用するかどうかを決定します IDS は圧縮設定をクライアント単位で実行中に決定するので レコード要求とレコード要求の間であっても このプロパティは実行時に True または False に設定できます VAccess コントロールを使って IDS にアクセスする場合は LAN 上で標準 Btrieve リクエスタを使用する速度の遅いネットワーク経由でしかアクセスできないため このプロパティはほとんどの場合 True に設定しておく必要があります デフォルト値は True です 関連項目 Pervasive PSQL Programmer's Guide 77

104 ActiveX プロパティリファレンス DatabaseName VAccess 接続するデータベース名を指定します このプロパティは HostAddress および HostConnect を組み合わせて使用し ホスト名とデータベース名を指定します ActiveX ではデータベース URI を使用してデータベースに接続します ローカルドライブ マップされたドライブ あるいは UNC パスを使用してデータベースに接続する場合は DdfPath プロパティを参照してください データベースにセキュリティが設定されている場合 ユーザーはトランザクショナルインターフェイスでユーザー名とパスワードの入力が求められます メモこのプロパティは以前 I*net Data Server を使用してデータベースに接続する際に使用されていました デフォルト値は空白 ( 空文字列 ) です 関連項目 データベース URI の詳細については Pervasive PSQL Programmer's Guide を参照してください 影響先 : HostAddress HostConnect 78

105 DataLength DataLength VAccess ファイルに対する単一レコードオペレーションで使用されるレコードデータバッファーのバイト長を取得または設定します このプロパティはナビゲーション呼び出しの後に更新され 実際の現在のレコードサイズを取り込みます アクセスされたファイルに可変長フィールドがあり 返されたレコードが DDF で定義されている最大レコード長より小さい場合にのみ 初期 ( 事前呼び出し ) 値と異なった値になります 関連項目 影響元 : Buffer 79

106 ActiveX プロパティリファレンス DdfKeyUseIndexDDFOnly VAccess VAccess がファイルの実際のインデックスを使用するか あるいは DDF に指定されたインデックスを使用するかを指定します このプロパティが False の場合 VAccess コントロールは すべてのインデックス情報にステータスバッファーのインデックス情報を使用します ステータスバッファーにない情報 (IndexName など ) については DDF を使用します True の場合 VAccess は DDF 情報を排他的に使用します DDF が正しくない場合にこのプロパティの設定を True にすると すべてのキーベースのナビゲーション呼び出しがエラーになります デフォルト値は False です 関連項目 影響先 : IndexList 80

107 DdfPath DdfPath VAccess このコントロールに関連付けられた DDF ファイルが常駐するドライブとパスを設定します このプロパティは DDF データ定義ファイルの特定のセットに VAccess コントロールを接続します このプロパティを変更した場合は この DDF 内のテーブル名の 1 つを VAccess コントロールの TableName プロパティとして指定する必要があります 実行時にこのプロパティを変更する場合は 事前に VAccess コントロールと関連付けられた現在開いているファイルをすべて閉じてください 次に 新たな TableName プロパティとして 新しい DDF のテーブル名の 1 つを指定する必要があります 新規ファイルを開く前に新たに Location プロパティを指定する必要のある場合もあります メモ RefreshLocations が False の場合 DdfPath は変更できません OnRemote は DdfPath がエラーの時に呼び出されます この機能を使用して 実行時にパスを解決したり ユーザーに接続エラーを通知することができます DdfPath は次のうちいずれかの書式にできます ( 以下でします ) マップされたドライブ URL UNC マップされたドライブ 従来のドライブ名を用いる表記 (c:\path\datafile) は ActiveX の旧バージョンと同様 DdfPath プロパティで使用できます ドライブが見つからなかった場合 VAccess はパス環境設定を使用して IDSHOSTS と呼ばれるファイルを探します (LMHOSTS と同様 このファイルはネットワークあるいは IP アドレスにドライブ名をマップする際に使用されます 詳細については Pervasive PSQL Programmer's Guide を参照してください ) このファイルが見つかった場合は 要求されたパスを検索します 要求されたパスがマップされている場合 VAccess コントロールは指定の場所で IDS への接続を試みます URL (Uniform Resource Locator) 場所を指定するために URL も使用できます プロトコル固有のプレフィックスは リモート (IDS) 呼び出しの場合は pids ローカル呼び出しの場合は pmke です そのため ローカル呼び出しは pmke://{server}/ [path/.../][tablename] のような形式となり リモート呼び出しは pids://{server}/[path/.../] [tablename] のような形式となります UNC (Universal Naming Convention) UNC (\\server\path\datafile) は DdfPath エントリとしても使用できます ここではサーバーは LAN 上の Pervasive PSQL サーバー IDS サーバーあるいは IDS サーバーにマップされた IDSHOSTS のサーバーとすることができます サーバーが標準 IP アドレスあるいはドメイン名でない場合は VAccess はサーバー名をローカルで解決します その場所がローカルでは使用できない場合は VAccess は IDSHOSTS を使用してサーバー名を解決します 正常に解決できれば 呼び出しを IDS に再ルーティングします 81

108 ActiveX プロパティリファレンス 上記ののように DdfPath はローカルあるいはリモートのアクセスを指定する際に使用できます ( Pervasive PSQL Programmer's Guide も参照してください ) ただし リモートアクセスが要求された場合 HostConnect が True に設定されていない限り VAccess コントロールは IDS への接続を試みません また DdfPath プロパティと Location プロパティで 2 つの異なる IDS サーバーに同時にアクセスすることはできません そのため Location がリモートの場所に設定され DdfPath が別のリモートの場所に設定されている場合は Location プロパティのサーバー名は DdfPath によって指定された新たなリモートの場所を反映して変更されます Location がローカルディレクトリに設定されている場合 DdfPath は Location に影響しません HostAddress に URI を使用してサーバーが指定されている場合は DdfPath に指定されたサーバーはすべて無視されます メモ DdfPath が変更されると VAccess は新たなパスで DDF ファイルを読み取り 内部テーブルリストの FieldList と IndexList を更新します 例 ' 現在開いているファイルを閉じる Customers.Close ' 辞書情報をリフレッシュする Customers.RefreshLocations = True Customers.DdfPath = "v:\accounts" Customers.TableName = "customer002" Customers.RefreshLocations = False ' 場所の情報を設定する Customers.Location = "cust002.dat" ' ファイルを開く stat = Customers.Open 関連項目 影響先 : Location GetTableList IndexList FieldList 影響元 : RefreshLocations HostAddress HostConnect OnRemote イベント 82

109 DdfTransactionMode DdfTransactionMode VAccess DdfTransactionMode の設定により データ辞書テーブルへの更新がトランザクション内で実行されるかどうかが決定されます ブール値を受け付けます またはブール値を返します DdfTransactionMode は トランザクション内の DDF 辞書操作すべてをラップするので DDF ファイルに変更を行う場合は True に設定し その他の場合は False に設定してください デフォルト値は False です 関連項目 Pervasive PSQL Programmer's Guide 影響先 : GetTableList FieldList IndexList DdfModifyTableName DdfModifyLocation DdfGetFieldComments DdfAddTable DdfDropTable DdfAddIndex DdfDropIndex DdfDropIndexMaintain DdfCreateTable DdfCreateDictionary DdfAddTableName DdfClearIndexes DdfClearFields DdfSetOwner 影響元 : RefreshLocations 83

110 ActiveX プロパティリファレンス ExtendedOps VAccess Extended オペレーションの呼び出しは 選択されたフィールドおよび選択されたレコードと一致するレコードセットを一回の呼び出しで返します これらのオペレーションは 同じ結果を得るために何回も単一レコードオペレーションを行うよりもはるかに迅速に実行されます このプロパティが True の場合 VAccess コントロールは Extended Fetch メソッドを使用してレコードを取得できます ExtendedOps プロパティが False の場合 あるいは AutoMode プロパティが True に設定されている場合は Extended オペレーションを使用する GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended などのメソッドはすべて Extended オペレーションが使用できないことを示す -1 というコードを返します このプロパティが False ( デフォルト値 ) の場合 VAccess コントロールは Pervasive PSQL データファイルをナビゲートし 単一レコードフェッチオペレーションを使用してレコードを取得します 関連項目 影響元 : AutoMode CacheRows CancelDialog Column Columns ColumnName MaxBuffersize Row RowPosition Position Rows SelectedFields SelectedRecords RowColumnValue FieldValue CacheRejectMax Init GetNext GetPrevious StepNext StepPrevious GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended 84

111 FieldList FieldList VAccess DdfPath と TableName によって特定される現在のテーブルの フィールドに関する情報を含むバリアント配列を取得または設定します FieldList プロパティは 2 次元バリアント配列をカプセル化するバリアントを受け付けます あるいはそのバリアントを返します 最初の添字はフィールドの 1 つのプロパティを参照し 2 番目の添字はフィールドの序数を参照します 最初の添字が参照するプロパティは次のとおりです 添字名前バリアント型 0 fieldid VT_I2 フィールドテーブル辞書エントリ用の一意キーです 1 fieldname VT_BSTR フィールド名です 最大で 20 文字まで格納できます 2 datatype VT_I2 データ型コードです 3 offset VT_I2 レコードの開始点からのフィールドのオフセットです 4 size VT_I2 フィールドのサイズです 5 decimal VT_I2 固定小数点以下の桁数 あるいは BIT データ型フィールドのビットオフセッ トです 6 flags VT_I2 フィールドフラグです フィールドフラグの設定についてのは SQL Engine Reference を参照してください ("X$Field" を検索してください ) 7 comment VT_BSTR COMMENT.DDF に保存されるフィールドコメントです フィールド情報を設定する場合 バリアント配列は定義される各フィールドの最低量の情報を収容できる必要があります 必要な情報には テーブルの定義内で一意のフィールド名 有効なデータ型 複数のフィールド長をサポートするデータ型の有効なサイズなどがあります この配列のコメント列は DDFGetFieldComments メソッドが FieldList プロパティを読み取る前に呼び出された場合にのみ追加されることに注意してください RefreshLocations が True に設定されている場合は FieldList を読み取ると VAccess は DDF ファイルを再読み取りし DDF に保存されているフィールド情報を取得します RefreshLocations を True に設定して FieldList を変更しても すべての変更が即時に DDF 自体へ書き込まれなくなりました DDF へ変更を実際に書き込むには ここで DdfAddTable DdfModifyLocation などを呼び出す必要があります これは Pervasive PSQL SDK のリリース以降での動作の変更点です RefreshLocations が False の場合は FieldList オペレーションはフィールドの VAccess コントロールのメモリイメージを読み取り 更新します DdfTransactionMode と RefreshLocations がともに True に設定されている場合は FieldList のすべての操作はトランザクション内で実行されます 85

112 ActiveX プロパティリファレンス 例 ' フィールドの取得 Dim fields as Variant VAEngine.RefreshLocations = True VAEngine.DdfGetFieldComments = True VAEngine.TableName = tablename fields = VAEngine.FieldList VAEngine.RefreshLocations = False If Not IsEmpty(fields) For i = 0 to Ubound(fields, 2) ' リストボックスにフィールド名を入れる List.AddItem fields(1, i) Next i End If ' 設定 VAEngine.RefreshLocations = False VAEngine.FieldList = fields 'DDF へ変更を書き込む - RefreshLocations のリセットは不要 VAEngine.DdfAddTable(True) 関連項目 影響元 : DdfTransactionMode RefreshLocations 86

113 Fields Fields VAccess 関連ファイルに定義されたフィールドの合計数を返します 関連項目 影響先 : FieldList Join FieldNumber 影響元 : FieldList 87

114 ActiveX プロパティリファレンス FieldValue VAccess メモリ内の現在のレコード あるいは Extended Fetch レコードセットの現在の行に対して指定されたフィールドの値を取得または設定します 構文 object.fieldvalue(field) FieldValue プロパティの構文は次のような要素で構成されます 要素 object field 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 object 内の有効なフィールドを特定する 文字列のフィールド名あるいは整数のフィールドインデックスです データの読み書きはメモリ内の現在のレコードに対して行われます このレコードに対する変更は Update メソッドまたは Insert メソッドが呼び出されるまで Pervasive PSQL ファイルに保存されません 列に書式が設定されている場合は データ型にかかわらず その列の内容の値は必ず BStr として返されます ( コンテナは自動的にこれを String Variant AnsiString その他さまざまな文字データに解釈します ) 列に書式が設定されていない場合 値はその列のデータ型と最も近いバリアントとして返されます ほとんどのコントロールコンテナは BStr よりもバリアント (Variant) の戻り値の方がより簡単 迅速に操作でき インターナショナル化や書式の再設定を行うことができます そのため できるだけ書式設定されていない列を取得することをお勧めします このプロパティは設計時には使用できません コントロールの ExtendedOps プロパティが True の場合 field パラメーターには Row プロパティの値によって示される現在の行に含まれる列の列名 あるいは列インデックスを指定します パラメーターが指定されていない場合は 返される列は Column プロパティで指定された列になります FieldValue プロパティは コントロールの ExtendedOps プロパティが True の場合は読み取り専用です RowColumnValue メソッドを使用して Extended Fetch レコードセットから有効な Row 座標と Column 座標を基に値を返すこともできます 例 Dim stat As Integer VAccess1.FieldValue("msa_desc") = Text1.Text If Check1.FieldValue = 1 Then stat = VAccess1.GetEqual Else stat = VAccess1.GetGreaterOrEqual End If If stat = 0 Then Text1.Text = VAccess1.FieldValue("msa_desc") Text2.Text = VAccess1.FieldValue("population") Text3.Text = VAccess1.FieldValue(2) 88

115 FieldValue ' レコードの 3 番目のフィールド End If 関連項目 影響元 : ExtendedOps Row 89

116 ActiveX プロパティリファレンス FileVersion VAccess Pervasive PSQL stat 呼び出しを使用して現在のテーブルの Pervasive PSQL ファイルバージョンを返します このプロパティは テーブルが作成されたときにデータファイルに組み込まれた Pervasive PSQL の機能セットを示します これは そのテーブルにアクセス可能な Pervasive PSQL の最初のバージョンと一致します 90

117 FireEvents FireEvents VAccess VAccess コントロールのイベントの発生を有効または無効にします このプロパティを True に設定すると VAccess コントロールの OnRemote イベント Validate イベント Reposition イベントおよび GotData イベントの発生が有効になります アプリケーションでこれらのイベントにコードを含めない場合は このプロパティを False に設定することによってそれらのイベントを無効にすることができます 91

118 ActiveX プロパティリファレンス FocusSelText VAText このプロパティを True に設定すると VAText のテキストはテキストボックスがフォーカスを受け取ったときに選択されるようになります 92

119 HostAddress HostAddress VAccess アクセス対象データベースのホストとなるコンピューターの IP アドレスまたはドメイン名を指定します この接続にはデータベース URI を使用します TCP/IP エージェントの場合と同様 ドメイン名はコンピューターが DNS サーバーにアクセスできる場合にのみ解決できます さらに ドメイン名を使用すると ドメイン名が解決されなければ接続を確立できないため 接続時間が多少遅くなります 指定するのは IP アドレスまたはサーバー名のみです 明示的に URI を指定したり URI パラメーターを使用しないでください HostAddress および DatabaseName が指定されると ActiveX コントロールは URI を作成します Location や DdfPath と同様 このプロパティは HostConnect プロパティに従属します HostConnect が True の場合に HostAddress プロパティの値を変更すると 古い接続 ( 存在する場合 ) は閉じられ 新しい接続が試行されます ActiveX がサーバーへの接続を試行して失敗した場合は HostConnect プロパティは自動的に False に設定されます 別の接続を試行するには HostConnect を True に設定し直す必要があります HostAddress は DdfPath と Location のあらゆるサーバー設定に優先されます デフォルト値は空白 ( 空文字列 ) です 関連項目 Pervasive PSQL Programmer's Guide 影響先 : DdfPath Location 影響元 : HostConnect 93

120 ActiveX プロパティリファレンス HostConnect VAccess HostAddress プロパティと組み合わせて使用し データベース URI を用いた接続を開始あるいは終了します 任意の時点で現在の接続状態を問い合わせることもできます このプロパティが ActiveX コントロールに作用するのは HostAddress に値が入力された場合です このプロパティが True に設定されており HostAddress が空でなければ VAccess は要求されたサーバーとの接続を試行します サーバーアドレスを解決できない場合 あるいは接続が失敗した場合は その接続エラーの後 HostConnect プロパティは自動的に False に設定されます HostConnect は VAccess とローカル Btrieve リクエスターとの相互作用には影響しません デフォルト値は True です 関連項目 Pervasive PSQL Programmer's Guide 影響元 : DdfPath Location HostAddress 94

121 IncludeCurrent IncludeCurrent VAccess このプロパティを実行時に設定して 次に実行される Extended Fetch オペレーションのレコードセット結果に現在のレコードを含めるか あるいは後続のレコードから始めるかを決定します このプロパティの値を True に設定すると ファイル内の現在のレコード位置で次の Extended Fetch オペレーションが開始されます (Pervasive PSQL Extended Fetch API のレコード要求構造体で定数 "UC" を設定するのと同等です ) このプロパティの値を False に設定すると ファイル内の後続レコード位置で次の Extended Fetch オペレーションが開始されます (Pervasive PSQL Extended Fetch API のレコード要求構造体で定数 "EG" を設定するのと同等です ) このプロパティは Init メソッドが呼び出された後自動的に True に設定され Init に続けて最初の Extended Fetch オペレーションが実行された後自動的に False にリセットされます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響先 : GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended 影響元 : ExtendedOps Init GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended 95

122 ActiveX プロパティリファレンス IndexList VAccess DdfPath と TableName によって特定される現在のテーブルの インデックスに関する情報を含むバリアント配列を取得または設定します IndexList プロパティは 2 次元バリアント配列をカプセル化するバリアントを受け付けます あるいはそのバリアントを返します 最初の添字はインデックスセグメントの 1 つのプロパティを参照し 2 番目の添字はインデックスセグメントの序数を参照します 最初の添字が参照するプロパティは次のとおりです 添字名前バリアント型 0 IndexName VT_BSTR インデックスの一意の名前です 最大で 20 文字まで格納できます 1 IndexNum VT_I2 インデックス番号 ( 序数 ) です 2 SegNum VT_I2 インデックス内のこのセグメントのシーケンス番号です 3 FieldName VT_BSTR このセグメントによってインデックスを付けられたフィールド名です 最長で半角 20 文字まで使用できます 4 Flags VT_I2 インデックス属性ビットフラグ (Btrieve キーフラグスペックに準拠 ) です インデックス属性は物理データファイルとも関連付けられています このプロパティの設定によって 辞書のインデックスを定義することはできますが 物理データファイル内のインデックス属性は変更されません 既存データファイルのインデックス属性は DdfAddIndex メソッド DdfDropIndex メソッド DdfDropIndexMaintain メソッドを使用して変更することができます RefreshLocations が True に設定されている場合は IndexList を読み取ると VAccess は DDF ファイルを再読み取りし DDF に保存されているフィールド情報を取得します RefreshLocations を True に設定して IndexList を変更しても すべての変更が即時に DDF ファイル自体へ書き込まれなくなりました DDF へ変更を実際に書き込むには ここで DdfAddIndex DdfDropIndex または DdfDropIndexMaintain を呼び出す必要があります これは Pervasive.SQL 2000 SDK のリリース以降での動作の変更点です RefreshLocations が False の場合は IndexList オペレーションはインデックスの VAccess コントロールのメモリイメージを読み取り 更新します DdfTransactionMode と RefreshLocations がともに True に設定されている場合は IndexList のすべての操作はトランザクション内で実行されます DdfKeyUseIndexDdfOnly が True に設定されている場合は IndexList プロパティは常に DDF にある内容だけを反映します DdfKeyUseIndexDDFOnly が False の場合 IndexList はインデックス情報が更新されるたびにステータスバッファーから正しいインデックス情報を取得し ステータスバッファーに保持されない情報については DDF を使用します 例 Dim indexes as Variant 'index.ddf からインデックスを取得する VAEngine.DdfKeyUseIndexDDFOnly = True VAEngine.RefreshLocations = True VAEngine.TableName = tablename 96

123 IndexList 'DDF からインデックスを取得する indexes = VAEngine.IndexList VAEngine.RefreshLocations = False ' リストボックスでインデックス情報を表示する List1.Clear If Not IsEmpty(indexes) Then For i = 0 to Ubound(indexes,2) Temp = "" For j = 0 to Ubound(indexes, 1) Temp = Temp + CStr(indexes(j, i)) + vbtab Next j List1.AddItem Temp Next i End If ' データファイルからインデックスを取得する VAEngine.RefreshLocations = True VAEngine.DdfKeyUseIndexDDFOnly = False VAEngine.TableName = tablename TrueIndexes = VAEngine.IndexList VAEngine.RefreshLocations = False List1.AddItem " " ' リストボックスでインデックス情報を表示する List1.Clear If Not IsEmpty(indexes) Then For i = 0 to Ubound(indexes,2) Temp = "" For j = 0 to Ubound(indexes, 1) Temp = Temp + CStr(indexes(j, i)) + vbtab Next j List1.AddItem Temp Next i End If 関連項目 影響元 : RefreshLocations DdfPath TableName DdfTransactionMode 97

124 ActiveX プロパティリファレンス IndexNumber VAccess VAccess コントロールに関連付けられている Pervasive PSQL テーブルの現在のインデックス番号を取得または設定します このプロパティを使用して データファイルからレコードを取得する際に使用するインデックスを決定します データファイルのインデックス値の有効範囲は 0 から TotalKeys プロパティの値から 1 を引いた値までです このプロパティは 実行される Pervasive PSQL オペレーションによって別の意味になる場合があります 特定操作の値に関しては Pervasive PSQL Programmer's Guide を参照してください NNC (no-currency-change : カレンシー変更なし ) 操作を行いたい場合は KeyNumber プロパティを使用します Pervasive PSQL では インデックスはデータファイルで保持されます これらは順に番号を付けられ ゼロが最初のインデックスを示します Pervasive PSQL ファイルに定義されたインデックスはすべて このプロパティでそのインデックスのインデックス番号を指定することによって使用できます このプロパティの値はデータオンリーファイルに対して定義されていません Join は現在のインデックスに従属するため IndexNumber を変更すると現存の Join すべてが空白にされます 関連項目 影響先 : Join 影響元 : TableName 98

125 IntegralHeight IntegralHeight VACombo VACombo にフォントサイズの違いを考慮してサイズ調整させるようにします IntegralHeight プロパティが True に設定されていると VACombo のリスト部分はフォントサイズの違いを考慮してサイズが調整されます リストの下部の不要なスペースを削除するには このプロパティを使用します 99

126 ActiveX プロパティリファレンス Join VAccess コントロールで使用可能なレコードを制限し 別の VAccess コントロールのフィールド値を基準とする 関連テーブルのリレーショナルな位置を維持します IndexNumber プロパティまたは TableName プロパティを変更すると 現在の結合が消去されます 構文 object.join = "VAccessName:joinedField[, joinedfield]" Join プロパティの構文は次のような要素で構成されます 要素 object VAccessName joinedfield 結合対象の VAccess コントロール名です このコントロールが使用できるレコードは コントロールと関連付けられているファイルの全レコードのサブセットで これはコントロールの Join プロパティの条件によって制限されます マスターコントロールのデータソースとして働く object をリンクする VAccess コントロールの名前です VAccessName によって参照されるコントロールのフィールドの名前です 複数のフィールドを指定する場合は 名前をカンマで区切ります 名前を挙げた各フィールドの格納型と長さは IndexNumber プロパティに指定されている object に対して選択されたインデックスの対応するインデックスセグメントと同一である必要があります Join プロパティを使用して 1 対 1 あるいは 1 対多関係にある関連データファイルを自動的に同期させることができます VAccess コントロールは 1 つのファイルの現在のインデックスから別のファイル内のフィールドへ インデックスセグメントを参照することによって 階層的に結合することができます Join プロパティはこれを迅速に達成し 結合したファイルのレコードナビゲーションの最中に関係を自動的に更新していきます VAccess コントロールを別の VAccess コントロールに結合するには どのインデックスを使用するかを IndexNumber プロパティに指定してから Join プロパティにマスター VAccess コントロールの名前を指定し 次にコロン その後に結合したコントロールの選択されたインデックスの値と正確に一致するマスターコントロールのフィールド名を入力するだけです 例 4 つのテーブルがあるとします 1 Customers という名前のテーブルには CustomerName Adress Phone CompanyCode などの顧客に関する情報が含まれており CompanyCode によってインデックスが付けられています 2 Orders という名前のテーブルには CompanyCode OrderNumber OrderDate TotalAmount ShippingDate などの注文ヘッダー情報フィールドが含まれており CompanyCode と OrderNumber によってインデックスが付けられています 3 OrderLineItems という名前のテーブルには OrderNumber LineNumber Quantity ProductCode などの注文項目情報フィールドが含まれており OrderNumber と LineNumber によってインデックスが付けられています 100

127 Join 4 Products という名前のテーブルには ProductCode Description Price が含まれており ProductCode によってインデックスが付けられています CompanyCode から始まる注文 (Order) のスナップショットを取得するには CompanyCode で Orders を Customers に結合し OrderNumber で OrderLineItems を Orders に結合し ProductCode で OrderLineItems を Products に結合します ( 図 7 を参照してください ) CompanyCode ( 会社コード ) によって Customer ( 顧客 ) を取得すると その顧客のすべての注文 (Oders) 選択された各注文のすべての明細 (OrderLineItems) および選択された明細の正しい製品情報 (Products) がフェッチされます 別の注文あるいは別の明細を選択すると 以降のすべての結合コントロールのデータセットが再度同期化されます 図 7 結合テーブル例 Customers CustomerName Address Phone CompanyCode Join Join Orders CompanyCode OrderNumber OrderDate TotalAmount ShippingDate OrderLineItems OrderNumber LineNumber Quantity ProductCode Join Products ProductCode Description Price 顧客 ABC を問い合わせると その顧客の結合情報すべてがフェッチされます * ABC のすべての注文 * 選択された注文ごとのすべての明細 * 選択された製品のすべての製品情報 関連項目 影響元 : TableName IndexNumber 101

128 ActiveX プロパティリファレンス KeyNumber VAccess NCC (No-currency-change : カレンシー変更なし ) の Insert または Update オペレーションを行う場合は -1 を設定します このプロパティはプロパティシートでは使用できません しかし NCC の Insert または Update オペレーションを実行したいことを指定するには このプロパティを使用します たとえば 次のようにします.KeyNumber = -1 ' NCC ( カレンシー変更なし ) NCC ( カレンシー変更なし ) のオペレーションの詳細については Pervasive PSQL Programmer's Guide を参照してください 関連項目 影響先 : Insert Update 102

129 List List VACombo VAList コントロールのリスト部分の項目を取得または設定します リストは文字列配列で 各要素が 1 リスト項目になります VAList コントロールおよび VACombo コントロールがフィールドバウンドモードで動作する場合は 設計時にプロパティブラウザーから使用できます コントロールがレコードリストモードで動作する場合 実行時は読み取り専用です 構文 object.list(index) [= string] List プロパティの構文は次のような要素で構成されます 要素 object index string [ ] のオブジェクトを評価するオブジェクト式です リスト内の特定項目の番号です 項目を指定する文字列式です このプロパティはリスト項目にアクセスする際に使用します 空の場合 インデックスは -1 です リストの最初の項目は 0 で 最後の項目のインデックスは ListCount - 1 です 最初は コンボボックスおよびリストボックスコントロールには空のリストが入っています レコードリストモードで動作しているコントロール (VARecordList プロパティが True に設定されている ) の場合 リストは実行時にコントロールが作成されたときに存在する条件を基準にして作成されます List プロパティは ListCount プロパティおよび ListIndex プロパティと関連して動作します リストを 0 から ListCount -1 まで列挙すると リスト内のすべての項目が返されます フィールドバウンド (VARecordList プロパティは False) VACombo コントロールまたは VAList コントロールに表示する項目を指定するには AddItem メソッドを使用します 項目を削除するには RemoveItem メソッドを使用します アルファベット順で項目を保存するには リストに項目を追加する前に コントロールの Sorted プロパティを True に設定します Option Base = 1 ステートメントを Declaration セクションで使用しても Visual Basic コントロールの要素の列挙には影響しません 最初の要素は常に 0 です List のインデックスがリストボックスの実際のエントリの範囲外である場合は 長さゼロの文字列 (" ") が返されます 例 ' 一番最後に追加されたリスト項目のテキストを取得する Text1.Text = VAList1.List(VAList1.ListIndex) 103

130 ActiveX プロパティリファレンス Location VAccess VAccess コントロールに関連付けられている Pervasive PSQL ファイルのドライブ パス ファイル名を取得または設定します 設計時には Location プロパティのデフォルト値は TableName プロパティで指定されたファイルの DDF 定義の Table Location の値になります このプロパティは コントロールに関連付けられているデータベースファイルのオペレーティングシステムデバイス パス およびファイル名を表します このプロパティには 完全修飾されたパスとファイル名 あるいはファイル名だけを入れることができます ファイル名だけの場合 Open メソッドは DdfPath プロパティによって指定されたディレクトリのファイルを開こうとします Location プロパティの使い方の詳細については Pervasive PSQL Programmer's Guide を参照してください 例 ' 現在開いているファイルを閉じる Customers.Close ' 場所の情報を設定する Customers.RefreshLocations = True Customers.DdfPath = "v:\accounts" ' テーブル名を設定するとき ' 現在の場所が空白である場合は 'location は ddf ファイルで指定 ' された場所に設定される ' 別のデータファイルを使用する場合 ' 明示的にそれを指定する必要があるが ' この変更は DdfModifyLocation を呼び出すまで 'ddf ファイルには記録されない Customers.TableName = "customer002" Customers.Location = "cust002.dat" ' ファイルを開く stat = Customers.Open 関連項目 影響元 : DdfPath TableName RefreshLocations HostAddress HostConnect AutoOpen OnRemote 104

131 Locked Locked VAText コントロールが編集可能かどうかを示す値を取得または設定します 構文 object.locked [ = boolean] Locked プロパティの構文は次のような要素で構成されます 要素 object boolean [ ] のオブジェクトを評価するオブジェクト式です コントロールが編集可能かどうかを指定するブール式です True の場合 ユーザーはコントロール内のテキストをスクロールしたり反転表示させることはできますが 編集はできません ただし プログラムであれば Text プロパティを変更することによってテキストを修正できます False ( デフォルト ) の場合は ユーザーはコントロールのテキストを編集できます 105

132 ActiveX プロパティリファレンス MaxBufferSize VAccess このプロパティは Pervasive PSQL レコードマネージャーオペレーションに渡されるデータに対し コントロールによって割り当てられるバイト数を制限します 個々の Pervasive PSQL オペレーション用のデータバッファーの最大サイズは 64 KB です ExtendedOps が True で CacheRows が 0 に設定されている場合は MaxBufferSize の値によって CacheRows の値が決定されます 現在の Pervasive PSQL 構成に対してこの値を高く設定しすぎると ステータス 97 つまりデータバッファー長エラーがレコードマネージャーオペレーションから返されます 特に Pervasive PSQL レコードマネージャーとデータをやり取りする際にデータバッファー全体が使用されることの多い Extended Fetch オペレーションでは このエラーになります 関連項目 影響先 : Rows CacheRows 影響元 : ExtendedOps 106

133 MaxLength MaxLength VAText ユーザーが VAText に入力可能な最大文字数を決定します 値 0 は最大値がないことを示します コントロールに関連付けられたフィールドが英数字フィールド (Char VarChar LongVarChar データ型 ) の場合 このプロパティのデフォルト値は VASize プロパティに保存されているフィールド長となります その他の場合は MaxLength プロパティのデフォルト値は 0 で 最大値がないことを意味します 107

134 ActiveX プロパティリファレンス OemString VAccess このプロパティを True に設定すると 英数字フィールドに保存されたデータが ANSI 文字セットと OEM 文字セットの間で変換されます Char VarChar LongVarChar データ型などの英数字フィールドには 英語以外のデータ用の拡張 DOS 文字セットである OEM 文字セットで保存されたデータを入れることができます このデータは ANSI 文字セットに変換しなければ Windows で正しく表示できません このプロパティのデフォルト値は False です このプロパティを True に設定すると フィールドデータを読み取る際に OEM 文字セットから ANSI 文字セットに変換され 英数字フィールド情報がインデックス検索で使用されるとき あるいはファイルに書き戻されるときに ANSI 文字テキストから OEM テキストに変換されます 108

135 OpenMode OpenMode VAccess コントロールに関連付けられているファイルのオープンモードを取得または設定します このプロパティは VAccess コントロールに関連する Pervasive PSQL ファイルのファイルオープンモードを決定します 使用できるオープンモードは次のとおりです 0 - ノーマル 1 - アクセラレイティドアクセス 2 - リードオンリー 3 - ベリファイ 4 - エクスクルーシブ メモベリファイモードの使用は推奨されません OpenMode をベリファイに設定した場合 Pervasive PSQL ではファイルをノーマルモードで開きます このプロパティのデフォルト値は 0 ( ノーマル ) です たいていの場合 このモードを選択します ファイルは ほかのプロセスからそのファイルを開けないようにするエクスクルーシブアクセスや アプリケーションからファイルを変更できないようにするリードオンリーモードで開くこともできます アクセラレイティドアクセスモードとベリファイモードは Pervasive PSQL ではまったく効果がありません データベースを開く際には OpenMode の現在値が使用されます モードを変更するには データベースを閉じてから再度開く必要があります 関連項目 影響先 : Open 109

136 ActiveX プロパティリファレンス OwnerName VAccess OwnerName プロパティによって VAccess コントロールに関連するファイルを開く場合に使用される Pervasive PSQL オーナーネームを指定することができます オーナーネームプロパティは 設計時に入力することもできます あるいは AutoOpen プロパティが False の場合は 実行時にファイルを開く前に設定することもできます 不正なオーナーネームを指定すると あるいはオーナーネームを指定せず ファイルのオーナーネームセキュリティによりファイルを読み取り専用モードで開けない場合は ダイアログボックスが表示され アプリケーションがファイルを開こうとする際に ユーザーに対して正しいオーナーネームを指定するように要求します OwnerName は SetOwner メソッドで使用します 例 ' 現在開いているファイルを閉じる Customers.Close ' 場所の情報とオーナーネーム情報を設定する Customers.DdfPath = "v:\accounts" Customers.TableName = "customer002" Customers.Location = "cust002.dat" Customers.OwnerName = "password" ' ファイルを開く Customers.Open 関連項目 影響先 : Open SetOwner 110

137 PageSize PageSize VAccess Pervasive PSQL データファイルのページサイズを取得または設定します DdfCreateTable メソッドの呼び出しの前にこのプロパティを設定して 作成されるデータファイルのぺージサイズを決定します 既存のデータファイルの場合 このプロパティはファイルで使用されているぺージサイズを返します 既存ファイルに対してこのプロパティを設定してもまったく効果はありません 有効なページサイズの範囲は Pervasive PSQL データファイルのファイルバージョンによって異なります 9.0 より前のファイルバージョの場合 : 512 バイト ~ 4,096 バイト (512 バイトの倍数で最大 4,096 バイト ) ファイルバージョン 9.0 の場合 :512 1,024 1,536 2,048 2,560 3,072 3,584 4,096 8,192 ( 値はバイト単位 ) ファイルバージョンが 9.5 以上の場合 : 1,024 2,048 4,096 8,192 16,384 ( 値はバイト単位 ) 新たにステータスバッファーをファイルから取得することになるすべてのオペレーションでは この値がリセットされます (Stat を参照 ) 関連項目 影響先 : DdfCreateTable 影響元 : Stat TotalRecords 111

138 ActiveX プロパティリファレンス Percentage VAccess 関連する Pervasive PSQL ファイルの現在選択されているインデックスパスに従って 指定された相対位置で取得するレコードを設定します あるいは現在のレコードの相対位置を返します 構文 object.percentage [= value] Percentage プロパティの構文は次のような要素で構成されます 要素 object value [ ] のオブジェクトを評価するオブジェクト式です 0.00% から % までに対応する 0 から までの範囲の Long 型整数値です 実行時にこのプロパティを設定すると 現在のインデックスパスに基づくおおよそのパーセント位置にあるレコードが取得されます このプロパティを実行時に読み取ると 現在のレコードの位置を示す同範囲内の値が返ります このプロパティを実行時に設定すると 関連付けられたファイルで Pervasive PSQL GetByPercentage オペレーションが実行されます オペレーションのステータスはコントロールの Status プロパティに返されます ステータス 0 は正常終了を示します このプロパティを実行時に読み取ると Pervasive PSQL FindPercentage オペレーションが実行され オペレーションの結果が返されます これらのオペレーションは MKDE 6.x 以降のバージョンにあります 値の範囲は 0.00 から パーセントを表す 0 から 10,000 までです ( または 精度を指定する場合は 0 から 0xFFFFFFFF までです Btrieve API Guide の Get By Percentage (44) および Find Percentage (45) を参照してください ) xxpercentage オペレーションの精度は さまざまな条件によって決まります ExtendedOps プロパティが False である場合 このプロパティを実行時に設定すると 関連ファイルで GetByPercentage オペレーションが実行されます ExtendedOps が True の場合は このプロパティを設定すると 現在の Row プロパティ値が現在の Extended オペレーションバッファー内で指定されたパーセント値に移動されます ExtendedOps プロパティが False である場合 このプロパティを実行時に読み取ると FindPercentage オペレーションが実行され オペレーションの結果がプロパティ値として返されます ExtendedOps が True の場合は 返された値は現在の Extended オペレーションバッファー内の現在の行のパーセント値を表します 例 ' 現在のインデックスパスを基に 中間にあるレコードの位置を確立する Customer.Percentage = 5000 ' スクロールバーのスクロールボックスを 現在のレコードの位置にセットする VScroll1.Max = VScroll1.Min = 0 VScroll1.FieldValue = Customer.Percentage 関連項目 影響先 : Buffer 112

139 Port Port VAccess ( 非推奨 - 以前の I*net Data Server のみ ) クライアントが IDS と通信する際に使用するポート番号を取得または設定します VAccess コントロールが IDS 経由でリモートデータへのアクセスを試みないのであれば このプロパティは無視されます このプロパティの値は IDS ポート番号が変更された場合にのみ変更してください クライアントポートと IDS ポートの設定が異なっていると クライアントは IDS に接続できなくなります IDS クライアントコンポーネントすべてに対するデフォルト値は 2441 です ActiveX が IDS ホストに接続されている間にポートプロパティが変更された場合 この変更は次の接続が行われるまで有効になりません ポートの変更を強制的に有効にするには 1 HostConnect を False に設定します 2 ポート番号を変更します 3 HostConnect を True に設定し直して新しい接続を強制し 新たなポート設定で動作させます 113

140 ActiveX プロパティリファレンス Position VAccess VAccess コントロールに関連付けられた Pervasive PSQL テーブルの現在のレコードの物理位置の値を返します 物理位置を必要とする 後続のメソッドが使用する物理位置を設定します このプロパティは設計時には使用できません Position プロパティは Pervasive PSQL ファイルの個別レコードを一意に識別する Long 型整数です GetDirect メソッドを呼び出す前にこのプロパティを設定して ファイルのインデックス検索を行わずに 直接このプロパティで識別されるレコードを取得します データファイルのレコードを取得するときに このプロパティの値を使って個々のレコードに ブックマーク を付けておくことができます データコントロールは Position プロパティ値が現在値かどうかを追跡します プロパティ値が現在値でないときにプロパティを読み取ると コントロールは GetPosition 呼び出しを行って現在の値を返します コードでこのプロパティ値を設定すると その値は内部的に現在値とマークされますが 現在のポジショニングの変更は行いません これは GetDirect メソッドを呼び出すことによって実行されます 例 Dim bookmark As Long ' 多数の重複可能キーエントリの最初のエントリを取得し ' レコードにブックマークを付ける Customer.IndexNumber = 3 'companyname Customer.FieldValue("companyName") = "Consolidated Inc" stat = Customer.GetEqual bookmark = Customer.Position ' 重複可能レコードの数をカウントする While stat = 0 And Customer.FieldValue("companyName") = "Consolidated Inc" dups = dups + 1 stat = Customer.GetNext Wend ' 最初の重複可能レコードのポジショニングを再確立し ロックする Customer.Position = bookmark stat = Customer.GetDirect (BTO_SingleNoWait) 関連項目 影響先 : GetDirect 影響元 : ExtendedOps Row GetDirect GetEqual GetFirst GetGreater GetGreaterOrEqual GetLast GetLess GetLessOrEqual GetNext GetNextExtended GetPrevious GetPreviousExtended StepFirst StepLast StepNext StepNextExtended StepPrevious StepPreviousExtended 114

141 RefreshLocations RefreshLocations VAccess RefreshLocations は VAccess コントロールがメタデータについて DDF ファイルを使用するのか あるいは 内部状態と永続的なプロパティ ( 一方または両方 ) を使用するのかを決定します RefreshLocations が True の場合は VAccess コントロールは DDF ファイルへのパススルーの役割をします つまり メタデータへの要求はすべて DDF ファイルから直接再読み取りされます メタデータの操作は VAccess コントロールのメタデータのメモリイメージだけに影響します 変更内容を存続させるには DdfAddTable などを明示的に呼び出す必要があります このプロパティが True の場合 ActiveX データソースコントロールと関連付けられているテーブルメタデータは コントロールがインスタンス化される際に読み取られます このプロパティは ActiveX コントロールが DDF 情報を頻繁に更新するのを防ぎます RefreshLocations が False に設定されている場合は ActiveX は DDF 情報を持続することができるため DDF セットが変更されないことを前提として ActiveX を使用するアプリケーションを対応する DDF ファイルのセットを伴わずに再配布することができます DDF ファイルを変更するには 1 RefreshLocations を True に設定します 2 現在の DDF 情報を取得します (RefreshLocations = True とすると ファイルが直接取得されます ) 3 IndexList と FieldList を適宜変更します ( 変更は VAccess メモリイメージに保存されます ) 4 DdfAddTable を呼び出して 変更を DDF ファイル自体へコミットします 例 'RefreshLocations を True に設定すると ' コントロールは必要な情報をすべて ddf ファイルから読み取れるようになる VAEngine.RefreshLocations = True VAEngine.DdfPath = path VAEngine.TableName = tablename VAEngine.RefreshLocations = False 関連項目 影響先 : FieldList IndexList DdfModifyTableName DdfModifyLocation DdfAddIndex DdfDropIndex DdfDropIndexMaintain DdfClearIndexes DdfClearFields DdfSetOwner DdfGetFieldComments TableName DdfPath DataLength 115

142 ActiveX プロパティリファレンス Row VAccess このプロパティは実行時に設定し FieldValue プロパティおよび RowPosition プロパティに対して Extended Fetch レコードセット内の現在の行を特定します Row プロパティは Column プロパティと組み合わせて使用され FieldValue プロパティが Extended Fetch レコードセットのどのフィールドの値を参照するかを指定します AutoMode が False の場合 Row プロパティの範囲は 1 から最後の行のインデックスになります AutoMode が True の場合 Row をこの範囲よりも大きな値に設定すると VAccess コントロールは要求が満たされるまで あるいはゼロ以外のステータスが返されるまで Extended Fetch オペレーションを実行します 結果として Rows プロパティが更新されます このプロパティは設計時には使用できません VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 Dim total As Currency Dim count As Integer ' この例は GetNextExtended Op バッファーを 1 つだけ追加する Orders.GetFirst Orders.GetNextExtended total = 0 Orders.Column = 1 For count = 1 To Orders.Rows Orders.Row = count total = total + Orders.FieldValue Next count Text1.Text = total 関連項目 影響先 : FieldValue RowColumnValue Position RowPosition GetPrevious GetNext StepPrevious StepNext 影響元 :ExtendedOps AutoMode GetPreviousExtended GetNextExtended StepPreviousExtended StepNextExtended Init 116

143 RowPosition RowPosition VAccess このプロパティは Extended Fetch レコードセットの Row に対応するレコードの Pervasive PSQL 物理レコード位置を返します このプロパティは設計時には使用できません 実行時は読み取り専用です これは Extended Fetch オペレーションで取得された特定レコードに現在位置を設定する あるいはそのレコードをロックする際に使用できます このプロパティには Extended Fetch オペレーションが実行時に正常に実行された後 または AutoMode プロパティが True の場合は Extended Fetch オペレーションの Init メソッドが実行時に呼び出された後にのみ 有効なデータが入ります VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響元 : ExtendedOps Row 117

144 ActiveX プロパティリファレンス Rows VAccess Extended Fetch オペレーションによって返されたデータの行数を返します このプロパティは設計時には使用できません 実行時は読み取り専用です このプロパティには Extended Fetch オペレーションが実行時に正常に実行された後 または AutoMode プロパティが True の場合は Extended Fetch オペレーションの Init メソッドが実行時に呼び出された後にのみ 有効なデータが入ります AutoMode プロパティが True の場合は Rows プロパティは このコントロールに対して前回 Extended Fetch オペレーションの Init メソッドが呼び出された以降にキャッシュされた行の総数を示します その他の場合は 直前に実行された Extended Fetch オペレーションによって返された行数を示します VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 Dim total As Currency Dim colcount, rowcount As Integer Orders.GetFirst Orders.GetNextExtended total = 0 For rowcount = 1 To Orders.Rows Orders.Row = rowcount For colcount = 1 To Orders.Columns Orders.Column = colcount total = total + Orders.FieldValue Next colcount Next rowcount Text1.Text = total 関連項目 影響元 :ExtendedOps CacheRows GetPreviousExtended GetNextExtended StepPreviousExtended StepNextExtended 118

145 SelectedFields SelectedFields VAccess Extended Fetch レコードセットに返されるフィールドを列挙します SelectedFields プロパティに指定されるフィールドは Extended Fetch オペレーションで返されるレコードセットの Columns と対応しています SelectedFields リスト内のフィールド名は VAccess コントロールが参照するテーブルの有効なフィールド名である必要があり カンマで区切られていなければなりません このプロパティを空白のままにしておくと データファイルに定義されたフィールドすべてが Extended Fetch レコードセットの列に割り当てられます 列はレコード内の各フィールドのオフセットに従って順序付けられます ( フィールドがファイルの DDF 定義に表示されるのと同じ順序です ) このプロパティに値が指定されている場合 返される列の順序は SelectedFields プロパティにリストされたフィールドの順序と同じです これは 必ずしもファイルの DDF 定義での出現順序とは限りません VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 Dim allnames as String If OptionButton1 = True Then allnames = "msa_desc, population" else allnames = "msa_desc, prev_population" End If VAccess1.SelectedFields = allnames ' 正しい位置を確立するため GetFirst を呼び出す必要がある VAccess1.GetFirst 'SelectedFields を変更後 Init メソッドを呼び出す必要がある VAccess1.Init VAccess1.GetNextExtended 関連項目 影響先 : SelectedRecords CacheRows Columns ColumnName 影響元 : SelectedRecords ExtendedOps Init 119

146 ActiveX プロパティリファレンス SelectedRecords VAccess SelectedRecords プロパティによって フィルター条件を指定して Extended Fetch レコードセットに返されるレコードの範囲を制限することができます 構文 object.selectedrecords = fieldname operator (fieldname または "constant") [[conjunction fieldname operator (fieldname または "constant")]...] SelectedRecords プロパティの構文は次のような要素で構成されます 要素 fieldname 値によってフィルターするフィールドの名前です これには object が参照するファイルの有効なフィールドをどれでも指定できます SelectedFields プロパティで指定されているフィールドの 1 つである必要はありません operator constant conjunction 次の論理演算子の 1 つです > ( より大きい ) < ( より小さい ) = ( 等しい ) <> ( 等しくない ) >= ( 以上 ) または <= ( 以下 ) 定数値です 定数値は前後に引用符 (Chr$ (34)) を付ける必要があります 複数のフィルター比較が必要な場合は & (and) または (or) の連結演算子のいずれかで結合する必要があります このプロパティを空白のままにすると フィルター処理は行われません つまり 現在のインデックスパスでの出現順序ですべてのレコードを返します 文字列フィールドの比較では テーブルを定義したときにフィールドに大文字小文字の区別をしないフラグが付けられていない場合を除き 大文字小文字を区別します かっこはサポートされません フィルター条件は 出現する順に論理的に解決されます テキストフィールドを定数値と比較する場合 SelectedRecords フィルターは定数の文字数とフィールドの文字数のうちの小さい方を比較します たとえば 次のようなフィルターがあるとします city = "B" このフィルターは city フィールドの最初の文字が "B" で始まるすべてのレコードを返します たとえば Baltimore Boise Boston および Butte などです VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります SelectedRecords フィルターが有効になる前に Init メソッドが呼び出されている必要があります 関連項目 影響元 : SelectedFields ExtendedOps Init 120

147 SessionID SessionID VAccess クライアントが使用するセッション ID を取得または設定します これは BTRVID 呼び出しに使用されるクライアント ID の最後の 2 バイトを設定します これは トランザクションがコントロールで使用される場合に設定してください スレッドに対して安全 ( スレッドセーフ ) なトランザクションを提供することに加え アプリケーションに対して安全なトランザクションも提供します ただし これを設定すると サーバー上で使用されるシート数も増加します 関連項目 影響先 : すべての Btrv オペレーション 121

148 ActiveX プロパティリファレンス Status VAccess VAccess コントロールに関連付けられたファイルに対する最新の Pervasive PSQL オペレーションから Pervasive PSQL ステータスを返します Pervasive PSQL ステータスコードのリストについては Pervasive PSQL でインストールされている Status Codes and Messages ヘルプを参照してください 関連項目 影響元 : すべての Btrv オペレーション 122

149 TableName TableName VAccess TableName は DdfPath プロパティによって指定される DDF セットに定義されているすべてのテーブルのうち どのテーブルがコントロールと関連付けられるかを示します 有効な TableName が設定されると AutoOpen = True であれば コントロールは現在のファイルを閉じ 現在の場所で要求されたテーブルを開こうとします TableName が無効な場合 コントロールは正常にファイルを開いたりデータを取得したりすることができません このプロパティを使用して現在のテーブル名を変更することはできません 現在のテーブル名を変更するには DdfModifyTableName を使用できます メモテーブルの辞書情報を取得する場合は RefreshLocations は True である必要があります 例 Dim Index As Integer index = Combo1.ListIndex If index > -1 Then ' リストから選択済み VAccess1.Close VAccess1.RefreshLocations = True VAccess1.RefreshLocations = False VAccess1.TableName = Combo1.List(index) VAccess1.Open Select Case index Case 0 VAList1.VAFieldName = "msa_desc. population" Case 1 VAList1.VAFieldName = "user_name. customer_code" Case 2 VAList1.VAFieldName = "order_date. order_number" End Select VAccess1.GetFirst End If 関連項目 影響先 : FieldList IndexList IndexNumber Join 影響元 : DdfAddTableName DdfAddTable DdfModifyTableName 123

150 ActiveX プロパティリファレンス TimeOutVal VAccess ( 非推奨 - 以前の I*net Data Server のみ ) 接続タイムアウトエラーを報告する前に クライアントが IDS からの応答を待機する時間 ( 秒数 ) を取得または設定します VAccess コントロールが IDS 経由でリモートデータへのアクセスを試みないのであれば このプロパティは無視されます この待機制限時間が過ぎると コントロールは WSAETIMEDOUT という Winsock エラーを用いて CommError イベントを発生させます この制限は Winsock 実装面での問題の都合上 可能な Winsock オペレーションのサブセットだけに適用されます この値を変更する必要があるのは 帯域幅が非常に少ないため あるいは多数の回復不能エラーのためにタイムアウトが発生する場合だけです デフォルト値は 120 です 124

151 TotalRecords TotalRecords VAccess VAccess コントロールに関連付けられた Pervasive PSQL ファイルに含まれているレコード数を返します レコードの総数はほかのユーザーのせいで変わる可能性があります この値を取得すると 正確なレコード数を確保するために Stat 呼び出しが強制的に実行されます その結果 ステータスバッファーの状況を反映するプロパティは このプロパティによって上書きされます 影響を受けるプロパティは PageSize PercentFreeSpace PreallocatedPages および ReservedDupPointers などです また このプロパティをリモートファイルで実行すると stat 要求がリモートサイトで実行され アプリケーションの速度が遅くなる場合があります 例 Dim NumRecords as Long NumRecords = VAccess1.TotalRecords 関連項目 影響先 : PageSize 影響元 : STAT 125

152 ActiveX プロパティリファレンス Uppercase VAText VAText のテキストに適用される大文字小文字の書式設定タイプを取得または設定します 次の 3 つの設定が可能です 0 - 大文字小文字を強制しない 1 - 大文字 2 - 小文字 このプロパティ値が 0 の場合 テキストボックスのテキストは入力どおりに表示されます 1 の場合はテキストボックスのテキストはすべて大文字で表示されます 2 の場合はテキストボックスのテキストはすべて小文字で表示されます 126

153 VAccessName VAccessName VACheck VACombo VACommand VAHScroll VAList VAOption VAText VAVScroll データアウェアコントロールとバインドするデータソースオブジェクト (VAccess コントロール ) を指定します レコードナビゲーションコントロールの VACommand VAHScroll VAVScroll の場合は VAccessName プロパティはコントロールのバインド処理を定義します フィールドバウンドコントロールの フィールドバウンドモードの VACombo フィールドバウンドモードの VAList VACheck VAOption および VAText がバインドするためには VAFieldName プロパティに有効なフィールド名を指定することも必要です 設計時に VAccessName プロパティを設定すると VAFieldName プロパティで利用可能な VAccess コントロールと関連付けられているフィールドのリストが作成されます 127

154 ActiveX プロパティリファレンス VAAutoScroll VAList このプロパティを False に設定すると リストがオートフィルレコードリストとして使用されている場合 (VARecordList = True) も 現在選択されている VAList 項目が自動的にリストの一番上へスクロールされなくなります レコードリストの VAList (VARecordList = True) のデフォルトの動作では 現在のレコードの位置がリストボックスによって あるいはスクロールバーや GetEqual コマンドなどその他の手段によって変更されたかどうかにかかわらず 現在のレコードがリストボックスの最初の項目になるようにします VAAutoScroll が False の場合は このデフォルトの動作は無効化され リストボックス以外のソースによって位置が変更された場合にのみ VAList は現在のレコードをリストの一番上へ移動させます つまり リストボックスの項目をクリックすると VAccess コントロールの位置は変更されますが リストボックスの項目は変更されません 128

155 VADataType VADataType VACheck VACombo VAList VAOption VAText フィールドコントロールにバインドされたフィールドのデータ格納型コードを取得または設定します VADataType プロパティは コントロールにバインドされたデータフィールドのデータ格納型コードを指定します このプロパティは設計時には使用できません 129

156 ActiveX プロパティリファレンス VADebugMode Vaccess VACheck VACombo VACommand VAHScroll VAList VAOption VAText VAVScroll コントロールに対するデバッグモードのエラーチェック機能を有効または無効にします このプロパティはアプリケーションの設計時 あるいはデバッグ時に使用すると便利です このプロパティを True に設定すると デバッグレベルのエラーチェックが有効になります VADebugMode を False に設定すると エラーチェックが無効になります 130

157 VADecimal VADecimal VACheck VACombo VAList VAOption VAText 固定小数点データ型フィールドの固定小数点以下の桁数を取得または設定します Numeric データ型や Decimal データ型などの固定小数値型の格納フィールドの場合 VADecimal プロパティはコントロールに関連付けられているフィールドについて 小数点の右側に表示される桁数を返します 小数点以下の桁数は コントロールの VAccessName プロパティで指定された VAccess コントロールに関連付けられている DDF ファイルから取り込まれます 特定の固定小数値の格納データ型だけがこのプロパティを使用します またこれは ビット位置を示すためにビットデータ型によっても使用されます Xtrieve も DDF 辞書でこのフィールドを使用して Note フィールドの区切り文字の値を指定していました このプロパティは設計時には使用できません 131

158 ActiveX プロパティリファレンス VAErrorDialog VACommand Pervasive PSQL オペレーションがエラーとなったときに ユーザーにダイアログボックスを表示するかどうかを設定します このプロパティが True の場合は コマンドボタンによって実行された Pervasive PSQL オペレーションがエラーとなったとき アプリケーションは実行時にユーザーへダイアログボックスを表示します このプロパティが False ( デフォルト値 ) の場合は コマンドボタンによって実行された Pervasive PSQL オペレーションがエラーになったとしても コントロールは実行時にユーザーにエラーを知らせるダイアログボックスを表示しません 代わりに エラー状態を示すステータスコードを VAccess コントロールの Status プロパティで取得できます 132

159 VAFieldName VAFieldName VACheck VACombo VAList VAOption VAText コントロールに関連付けられるフィールドのフィールド名を設定します 値の取得も可能です フィールドバウンドコントロールの場合 このプロパティはコントロールのバインド先であるフィールドのフィールド名を取得または設定します このフィールドを バウンドコントロールの VAccessName プロパティで指定した VAccess コントロールから提供される有効なフィールド名に設定すると 現在のレコード内の指定されたフィールドにバインドされます VAccess コントロールが Extended オペレーションモードで コントロールの SelectedFields プロパティにフィールド選択条件が指定されている場合 フィールドバウンドコントロールがバインドできる有効なフィールド名は VAccess コントロールの有効な ColumnName 値のセット (SelectedFields にリストされたフィールド ) に限定されます VACombo コントロールでインデックス選択専用のコンボボックスを実装する場合にも このプロパティが使用されます これによってユーザーは プログラム実行中に任意のインデックスパスの選択が可能になります VACombo を [Index Selection] ボックスにするには VAFieldName プロパティの値として [Index List] を選択します 複数列レコードリストモードの VAList コントロール (VARecordList プロパティが True) の場合は VAFieldName プロパティにはセミコロンで区切ったフィールドリストが入ります 133

160 ActiveX プロパティリファレンス VAFormat VACombo VAList VAText このプロパティでは コントロールによって表示されるフィールド値の書式文字列を指定できます 有効な書式文字列とその意味のリストについては Visual Basic 言語リファレンス マニュアルで Format 関数を参照してください 複数列レコードリストモードの VAList コントロール (VARecordList プロパティが True) の場合は VAFormat プロパティにはセミコロンで区切った書式のリスト ( コントロールの VAFieldName プロパティに指定されているフィールドごとに 1 つの書式 ) が入ります VAFormat プロパティは Visual Basic で使用されるものと類似の書式文字列を使用してデータを整列するためのプロパティです Visual Basic 共通の書式文字列 ( 表 32 を参照 ) は事前に定義されており 日付および数値のカスタム書式もサポートしています これらの動作方法に関する詳細については Visual Basic 言語リファレンス を参照してください 表 32 Visual Basic 共通の書式文字列 書式文字列 ( 空の文字列 ) デフォルトの書式 数値を General Number 書式 通貨金額を Currency 書式 日付と時刻を General Date 書式 論理フィールドを True/False 書式で表示します General Number Currency Percent True/False General Date Long Date Short Date Long Time 千単位の区切り記号を付けずに そのまま数値を表示します 千単位の区切り記号を付けて数値を表示します 小数点以下は 2 桁まで表示します 出力はシステムのロケール設定に基づいて行われることに注意してください 数値を 100 倍にして 右側にパーセント記号 (%) を付けて表示します 小数点以下は常に 2 桁で表示します 数値が 0 の場合は False を それ以外の場合は True を表示します 日付か時刻 または両方を表示します 実数の場合は 日付と時刻 ( 例 4/3/93 05:34 PM) を表示します 小数部分がない場合は日付だけ ( 例 4/3/93) 整数部分がない場合は時刻だけ ( 例 05:34 PM) を表示します 日付の表示はシステム設定によって決まります システムの長い日付書式に従って日付を表示します システムの短い日付書式に従って日付を表示します システムの長い時刻書式に従って 時分秒を含む時刻を表示します Short Time 24 時間制を使用して時刻を表示します ( 例 17:45) カスタム数値書式は Visual Basic によって提供される書式と同様に使用できますが すべてのオプションがサポートされているわけではありません 埋め込み文字列リテラルの - + ( ) $ を使用できます これによって電話番号を書式設定できます 例 :(000) [\] または "" を使用するその他の埋め込み文字列は機能しません 134

161 VAFormat カスタマイズされた科学的表記は機能しません [0] のプレースホルダーは正常に機能します 明示的に制限されていない限り 浮動小数点値は小数桁を表示します [#] のプレースホルダーは整数に対して有効です 浮動小数点値は予期せずに切り捨てられる場合がありますが 制限されていない限り小数桁を表示します 曜日を使用する場合 午前 0 時に近い時刻では 丸めのエラーによって間違った曜日が表示される可能性があります 例 VAccess1.TableName = "Billing" VAText1.FieldName = "Amount_Due" VAText1.VAFormat = "Currency" VAText2.FieldName = "Log" VAText2.VAFormat = "mmm ddd yyyy" 135

162 ActiveX プロパティリファレンス VALockBias VACommand VACommand コントロールの VAOperation プロパティに指定された Pervasive PSQL オペレーションのロックバイアスを設定します Pervasive PSQL は単一レコードロックおよび複数レコードロックともにサポートします レコードロックが使用されている場合 レコードは読み取り時にロックされます VALockBias プロパティは Open Close Insert Update または Delete の各オペレーションが VAOperation プロパティで指定されている場合 まったく効果がありません 単一レコードロックは 別のレコードが読み取られるか あるいはレコードが挿入 更新 または削除されるたびに解放されます 複数レコードロックは コントロールの Unlock メソッドを呼び出すことによって 個々のレコードまたはすべてのレコードのロックを解放できます ロックエラーでの再試行はプログラマ自身で行ってください 136

163 VAOffset VAOffset VACheck VACombo VAList VAOption VAText バインドされたフィールドの レコードバッファーにおける格納オフセットを取得または設定します オフセットは コントロールの VAccessName プロパティで指定された VAccess コントロールに関連付けられている DDF ファイルから取り込まれます このプロパティは設計時には使用できません 137

164 ActiveX プロパティリファレンス VAOperation VACommand VACommand が押されたときに実行される Pervasive PSQL オペレーションを取得または設定します このプロパティでは 次のレコードオペレーションを実行できます 表 33 VAOperation プロパティで使用可能なレコードオペレーション 0 - Open 関連する Pervasive PSQL データファイルを開きます 1 - Close 関連する Pervasive PSQL データファイルを閉じます 2 - Insert 現在のレコードバッファーの内容を新しいレコードとして挿入します 3 - Update 現在のレコードをレコードバッファーの内容で更新します 4 - Delete 現在のレコードを削除します 5 - Get Equal 現在のインデックスパスで 指定されたキー値と正確に一致するキー値を持つ最初のレコードを取得します 6 - Get Next 現在のインデックスパスで次のレコードを取得します 7 - Get Previous 現在のインデックスパスで前のレコードを取得します 8 - Get Greater 現在のインデックスパスで 指定されたキー値より大きいキー値を持つ最初のレコードを取得します 9 - Get Greater or Equal 現在のインデックスパスで 指定されたキー値と等しいか より大きいキー値を持つ最初のレコードを取得します 10 - Get Less 現在のインデックスパスで 指定されたキー値より小さいキー値を持つ最初のレコードを取得します 11 - Get Less or Equal 現在のインデックスパスで 指定されたキー値と等しいか より小さいキー値を持つ最初のレコードを取得します 12 - Get First 現在のインデックスパスで最初のレコードを取得します 13 - Get Last 現在のインデックスパスで最後のレコードを取得します 138

165 VARecordList VARecordList VACombo VAList このプロパティを True に設定することによって リストボックスあるいはコンボボックスコントロールのモードがフィールドバウンドコントロールからレコードブラウザーに変わります VARecordList プロパティによって リストコントロールには保持できるだけのレコードが入ります このリストの一番上にある項目は現在のレコードです ( ただし VAAutoScroll プロパティが False に設定されている場合を除きます この場合は 選択されたリスト項目が現在のレコードを表します ) VARecordList = True の場合は いくつかの追加機能を利用でき 設計時にはプロパティページのボタンからアクセスできます VAFieldName プロパティおよび VAFormat プロパティは コントロールがフィールドバウンドモード (VARecordList プロパティが False) の場合にはエントリが 1 つに限定されますが このモードでは それぞれセミコロンで区切ったフィールドのリストと書式のリストを格納することができます また VAAutoScroll プロパティと ColumnWidth プロパティがアクティブになります 139

166 ActiveX プロパティリファレンス VASearch VAText VAText を参照テキストフィールドにできます そのコントロールの VAFieldName プロパティは無効になり 現在バインドされているフィールドを記述するために使用されるすべてのプロパティが無効になります 代わりに テキストボックスは バインドされている VAccess の現在のインデックスの最初のセグメントとは依然として同期したままです ユーザーがテキストボックスの内容を変更すると VAccess コントロールで GetGreaterOrEqual が実行されることになります 内容は別のコントロール ( たとえば スクロールバーの移動あるいは GetEqual コマンド ) によって発生した VAccess の位置の変更を反映して変更されますが テキストは反転表示されたままです 140

167 VASize VASize VACheck VACombo VAList VAOption VAText 現在選択されているフィールドに関連するデータのサイズを返します サイズは VAccess コントロールに関連付けられている DDF ファイルから取り込まれます 141

168 ActiveX プロパティリファレンス VAValueFalse VACheck VAOption チェックボックスあるいはオプションボタンが選択されていないことを示す格納値を取得または設定します VACheck および VAOption コントロールは VAValueTrue プロパティ値が論理フィールドで検出された場合にのみ選択されるようになります 選択された VACheck または VAOption がオフになると このコントロールに関連付けられたフィールドに VAValueFalse プロパティがセットされます このプロパティに 0 をセットすると 1 バイトの論理フィールドには 0 の文字値が書き込まれ 2 バイトの論理フィールドには 0 の整数値が書き込まれます 数値範囲は 論理フィールドのサイズによって決定されます 1 バイト論理フィールドでは 0 から 255 で 2 バイト論理フィールドでは から です 142

169 VAValueTrue VAValueTrue VACheck VAOption チェックボックスあるいはオプションボタンが選択されていることを示す格納値を取得または設定します VACheck および VAOption コントロールは VAValueTrue プロパティ値が論理フィールドで検出された場合にのみ選択されるようになります 選択された VACheck または VAOption がオンになると このコントロールに関連付けられたフィールドに VAValueTrue プロパティがセットされます このプロパティに 1 をセットすると 1 バイトの論理フィールドには 1 の文字値が書き込まれ 2 バイトの論理フィールドには 1 の整数値が書き込まれます 数値範囲は 論理フィールドのサイズによって決定されます 1 バイト論理フィールドでは 0 から 255 で 2 バイト論理フィールドでは から です 143

170 ActiveX プロパティリファレンス 144

171 ActiveX メソッドリファレンス 7 この章では ActiveX アクセス方法のメソッドについてします アルファベット順にメソッドをします 145

172 ActiveX メソッドリファレンス AboutBox Vaccess VACombo VAList VACommand VAHScroll VAVScroll VAOption VAText ActiveX コントロールの著作権とバージョン情報を表示します 146

173 AddItem AddItem VACombo VAList フィールドバウンドモードで動作している VAList コントロールまたは VACombo コントロールに項目を追加します 構文 object.additem item, index AddItem メソッドの構文は次のような要素で構成されます 要素 object item index 必須 [ ] のオブジェクトを評価するオブジェクト式です 必須 object に追加する項目を指定する文字列式です 省略可能 新規項目が配置されるオブジェクト内の位置を指定する整数です VAList コントロールまたは VACombo コントロールの最初の項目の場合 index は 0 です index に有効な値を入力すると item が object 内の指定位置に配置されます index を省略すると item は適切にソートされた位置 (Sorted プロパティが True に設定されている場合 ) か 一覧の最後 (Sorted プロパティが False に設定されている場合 ) に追加されます レコードリストモードで動作している (VARecordList プロパティが True に設定されている ) VAList コントロールまたは VACombo コントロールは AddItem メソッドをサポートしません 例 Private Sub Command1_Click() VAList1.AddItem (Text2.Text) End Sub 147

174 ActiveX メソッドリファレンス Btrv VAccess VAccess コントロールに関連付けられているファイルに対して Pervasive PSQL オペレーションを実行し そのオペレーションのステータスを返します 構文 object.btrv opcode Btrv メソッドの構文は次のような要素で構成されます 要素 object opcode 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 実行する Pervasive PSQL オペレーションを指定します VAccess コントロールで実行可能な Pervasive PSQL 関数はどれでも Btrv メソッドを用いて使用することができます このメソッドは単一パラメーター opcode を使用します opcode 定数宣言は GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれています アプリケーションで opcode 定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます 次のような opcode 設定が可能です コードグローバル定数 0 BTO_Open VAccess コントロールの TableName として指定された Pervasive PSQL ファイルテーブ ルを開きます 1 BTO_Close Pervasive PSQL テーブルを閉じます 2 BTO_Insert Pervasive PSQL テーブルにメモリ内の現在のレコードを挿入します 3 BTO_Update Pervasive PSQL テーブル内の現在のレコードをメモリ内の現在のレコードに含まれる データで更新します 4 BTO_Delete 現在のレコードをファイルから削除します 5 BTO_GetEqual 指定された FieldValue に等しいインデックス値を持つ最初のレコードを取得します 6 BTO_GetNext 現在のインデックスパスで次のレコードを取得します 7 BTO_GetPrevious 現在のインデックスパスで前のレコードを取得します 8 BTO_GetGreater 指定された FieldValue のインデックス値より大きいインデックス値を持つレコードを 取得します 9 BTO_GetGreaterOrEqual 指定された FieldValue のインデックス値より大きいか 等しいインデックス値を持つレ コードを取得します 148

175 Btrv コードグローバル定数 10 BTO_GetLess 指定された FieldValue のインデックス値より小さいインデックス値を持つレコードを 取得します 11 BTO_GetLessOrEqual 指定された FieldValue のインデックス値より小さいか 等しいインデックス値を持つレ コードを取得します 12 BTO_GetFirst 現在のインデックスパスで最初のレコードを取得します 13 BTO_GetLast 現在のインデックスパスで最後のレコードを取得します 22 BTO_GetPosition Pervasive PSQL ファイル内の現在のレコードの物理位置を VAccess コントロールの Position プロパティにセットします 23 BTO_GetDirect VAccess コントロールの Position プロパティで指定されているレコードを取得します 24 BTO_StepNext VAccess から 現在のレコードの物理的に次にあたる位置からレコードを取得します 30 BTO_ClearOwner ファイルの現在のオーナーネームセキュリティをクリアします メモ : ファイルは既 存のオーナーネームを使用して先に開いておく必要があります 33 BTO_StepFirst ファイルの先頭の物理位置にあるレコードを取得します 34 BTO_StepLast ファイルの末尾の物理位置にあるレコードを取得します 35 BTO_StepPrevious VAccess から 現在のレコードの物理的に前にあたる位置からレコードを取得します オペレーションコードにロックバイアスを加算することによって Pervasive PSQL のレコードをロックできます Btrv では Get または Step オペレーションにロックを指定することができます ロックを解除する場合は Unlock メソッドを使用します ロックバイアスは次のとおりです ロックバイアスグローバル定数 200 BTO_SingleNoWait 単一レコードノーウェイトロックです レコードが既にロックされている場合 Pervasive PSQL はアプリケーションにステータスコード 84 ( レコードが使用中 ) の エラーを返します 400 BTO_MultiNoWait 複数レコードノーウェイトロックです レコードが既にロックされている場合 Pervasive PSQL はアプリケーションにステータスコード 84 ( レコードが使用中 ) の エラーを返します 例 If Check1.Value = 1 Then stat = VAccess1.Btrv(5) 'GetEqual Else stat = VAccess1.Btrv(9) 'GetGreaterOrEqual End If 149

176 ActiveX メソッドリファレンス Clear Vaccess VACombo VAList VAList または VACombo の内容をクリアし VAccess コントロールのデータバッファーとインデックスバッファーの内容をクリアします 構文 object.clear Clear このメソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します レコードリストモードで動作している (VARecordList プロパティが True に設定されている ) VAList コントロールまたは VACombo コントロールは Clear メソッドをサポートしません 例 ' データバッファーとすべてのバウンドコントロールをクリアする VAccess1.Clear 150

177 Close Close VAccess VAccess コントロールに関連するファイルを閉じ Close オペレーションのステータスを返します 構文 object.close Close メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは object に関連付けられているファイルを閉じ そのオペレーションの Pervasive PSQL ステータスコードを返します 戻り値がゼロであれば正常に実行されています 例 If index > -1 Then ' リストから選択済み VAccess1.Close VAccess1.FileName = Combo1.List(index) VAccess1.Open End If 151

178 ActiveX メソッドリファレンス DdfAddIndex VAccess DDF ファイルおよび対応する Pervasive PSQL ファイルにインデックスを追加します 正常に実行された場合は 0 を エラーが発生した場合は Pervasive PSQL ステータスコードを返します 構文 object.ddfaddindex indexlist DdfAddIndex メソッドの構文は次のような要素で構成されます 要素 object indexlist 必須 有効な VAccess コントロールの名前です 必須 プロパティリファレンスの IndexList に記述されているように 2 次元配列のインデックス情報です 戻り値 DdfAddIndex は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfAddIndex は実際のデータファイル自体に indexlist のインデックスを追加します また この関数は indexlist のインデックスを VAccess コントロールのメタデータメモリイメージに追加します RefreshLocations が True の場合 DdfAddIndex は現在のメモリイメージと一致するように DDF ファイルを更新します DdfTransactionMode が True の場合 これらの操作はトランザクション内部で実行されます メモ DdfAddIndex はデータファイル自体のインデックス構造を変更します 注意して使用してください 関連項目 IndexList RefreshLocations DdfTransactionMode DdfDropIndex 152

179 DdfAddTable DdfAddTable VAccess TableName Location FieldList IndexList の値によって定義される現在のテーブルを現在の DDF に追加します 構文 object.ddfaddtable boverwrite DdfAddTable メソッドの構文は次のような要素で構成されます 要素 object boverwrite 必須 有効な VAccess コントロールの名前です 必須 既存のテーブル定義が存在する場合に VAccess コントロールがその定義を上書きするかどうかを指定するブール値です 戻り値 DdfAddTable は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfAddTable は VAccess コントロールの現在のメモリイメージにある情報を DDF ファイル自体に書き込みます boverwrite が True の場合 コントロールは同じ名前を持つ既存テーブルを上書きします False の場合は 同名のテーブルが (DdfPath プロパティで指定された ) 現在の DDF に存在すると このメソッドはエラーとなります この関数はメタデータの VAccess メモリイメージやデータファイル自体を操作することはありません 新しい空のテーブルをメタデータの VAccess メモリイメージに作成するには DdfAddTableName メソッドを使用します 新しいテーブルを DDF および指定された場所にある対応する空のデータファイルに作成するには DdfCreateTable メソッドを使用します ほかの多くの辞書メソッドやプロパティと異なり DdfAddTable は RefreshLocations をチェックしません これは DDF 情報を書き込むためだけに使用されるので 直接 DDF に書き込むことを想定しています この動作は VAccess メモリイメージを使用して 一度のパスで DDF への変更を保管し それらの変更を DDF へ書き込むつもりならば RefreshLocations を切り替える必要はないということです ( Pervasive PSQL Programmer's Guide を参照 ) DdfTransactionMode が True の場合 DDF への書き込みはトランザクション内部で実行されます 例 ' フィールド インデックス テーブル名 および場所は既に設定されているものと仮定 VAEngine.FieldList = fields VAEngine.IndexList = indexes VAEngine.fileName = tablename VAEngine.location = location status = VAEngine.DDFAddTable(True) 関連項目 DdfAddTableName DdfCreateTable DdfTransactionMode 153

180 ActiveX メソッドリファレンス DdfAddTableName VAccess 新しいテーブルを現在の VAccess コントロールメモリイメージに追加し 関連付けられている Location FieldList および IndexList を初期化して 新しいテーブル定義を辞書に追加できるようにします 構文 object.ddfaddtablename tablename DdfAddTableName メソッドの構文は次のような要素で構成されます 要素 object tablename 必須 有効な VAccess コントロールの名前です 必須 VAccess メモリイメージ内の新規テーブル名 これは 既存テーブル名は使用できません 既存テーブル名を使用するとメソッドはエラーとなります 戻り値 DdfAddTableName は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfAddTableName は新規テーブルのメタデータを定義する際の最初のステップです これは VAccess コントロールのメモリイメージだけに影響します そのため RefreshLocations または DdfTransactionMode の現在の値の影響は受けません 例 VAEngine.RefreshLocations = False VAEngine.DdfAddTableName tablename VAEngine.DdfModifyLocation datalocation ' フィールドとインデックスを設定する VAEngine.FieldList = myfieldsvariant VAEngine.IndexList = myindexvariant 'DDF へ変更を書き込む 'RefreshLocations のリセットは不要 VAEngine.DdfAddTable(True) 関連項目 DdfAddTable DdfModifyTableName 154

181 DdfClearFields DdfClearFields VAccess 現在のテーブルの VAccess メモリイメージ ( およびオプションで DDF) のフィールド情報をクリアします 構文 object.ddfclearfields DdfClearFields メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 DdfClearFields は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfClearFields は必ず VAccess メモリイメージの現在のフィールド情報を破棄します RefreshLocations が True の場合は FIELD.DDF の現在のテーブルのフィールド情報もすべて削除します この副作用として INDEX.DDF は正しいフィールド情報を取得できなくなるため このような状況が起こった場合には事実上 このテーブルのメタデータはすべて破壊されます このメソッドを呼び出す前に RefreshLocations を False に設定することを強くお勧めします 関連項目 FieldList RefreshLocations DdfTransactionMode 155

182 ActiveX メソッドリファレンス DdfClearIndexes VAccess 現在のテーブルの VAccess メモリイメージ ( およびオプションで DDF) のインデックス情報をクリアします 構文 object.ddfclearindexes DdfClearIndexes メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 DdfClearIndexes は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfClearIndexes は必ず VAccess メモリイメージの現在のフィールド情報を破棄します RefreshLocations が True の場合 INDEX.DDF の現在のテーブルのすべてのインデックス情報も削除されます このメソッドを呼び出す前に RefreshLocations を False に設定することを強くお勧めします 関連項目 DdfClearIndexes IndexList RefreshLocations DdfTransactionMode 156

183 DdfCreateDictionary DdfCreateDictionary VAccess DdfPath プロパティによって指定された場所に一連の新たな空の DDF ファイルを作成します これは データのテーブル インデックス フィールドを含んでいないデータ辞書を作成します これらは DdfCreateTable DdfAddTableName DdfAddTable DdfAddIndex を使用して追加する必要があります 構文 object.ddfcreatedictionary boverwrite DdfCreateDictionary メソッドの構文は次のような要素で構成されます 要素 object boverwrite 必須 有効な VAccess コントロールの名前です 必須 既存の辞書が存在する場合に VAccess コントロールがそれを上書きするかどうかを指定するブール値です 戻り値 DdfCreateDictionary は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfCreateDictionary は FILE.DDF FIELD.DDF INDEX.DDF の各システムファイルを作成し これらのファイルに自己参照型のシステムテーブル定義レコードを設定します また 拡張辞書ファイルの FIELDEXT.DDF と COMMENT.DDF も作成します 現在 指定された DdfPath パスに辞書が存在している場合 コントロールは boverwrite をチェックして 現在の辞書を削除して書き直すかどうかを判定します boverwrite が True の場合 既存の辞書は破棄され 元に戻せなくなります 関連項目 DdfPath DdfTransactionMode 157

184 ActiveX メソッドリファレンス DdfCreateTable VAccess 辞書にテーブル定義を追加し Location プロパティに指定されているパスとファイル情報 および FieldList と IndexList によって定義されている属性を使用して 空のデータファイルを作成します 構文 object.ddfcreatetable boverwrite DdfCreateTable メソッドの構文は次のような要素で構成されます 要素 object boverwrite 必須 有効な VAccess コントロールの名前です 必須 既存のテーブル定義およびテーブルが存在する場合に VAccess コントロールがそれらを上書きするかどうかを指定するブール値です 戻り値 DdfCreateTable は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています このメソッドは最初に DdfAddTable を呼び出し テーブル定義を辞書に追加します もし この呼び出しが何らかの理由で失敗した場合 たとえば テーブル定義が既に存在していて boverwrite が False の場合は DdfCreateTable も失敗します DdfAddTable が正常に実行されると このメソッドは Location を使って新たに空のデータファイルを作成します また boverwrite パラメーターによって Location に存在するデータファイルを上書きするかどうかを制御します ほかの多くの辞書メソッドやプロパティと異なり DdfCreateTable は RefreshLocations をチェックしません これは VAccess メモリイメージに影響しないので DDF に直接書き込むことを想定しています この動作は VAccess メモリイメージを使用して 一度のパスで DDF への変更を保管し それらの変更を DDF へ書き込み テーブルを作成するつもりならば RefreshLocations を切り替える必要がないということです ( Pervasive PSQL Programmer's Guide を参照 ) 例 ' フィールド インデックス テーブル名 および場所は既に設定されているものと仮定 VAEngine.RefreshLocations = False VAEngine.FieldList = fields VAEngine.IndexList = indexes VAEngine.TableName = tablename VAEngine.Location = location status = VAEngine.DDFCreateTable(True) 関連項目 DdfAddTable 158

185 DdfDropIndex DdfDropIndex VAccess 現在の Pervasive PSQL データファイルからインデックスを削除します また RefreshLocations が True の場合は 現在のテーブルのデータ辞書定義からもインデックスを削除します メモ DdfDropIndex は データファイル自体のインデックス構造を変更するので 正しく使用しないと非常に危険です データファイルを使用する既存プログラムは この操作を実行した後は動作しなくなる可能性があります 注意して使用してください 構文 object.ddfdropindex keynum DdfDropIndex メソッドの構文は次のような要素で構成されます 要素 object keynum 必須 有効な VAccess コントロールの名前です 必須 ファイルから削除されるキーの序数を表す整数です 戻り値 DdfDropIndex は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfDropIndex は実際のデータファイル自体から指定されたインデックスを削除します また この関数は VAccess コントロールのメタデータメモリイメージからインデックスを削除します RefreshLocations が True の場合 DdfDropIndex は現在のメモリイメージと一致するように DDF ファイルを更新します DdfTransactionMode が True の場合 これらの操作はトランザクション内部で実行されます ファイルの最後のインデックス以外のインデックスを削除すると すべてのインデックスの番号が付け替えられます たとえば 5 つのインデックスがあるテーブル内で 3 番目のキーが削除されると キー #3 がキー #2 に キー #4 がキー #3 になります DdfDropIndexMaintain を使用すると テーブルのその他のキーを混乱させることなく インデックスを削除することができます 例 ' 現在インデックスを使用しているアプリケーションをすべて終了する For i = 0 To VAEngine.TotalKeys 1 'TotalKeys の値はループを通るたびに 1 減算されるため ' 常にキー番号 0 が削除される status = VANew.DdfDropIndex(0) If status > 0 Then errormsg = "Error occurred during Drop " _ + "Index " + CStr(i) + _ " operation.btrieve status " + _ 159

186 ActiveX メソッドリファレンス CStr(status) + ". " MsgBox errormsg, vbexclamation End If Next i 関連項目 IndexList RefreshLocations DdfAddIndex DdfDropIndexMaintain 160

187 DdfDropIndexMaintain DdfDropIndexMaintain VAccess 現在の Pervasive PSQL データファイルからインデックスを削除します RefreshLocations が True の場合 既存インデックスの順序を変更することなく 現在のテーブルのデータ辞書定義からインデックスを削除します 構文 object.ddfdropindexmaintain keynum DdfDropIndexMaintain メソッドの構文は次のような要素で構成されます 要素 object keynum 必須 有効な VAccess コントロールの名前です 必須 ファイルから削除されるキーの序数を表す整数です 戻り値 DdfDropIndexMaintain は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfDropIndexMaintain は実際のデータファイル自体から指定されたインデックスを削除します また この関数は VAccess コントロールのメタデータメモリイメージからインデックスを削除します RefreshLocations が True の場合 DdfDropIndex は現在のメモリイメージと一致するように DDF ファイルを更新します DdfTransactionMode が True の場合 これらの操作はトランザクション内部で実行されます DdfDropIndex とは異なり DdfDropIndexMaintain はほかの既存キーの序数値を変更しません 削除されたキーを使用するアプリケーションだけが悪影響を受けます DdfDropIndexMaintain は データファイル自体のインデックス構造を変更するので 正しく使用しないと非常に危険です データファイルを使用する既存プログラムは この操作を実行した後は動作しなくなる可能性があります 注意して使用してください 例 ' インデックス #1 を使用するアプリケーションだけを終了する status = VANew.DdfDropIndexMaintain(1) If status > 0 Then errormsg = "Error occurred during Drop Index " + _ CStr(i) + " operation.btrieve status " + _ CStr(status) + ". " MsgBox errormsg, vbexclamation End If 関連項目 IndexList RefreshLocations DdfAddIndex DdfDropIndex 161

188 ActiveX メソッドリファレンス DdfDropTable VAccess TableName で指定される現在のテーブルをデータ辞書から削除します 構文 object.ddfdroptable DdfDropTable メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 DdfDropTable は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfDropTable は 現在のテーブルへのすべての参照を現在のデータ辞書から削除します これはデータファイルにはまったく影響しません ほかの多くの辞書メソッドやプロパティと異なり DdfDropTable は RefreshLocations をチェックしません これは DDF 情報を削除することだけを目的としているので DDF に直接書き込むことを想定しています 関連項目 DdfAddTable DdfAddTableName TableName 162

189 DdfGetFieldComments DdfGetFieldComments VAccess COMMENT.DDF ファイルからフィールドコメントを VAccess メモリイメージに読み取ります 構文 object.ddfgetfieldcomments DdfGetFieldComments メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 DdfGetFieldComments は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfGetFieldComments は VAccess メモリイメージのフィールドコメント情報を強制的にリフレッシュします DDF からメモリイメージを更新すると自動的にこの情報もリフレッシュされるので この操作が必要になることはまずありません これは RefreshLocations が False に設定されていて DDF 情報が変わらない場合にのみ必要となります コメント情報はほかの DDF 情報とは共存しません ほかの多くの辞書メソッドやプロパティと異なり DdfGetFieldComments は RefreshLocations をチェックしません これは DDF からの情報を更新することだけを目的としているので DDF から直接読み取ることを想定しています 例 ' フィールドの取得 Dim fields as Variant VAEngine.RefreshLocations = True VAEngine.DdfGetFieldComments = True VAEngine.TableName = tablename fields = VAEngine.FieldList VAEngine.RefreshLocations = False If not IsEmpty(fields) For i = 0 to ubound(fields, 2) ' フィールド名とコメントをリストボックスに配置する List.AddItem (fields(1,i) + fields(6, i)) Next i End If 関連項目 FieldList 163

190 ActiveX メソッドリファレンス DdfModifyLocation VAccess 現在のテーブルの場所を変更し オプションとして DDF に新しい場所を書き込みます 構文 object.ddfmodifylocation newlocation DdfModifyLocation メソッドの構文は次のような要素で構成されます 要素 object newlocation 必須 有効な VAccess コントロールの名前です 必須 テーブルの新しい場所を含む文字列です 戻り値 DdfModifyLocation は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています RefreshLocations が True の場合 新しいテーブルの場所は データ辞書の FILE.DDF レコードでも更新されます False の場合は VAccess メモリイメージに対してのみ変更が行われます DdfAddTable を使用して後から変更することもできます このメソッドにより コントロールの Location プロパティの値も新しい場所を反映して変更されます DdfModifyLocation は自動的に Location プロパティを変更するので DdfKeyUseIndexDDFOnly が False に設定されている場合は 現在の IndexList の内容をクリアして 新しい場所のインデックス情報を基に内容を置き換えます ( まだファイルが存在していなければ 内容をクリアします ) 新たなファイルを作成する場合は DdfModifyLocation を呼び出す前ではなく 呼び出した後に IndexList プロパティを設定します 例 VAEngine.RefreshLocations = True VAEngine.TableName = tablename VAEngine.DdfModifyLocation(newLocation) 関連項目 Location RefreshLocations DdfAddTable DdfModifyTableName 164

191 DdfModifyTableName DdfModifyTableName VAccess 現在のテーブルの名前を変更し オプションとして DDF に新たな名前を書き込みます 構文 object.ddfmodifytablename newname DdfModifyTableName メソッドの構文は次のような要素で構成されます 要素 object newname 必須 有効な VAccess コントロールの名前です 必須 テーブルの新しい名前を含む文字列です 戻り値 DdfModifyTableName は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています DdfModifyTableName は現在のテーブルを変更しません 要求された名前のテーブルが既に存在する場合はエラーとなります 現在のテーブルを変更するには TableName プロパティを使用します 現在のテーブル一覧に新しい空のテーブルを追加するには DdfAddTableName を使用します RefreshLocations が True の場合 新しいテーブル名は データ辞書の FILE.DDF レコードでも更新されます False の場合は VAccess メモリイメージに対してのみ変更が行われます DdfAddTable を使用して後から変更することもできます このメソッドにより コントロールの TableName プロパティの値も新しい名前を反映して変更されます 関連項目 RefreshLocations TableName DdfAddTable DdfAddTableName DdfModifyLocation 165

192 ActiveX メソッドリファレンス DdfSetOwner VAccess 辞書ファイルの Btrieve オーナーネームをデフォルトのオーナーネームとセキュリティレベル ( 読み取り専用アクセスが可能 ) 以外に設定する際に使用できます オーナーネームパラメーターとセキュリティレベルパラメーターは Btrieve の表記規則に準じます 構文 object.ddfsetowner(newownername, SecurityLevel) DdfSetOwner メソッドの構文は次のような要素で構成されます 要素 object newownername SecurityLevel 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します テーブルにオーナーネームを割り当てるための文字列です セキュリティレベルを表す整数です 次のセキュリティレベルコードを DdfSetOwner の SecurityLevel パラメーターに渡すことができます コードグローバル定数 0 EXCLUSIVE 正しいオーナーネームを指定しないとファイルを開くことができません 1 READONLY オーナーネームを指定しないユーザーに対し テーブルの表示は許可しますが 変 更は許可しません 2 EXCLUSIVE_ENCRYPT 正しいオーナーネームを指定しないとファイルを開くことができません データは ファイル内で暗号化されます 3 READONLY_ENCRYPT オーナーネームを指定しないユーザーに対し テーブルの表示は許可しますが 変 更は許可しません データはファイル内で暗号化されます 定数宣言は GLOBAL.BAS ファイル (16 ビット Visual Basic の場合 ) GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれます アプリケーションでセキュリティレベル定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます 例 Private Function SetDDFOwner(newOwner as String, _ securitylevel as Integer) as Integer ' 続行するために確認が必要 VAEngine.RefreshLocations = True ' これを DDF に書き込む status = VAEngine.DdfSetOwner(newOwner, securitylevel) If status = 0 Then msg = "DDF Password has been successfully" & " changed." 166

193 DdfSetOwner MsgBox msg, vbinformation Else msg = " Btrieve returned status " + CStr(status) + "." MsgBox msg, vbexclamation End If End Function 167

194 ActiveX メソッドリファレンス DdfTestOwnerName VAccess 辞書を開く際に使用するオーナーネームを設定し このオーナーネームを使用して辞書が正常に開き 更新できるかどうかを判定します 構文 object.ddftestownername ownername DdfTestOwnerName メソッドの構文は次のような要素で構成されます 要素 object ownername 必須 有効な VAccess コントロールの名前です 必須 辞書のテスト対象の新しいオーナーネームです これが空白の場合 DdfTestOwnerName は現在の辞書のオーナーネームを使用します 戻り値 DdfTestOwnerName は VAccess コントロールのステータスを保持する 2 バイトの整数を返します これがゼロの場合 現在の辞書のオーナーネームを使用して辞書を開き 更新することができます VAccess コントロールによって使用されるデフォルトの辞書のオーナーネームは 通常 DDF ファイルを読み取りおよび更新用として開きます ただし 一部の辞書ファイルではデフォルト以外のオーナーネームになっている場合もあります この場合は DdfTestOwnerName を使用して辞書のオーナーネームを設定し DdfPath で指定される現在の辞書に対して そのオーナーネームをテストすることができます DdfTestOwnerName は最初に辞書を開こうとします 正常に開いたら そのオーナーネームでは更新が可能か あるいは読み取り専用かを調べるために 最初のレコードの更新を試みます 返されたステータスは そのオーナーネームでファイルを開けるか 修正できるか あるいはどちらもできないかを示します 関連項目 DdfSetOwnerName 168

195 Delete Delete VAccess 現在のレコードを削除し Pervasive PSQL ステータスコードを整数値で返します 構文 object.delete Delete メソッドの構文は次のような要素で構成されます 要素 object 必須 [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは object に関連付けられているファイルから現在のレコードを削除し そのオペレーションの Pervasive PSQL ステータスコードを返します 戻り値がゼロであれば正常に実行されています メモ ActiveX コントロールは 有効なカレンシーを維持するために Delete の後に GetNext オペレーションを試行します 例 Dim stat As Integer VAccess1.IndexNumber = 1 'msa_desc VAccess1.FieldValue("msa_desc") = Text1.Text stat = VAccess1.GetEqual If stat = 0 Then stat = VAccess1.Delete If stat = 0 Then MsgBox "Deleted!" End If Else MsgBox "Could not locate requested city" End If 169

196 ActiveX メソッドリファレンス FormatFieldValue VAccess 指定の書式文字列を使用して書式設定された現在のレコードのフィールドの値を返します 構文 object.formatfieldvalue (fieldname, formatstring) FormatFieldValue メソッドの構文は次のような要素で構成されます 要素 object fieldname formatstring 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します object によって参照されるファイル内の有効なフィールドの名前です このパラメーターは 数値 日付 時刻の値について Visual Basic Format 関数と同じ書式文字列および標準書式名をサポートします フィールドに書式が設定されている場合は データ型に関わらず そのフィールドの内容の値は必ず文字列として返されます ( コンテナーは自動的にこれを String Variant AnsiString またはほかの種類の文字データに解釈します ) フィールドに書式が設定されていない場合 値はそのフィールドのデータ型と最も近いバリアント (Variant) として返されます ほとんどのコントロールコンテナーは バリアント (Variant) の戻り値を 文字列 (Sting) より簡単 迅速に操作でき インターナショナル化や書式の再設定を行うことができます そのため できれば書式設定されていないフィールドを取得することをお勧めします 例 Label1.Caption = VAccess1.FieldValue("msa_desc") Label2.Caption = VAccess1.FormatFieldValue("population", "##,###,###") 関連項目 FieldValue RowColumnValue Column 170

197 GetDirect GetDirect VAccess ファイル内で物理位置を使用してレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getdirect [vlockbias] GetDirect メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは object に関連付けられているファイルから物理位置を使ってレコードを取得し そのオペレーションの Pervasive PSQL ステータスコードを返します 戻り値がゼロであれば正常に実行されています 171

198 ActiveX メソッドリファレンス GetEqual VAccess 現在のインデックスと正確に一致するレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getequal [vlockbias] GetEqual メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 現在選択されているインデックスフィールドが オペレーションの実行前にそのフィールドに指定された値と正確に一致する値を含んでいる ファイル内の最初のレコードを取得します このメソッドを呼び出す前に IndexNumber プロパティによって指定されるインデックスを構成するフィールドの値を設定します キーフィールドが VA フィールドコントロールにバインドされている場合 その値はバウンドコントロールの内容を修正することによって設定されます これらの値をコードから設定するには FieldValue プロパティを使用します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティにも設定されます ステータスがゼロの場合は正常に実行されたことを示します オペレーションの実行が成功するには キーのすべてのセグメント内のすべてのフィールド すべてのバイトが同等である必要があります ステータスコード 4 は オペレーションの前にキーフィールドに設定された値が現在のインデックスパスで検出されなかったことを示します オルタネートコレーティングシーケンス (ACS) が指定された文字列キーは オルタネートコレーティングシーケンスを用いてキー値を解釈するとき ファイル内にそのキー値とバイト単位で同等のものがある場合にレコードを返します これは 大文字と小文字を区別しない文字列キーの場合も同じです 例 If Check1.Value = 1 Then stat = VAccess1.GetEqual Else stat = VAccess1.GetGreaterorEqual End If 172

199 GetFirst GetFirst VAccess 現在のインデックスパスの最初のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getfirst [vlockbias] GetFirst メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vvlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは IndexNumber プロパティによって設定された 現在選択されているインデックスパスの最初のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータス 9 は 現在のインデックスパスにはレコードがないことを示します Visual Basic では リストボックスあるいはコンボボックスを追加するには GetFirst が必要です 例 Orders.GetFirst Orders.Init Orders.GetNextExtended 173

200 ActiveX メソッドリファレンス GetGreater VAccess 現在のインデックスパスのキーよりも大きい最初のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getgreater [vlockbias] GetGreater メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 現在選択されているインデックスフィールドが オペレーションの実行前にそのフィールドに指定された値よりも大きい値を含んでいる最初のレコードを コントロールに関連付けられたファイルから取得します このオペレーションを実行する前に IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定する必要があります キーフィールドがフィールドコントロールにバインドされている場合 その値はバウンドコントロールの内容を修正することによって設定されます これらの値をコードから設定するには FieldValue プロパティを使用します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は ファイル内のレコードには オペレーションの前に指定された値より大きいキー値のレコードがないことを示します 例 ' 姓が S で始まる最初のレコードを検索する Customers.IndexNumber = 1 ' 姓 Customers.FieldValue("last_name") = "S" Customers.GetGreater Select Case Customers.Status Case 0 ' レコードを取得したが 条件に一致するかテストする必要がある 'GetGreater メソッドはこのテストを行わない ' ファイルに "S" のレコードがない場合 このレコードは '"T" "U" "V" などである可能性がある If Left$(Customers.FieldValue("last_name"), 1) = "S" Then MsgBox "Found:" & Customers.FieldValue("last_name") Else MsgBox "No record was found." End If 174

201 GetGreater Case Else MsgBox "No record was found." End Select 175

202 ActiveX メソッドリファレンス GetGreaterOrEqual VAccess 現在のインデックスパスのキーと等しいか そのキーよりも大きい最初のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getgreaterorequal [vlockbias] GetGreaterOrEqual メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 現在選択されているインデックスフィールドが オペレーションの実行前にそのフィールドに指定された値と等しいか それよりも大きい値を含んでいる最初のレコードを コントロールに関連付けられたファイルから取得します このメソッドを呼び出す前に IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します キーフィールドがフィールドコントロールにバインドされている場合 その値はバウンドコントロールの内容を修正することによって設定されます これらの値をコードから設定するには FieldValue プロパティを使用します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は ファイル内のレコードには オペレーションの前に指定されたキー値と等しいか そのキー値より大きいキー値を持つレコードがないことを示します 例 If Check1.Value = 1 Then stat = VAccess1.GetEqual Else stat = VAccess1.GetGreaterorEqual End If 176

203 GetLast GetLast VAccess 現在のインデックスパスの最後のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getlast [vlockbias] GetLast メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは IndexNumber プロパティによって設定された 現在選択されているインデックスパスの最後のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は 現在のインデックスパスにはレコードがないことを示します 例 ' 最も新しい日付のレコードを取得する Customers.IndexNumber = 3 ' 入力日 Customers.GetLast 177

204 ActiveX メソッドリファレンス GetLess VAccess キーフィールドに指定された値より小さい値を持つ現在のインデックスパスの最後のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getless [vlockbias] GetLess メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 現在選択されているインデックスフィールドが オペレーションの実行前にそのフィールドに指定された値よりも小さい値を含んでいる最後のレコードを コントロールに関連付けられたファイルから取得します このメソッドを呼び出す前に IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します キーフィールドがフィールドコントロールにバインドされている場合 その値はバウンドコントロールの内容を修正することによって設定されます これらの値をコードから設定するには FieldValue プロパティを使用します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は ファイル内のレコードには オペレーションの前に指定された値より小さいキー値のレコードがないことを示します 178

205 GetLessOrEqual GetLessOrEqual VAccess キーフィールドに指定された値と等しいか その値より小さい値を持つ現在のインデックスパスの最後のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getlessorequal [vlockbias] GetLessOrEqual メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 現在選択されているインデックスフィールドが オペレーションの実行前にそのフィールドに指定された値と等しいか それよりも小さい値を含んでいる最後のレコードを コントロールに関連付けられたファイルから取得します このメソッドを呼び出す前に IndexNumber プロパティで指定されたインデックスを構成するフィールドの値を設定します キーフィールドがフィールドコントロールにバインドされている場合 その値はバウンドコントロールの内容を修正することによって設定されます これらの値をコードから設定するには FieldValue プロパティを使用します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は ファイル内のレコードには オペレーションの前に指定されたキー値と等しいか そのキー値より小さいキー値を持つレコードがないことを示します 179

206 ActiveX メソッドリファレンス GetNext VAccess 現在のインデックスパスの次のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getnext [vlockbias] GetNext メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは IndexNumber プロパティによって設定された 現在選択されているインデックスパスの次のレコードを そのコントロールに関連付けられたファイルから取得します このメソッドを呼び出す前に インデックスパスに現在の位置を確立しておく必要があります オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は 現在のインデックスパスの現在のレコードには後続レコードがないことを示します ステータスコード 8 は そのメソッドを呼び出す前に 現在のレコード上に位置が確立されていなかったことを示します 例 ' 日付が 1 年以上古いレコードをすべて削除する Customers.IndexNumber = 0 ' 顧客番号 Customers.GetFirst Do If DateDiff("yyyy", Now, _ Customers.FieldValue("last_order_date")) > 0 Customers.Delete End If Customers.GetNext Loop While Customers.Status = 0 180

207 GetNextExtended GetNextExtended VAccess 現在のインデックスパスの次のレコードを Extended Fetch レコードセットとして取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getnextextended GetNextExtended メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドはコントロールの ExtendedOps プロパティが False の場合 あるいは AutoMode が True に設定されている場合はまったく効果がありません このメソッドは Pervasive PSQL Get Next Extended オペレーションを実行します その際 コントロールの現在のレコードとインデックス選択を使用して位置を確立し SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します コントロールの IncludeCurrent プロパティが True の場合 Extended Fetch オペレーションは現在のレコードから開始します このプロパティが False の場合 Extended Fetch オペレーションはレコードシーケンスの次のレコードから開始します Init メソッドは自動的に IncludeCurrent プロパティを True に設定します GetNextExtended メソッドは 自身が呼び出された後 IncludeCurrent プロパティを False に設定します オペレーションが正常に実行されたら 生成されたレコードセット値を Row プロパティと Column プロパティを介して利用できます オペレーションから返された行数および列数は Rows プロパティと Columns プロパティで入手できます また メソッドから返される Pervasive PSQL ステータスコードは Status プロパティで入手できます ゼロ以外のステータスコードが必ずしもレコードが返されなかったことを示すわけではありません Rows プロパティの値をチェックし 戻された行数を判断してください このメソッドを呼び出す前に 任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し 次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって 先に Extended Fetch オペレーションのコントロールを設定しておく必要があります GetFirst や GetGreaterOrEqual などのインデックス付きレコードフェッチメソッドを使用して インデックスパスの現在のレコード位置を最初に設定することによって Extended Fetch オペレーションを最適化することもできます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 'Orders ファイルのレコードを読み取り 印刷する Orders.GetFirst Orders.Init Do Orders.GetNextExtended For r = 1 to Orders.Rows For c = 1 to Orders.Columns 181

208 ActiveX メソッドリファレンス Debug.Print Orders.RowColumnValue(r,c) Next c Debug.Print ' 新しい行 Next r Loop While Orders.Status = 0 182

209 GetPrevious GetPrevious VAccess 現在のインデックスパスの前のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getprevious [vlockbias] GetPrevious メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します vlockbias 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは IndexNumber プロパティによって設定された 現在選択されているインデックスパスの前のレコードを そのコントロールに関連付けられたファイルから取得します このメソッドを呼び出す前に インデックスパスに現在の位置を確立しておく必要があります オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータスコード 9 は 現在のインデックスパスの現在のレコードには後続レコードがないことを示します ステータスコード 8 は そのメソッドを呼び出す前に 現在のレコード上に位置が確立されていなかったことを示します 183

210 ActiveX メソッドリファレンス GetPreviousExtended VAccess 現在のインデックスパスの前のレコードを Extended Fetch レコードセットとして取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.getpreviousextended GetPreviousExtended メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは Pervasive PSQL Get Previous Extended オペレーションを実行します その際 コントロールの現在のレコードとインデックス選択を使用して位置を確立し SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します コントロールの IncludeCurrent プロパティが True の場合 Extended Fetch オペレーションは現在のレコードから開始します このプロパティが False の場合 Extended Fetch オペレーションはレコードシーケンスの次のレコードから開始します オペレーションが正常に実行されたら 生成されたレコードセット値を Row プロパティと Column プロパティを介して利用できます オペレーションから返された行数および列数は Rows プロパティと Columns プロパティで入手できます また メソッドから返される Pervasive PSQL ステータスコードは Status プロパティで入手できます このメソッドを呼び出す前に 任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し 次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって 先に Extended Fetch オペレーションのコントロールを設定しておく必要があります GetLast や GetLessOrEqual などのインデックス付きレコードフェッチメソッドを使用して インデックスパスの現在のレコード位置を最初に設定することによって Extended Fetch オペレーションを最適化することもできます このメソッドはコントロールの ExtendedOps プロパティが False の場合 あるいは AutoMode が True に設定されている場合はまったく効果がありません 184

211 GetTableList GetTableList VAccess 現在の辞書に定義されているテーブルのリストを 2 次元バリアント配列として返します 構文 object.gettablelist GetTableList メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 GetTableList は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています FieldList プロパティは 2 次元バリアント配列をカプセル化するバリアントを受け付けます あるいはそのバリアントを返します 最初の添字はフィールドの序数を参照し 2 番目の添字はフィールドの 1 つのプロパティを参照します 2 番目の添字が参照するプロパティは次のとおりです 添字名前バリアント型 0 tableid VT_I2 ファイルテーブル辞書エントリ用の固有のキーです 1 tablename VT_BSTR テーブル名です 最大半角 20 文字まで格納できます 2 tablelocation VT_BSTR オペレーティングシステムまたはネットワークパスとテーブルによって参照 されるデータファイルのファイル名です 最大半角 64 文字まで格納できます RefreshLocations プロパティが False の場合は メモリにキャッシュされた最近のテーブル一覧が返されます RefreshLocations が True の場合は 辞書から現在のテーブル一覧が再読み取りされます このメソッドは FieldList や IndexList とは違い 読み取りオペレーションしか行えず 更新は行えません 例 VAEngine.RefreshLocation = True VAEngine.DDFPath = path tables = VAEngine.GetTableList 関連項目 FieldList IndexList RefreshLocations 185

212 ActiveX メソッドリファレンス GetTotalSegments VAccess VAccess コントロールに関連付けられているファイルの 特定のインデックスに含まれるセグメントの総数を返します GetTotalSegments は下位互換性を提供するために用意されています ほとんどの場合 インデックスプロパティは IndexList プロパティを使用して迅速に しかも簡単に操作できます 構文 object.gettotalsegments(keynumber) GetTotalSegments メソッドの構文は次のような要素で構成されます 要素 object keynumber 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 チェック対象のインデックス番号です 例 NumSegments% = _ VAccess1.GetTotalSegments(VAccess1.KeyNumber) 186

213 Init Init VAccess Pervasive PSQL Extended Fetch レコードセットオペレーションを実行する際に使用する構造体を CacheRows プロパティ CacheRejectMax プロパティ SelectedFields プロパティ および SelectedRecords プロパティから提供されるパラメーターに基づいて強制的に初期化します Init は 初期化後 Extended オペレーションを呼び出す前に あるいは SelectedRecords SelectedFields CacheRows または CacheRejectMax が変更されたときに必ず実行する必要があります 構文 object.init Init メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します AutoMode が True に設定されている場合は Init メソッドを呼び出すと 最初の Extended Fetch レコードセットオペレーション (GetNextExtended) も実行されます このオペレーションは論理カレンシーを必要とします 論理カレンシーは GetFirst GetEqual などのインデックス付きのレコードオペレーションを呼び出すことによって設定できます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 #1 - Automode = True VAccess1.GetFirst VAccess1.Init 例 #2 - Automode = False Orders.GetFirst Orders.Init Orders.GetNextExtended 187

214 ActiveX メソッドリファレンス Insert VAccess 現在のデータバッファーを新規レコードとして挿入し Pervasive PSQL ステータスコードを整数値で返します 構文 object.insert Insert メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは object に関連付けられているファイルに現在のデータバッファーを新規レコードとして挿入し そのオペレーションの Pervasive PSQL ステータスコードを返します 戻り値がゼロであれば正常に実行されています 戻り値が 5 の場合は ファイルに定義されている重複値を許可しないキーに対して使用されているデータバッファー内のフィールドが ファイルに既存の別のレコードと同じ値を含んでいるため レコードを挿入できなかったことを示します NNC (no-currency-change : カレンシー変更なし ) 操作を行いたい場合は KeyNumber プロパティを使用します 例 ' レコードを検索し そのレコードがない場合には挿入する ' 検索値を設定する Customers.FieldValue("name") = "John Adams" ' インデックスを設定し 検索を実行する Customers.IndexNumber = 1 ' 顧客名 Customers.GetEqual ' レコードがない場合には挿入する Select Case Customers.Status Case 0 MsgBox "The customer entry already exists." Case 4 Customers.Insert Case Is > 0 MsgBox "Error. Pervasive PSQL status = " + Customers.Status End Select 188

215 Open Open VAccess コントロールに関連付けられているファイルを開き Pervasive PSQL ステータスコードを整数値で返します 構文 object.open Open メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは object に関連付けられているファイルを開こうとします ファイルが既に開いている場合は 先に閉じてから再度開きます オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します 例 If index > -1 Then ' リストから選択済み VAccess1.Close VAccess1.TableName = Combo1.List(index) VAccess1.Open End If 189

216 ActiveX メソッドリファレンス Refresh Vaccess VACombo VAList 関連オブジェクトを強制的に即時更新します 構文 object.refresh 例 ' データバッファーの内容を用いてバウンドコントロールをリフレッシュする VAccess1.Refresh 190

217 RemoveItem RemoveItem VACombo VAList フィールドバウンドモードで動作している VAList コントロールまたは VACombo コントロールから項目を削除します 構文 object.removeitem index RemoveItem メソッドの構文は次のような要素で構成されます 要素 object index 必須 [ ] のオブジェクトを評価するオブジェクト式です 必須 object における削除対象項目の位置を表す整数です VAList コントロールまたは VACombo コントロールの最初の項目の場合 index = 0 です レコードリストモードで動作している (VARecordList プロパティが True に設定されている ) VAList コントロールまたは VACombo コントロールは RemoveItem メソッドをサポートしません 191

218 ActiveX メソッドリファレンス RowColumnValue VAccess Extended Fetch レコードセットの中から 指定された Row および Column を基にフィールド値を返します 構文 object.rowcolumnvalue (row, column) RowColumnValue メソッドの構文は次のような要素で構成されます 要素 object row column 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 Extended Fetch レコードセット内の有効な行を指定します 必須 Extended Fetch レコードセット内の有効な列を指定します このメソッドは Row プロパティと Column プロパティを使って Extended Fetch レコードセットからフィールドデータを取得する方法のショートカットとして使用します VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 'Extended Fetch レコードセットのすべての行を印刷する For rowcount = 1 To Orders.Rows For colcount = 1 To Orders.Columns Debug.Print Orders.RowColumnValue(rowcount, colcount) Next colcount Debug.Print "" ' 新しい行 Next rowcount 192

219 SetFileFlag SetFileFlag VAccess Create メソッドを使って Btrieve ファイルを作成する前に 指定されたファイルフラグを設定します 構文 object.setfileflag(flag, setting) SetFileFlag メソッドの構文は次のような要素で構成されます 要素 object flag setting 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 設定するファイルフラグです 必須 フラグの設定を指定します True または False を指定することができます 定数宣言は GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれます アプリケーションでファイルフラグ定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます 例 Stat = VAccess1.SetFileFlag(BTF_fTruncate, False) Stat = VAccess1.SetFileFlag(BTF_fDataCompression, False) Stat = VAccess1.SetFileFlag(BTF_fKeyOnly, False) Stat = VAccess1.SetFileFlag(BTF_fPreallocate, False) VAccess1.PageSize = 0 Stat = VAccess1.DdfCreateTable(True) 193

220 ActiveX メソッドリファレンス SetOwner VAccess SetOwner メソッドは Pervasive PSQL テーブルへのアクセスを制限するために そのテーブルのオーナーネームを指定する場合に使用されます 構文 object.setowner(ownername, SecurityLevel) SetOwner メソッドの構文は次のような要素で構成されます 要素 object OwnerName SecurityLevel 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します テーブルに割り当てるオーナーネームです セキュリティレベルを表す整数です 次のセキュリティレベルコードを SetOwner の SecurityLevel パラメーターに渡すことができます コードグローバル定数 0 EXCLUSIVE 正しいオーナーネームを指定しないとファイルを開くことができません 1 READONLY オーナーネームを指定しないユーザーに対し テーブルの表示は許可しますが 変 更は許可しません 2 EXCLUSIVE_ENCRYPT 正しいオーナーネームを指定しないとファイルを開くことができません データは ファイル内で暗号化されます 3 READONLY_ENCRYPT オーナーネームを指定しないユーザーに対し テーブルの表示は許可しますが 変 更は許可しません データはファイル内で暗号化されます 定数宣言は GLOBAL.BAS ファイル (16 ビット Visual Basic の場合 ) GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれます アプリケーションでセキュリティレベル定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます Pervasive PSQL テーブルからオーナーネームを削除するには まずそのオーナーネームでテーブルを開き 次に Btrv メソッドに BTO_ClearOwner オペレーションを発行します この値は辞書ファイルにアクセスする際に使用するオーナーネームには影響しません 一連の辞書ファイルのオーナーネームを変更する場合は DdfSetOwner を使用します 関連項目 OwnerName DdfSetOwner DdfTestOwnerName 194

221 ShowSelectedFieldsDlg ShowSelectedFieldsDlg VAccess このメソッドを呼び出すと [Extended Query Field Selection] ( 拡張クエリフィールド選択 ) ダイアログボックスが表示され ここからユーザーは実行時に SelectedFields プロパティを変更できます 構文 object.showselectedfieldsdlg ShowSelectedFieldsDlg メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します Extended Fetch のレコードあるいはフィールド選択基準を変更した後 GetNextExtended などの Extended Fetch メソッドを呼び出す前には Init メソッドを呼び出す必要があります VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 ' 取得するフィールドをユーザーが選択できるようにする Customers.ShowSelectedFieldsDlg "Field Selection" ' 現在のレコードの位置を再確立し 'Extended オペレーションバッファーを ' 新しいフィールド選択リストで初期化する Customers.GetFirst Customers.Init Customers.GetNextExtended 195

222 ActiveX メソッドリファレンス ShowSelectedRecordsDlg VAccess このメソッドを呼び出すと [Extended Query Record Selection] ( 拡張クエリレコード選択 ) ダイアログボックスが表示され ここからユーザーは実行時に SelectedRecords プロパティを変更できます 構文 object.showselectedrecordsdlg ShowSelectedRecordsDlg メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します Extended Fetch のレコードあるいはフィールド選択基準を変更した後 GetNextExtended などの Extended Fetch メソッドを呼び出す前には Init メソッドを呼び出す必要があります VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 例 ' レコードの選択基準をユーザーが選択できるようにする Customers.ShowSelectedRecordsDlg "Record Selection" ' 現在のレコードの位置を再確立し 'Extended オペレーションバッファーを ' 新しいレコード選択基準で初期化する Customers.GetFirst Customers.Init Customers.GetNextExtended 196

223 Stat Stat VAccess 現在のテーブルのステータスバッファーを強制的にリフレッシュします 構文 object.stat Stat メソッドの構文は次のような要素で構成されます 要素 object 必須 有効な VAccess コントロールの名前です 戻り値 Stat は VAccess コントロールのステータスを保持する 2 バイトの整数を返します この値がゼロの場合 オペレーションは正常に終了しています Stat はステータスバッファーの更新を強制します これによって PageSize TotalKeys PercentFreeSpace PreallocatedPages ReservedDupPointers ACSName CollatingSequence FileVersion などのファイルパラメーターとファイルフラグが更新されます Stat は DdfKeyUseIndexDDFOnly が False に設定されている場合は ステータスバッファーのインデックス情報も更新します TotalRecords プロパティを取得する前に Stat を呼び出す必要はありません 要求時に TotalRecords が Stat 呼び出しを実行します 197

224 ActiveX メソッドリファレンス StatusDialog VAccess このメソッドを呼び出すと 実行時にゼロ以外の数値に設定される場合 タスクモードのメッセージボックスが表示されます 一般的な Pervasive PSQL ステータスコードにはが付きますが あまり一般的でないステータスコードや認識されないステータスコードは報告されるだけです 構文 object.statusdialog [status] StatusDialog メソッドの構文は次のような要素で構成されます 要素 object status 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 整数値です 値を指定しない場合は Status プロパティの現在値が使用されます 例 If stat = 0 Then Text1.Text = VAccess1.FieldValue("msa_desc") Text2.Text = VAccess1.GetFieldValue("population", "##,###,###") Text3.Text = VAccess1.FieldValue(2) Else VAccess1.StatusDialog stat End If 198

225 StepFirst StepFirst VAccess 物理レコードの格納順で最初のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.stepfirst [vlockbias] StepFirst メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 物理レコードが格納されている順で最初のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータス 9 は ファイルにレコードがないことを示します 199

226 ActiveX メソッドリファレンス StepLast VAccess 物理レコードの格納順で最後のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.steplast [vlockbias] StepLast メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 物理レコードが格納されている順で最後のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します ステータス 9 は ファイルにレコードがないことを示します 200

227 StepNext StepNext VAccess 物理レコードの格納順で次のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.stepnext [vlockbias] StepNext メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 物理レコードが格納されている順で次のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します 戻り値 9 は ファイルの最後に達したことを示します 戻り値 8 は このメソッドが呼び出される前に現在のレコード位置が確立されていなかったことを示します 201

228 ActiveX メソッドリファレンス StepNextExtended VAccess ファイルから物理レコードの格納順で次のレコードを Extended Fetch レコードセットとして取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.stepnextextended StepNextExtended メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは Pervasive PSQL Step Next Extended オペレーションを実行します その際 現在のレコードを使用して開始位置を確立し SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します コントロールの IncludeCurrent プロパティが True の場合 Extended Fetch オペレーションは現在のレコードから開始します このプロパティが False の場合 Extended Fetch オペレーションはレコードシーケンスの次のレコードから開始します オペレーションが正常に実行されたら 生成されたレコードセット値を Row プロパティと Column プロパティを介して利用できます オペレーションから返された行数および列数は Rows プロパティと Columns プロパティで入手できます また メソッドから返される Pervasive PSQL ステータスコードは Status プロパティで入手できます このメソッドを呼び出す前に 任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し 次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって 先に Extended Fetch オペレーションのコントロールを設定しておく必要があります StepFirst などのシングルレコードフェッチメソッドを使用して ファイルの現在のレコード位置を先に設定することもできます このメソッドはコントロールの ExtendedOps プロパティが False の場合 あるいは AutoMode が True に設定されている場合はまったく効果がありません 202

229 StepPrevious StepPrevious VAccess 物理レコードの格納順で前のレコードを取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.stepprevious [vlockbias] StepPrevious メソッドの構文は次のような要素で構成されます 要素 object vlockbias 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 省略可能 レコードを取得する際にセットするレコードロックの種類を表す値です デフォルトは 0 で ロックなしです 次のいずれかの定数を指定できます Const BTO_SingleNoWait = 200 Const BTO_MultiNoWait = 400 このメソッドは 物理レコードが格納されている順で前のレコードを object に関連付けられたファイルから取得します オペレーションのステータスコードはこのメソッドから返され コントロールの Status プロパティに設定されます ステータスがゼロの場合は正常に実行されたことを示します 戻り値 9 は ファイルの最初に達したことを示します 戻り値 8 は このメソッドが呼び出される前に現在のレコード位置が確立されていなかったことを示します 203

230 ActiveX メソッドリファレンス StepPreviousExtended VAccess ファイルから物理レコードの格納順で前のレコードを Extended Fetch レコードセットとして取得し Pervasive PSQL ステータスコードを整数値で返します 構文 object.steppreviousextended StepPreviousExtended メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは Pervasive PSQL Step Previous Extended オペレーションを実行します その際 現在のレコードを使用して開始位置を確立し SelectedRecords プロパティと SelectedFields プロパティに含まれる選択条件を使用します コントロールの IncludeCurrent プロパティが True の場合 Extended Fetch オペレーションは現在のレコードから開始します このプロパティが False の場合 Extended Fetch オペレーションはレコードシーケンスの次のレコードから開始します オペレーションが正常に実行されたら 生成されたレコードセット値を Row プロパティと Column プロパティを介して利用できます オペレーションから返された行数および列数は Rows プロパティと Columns プロパティで入手できます また メソッドから返される Pervasive PSQL ステータスコードは Status プロパティで入手できます このメソッドを呼び出す前に 任意のレコード選択条件とフィールド選択条件を SelectedRecords プロパティと SelectedFields プロパティに設定し 次に Init メソッドを呼び出して必要な要求バッファー構造体を割り当てることによって 先に Extended Fetch オペレーションのコントロールを設定しておく必要があります StepLast などの単一レコードフェッチメソッドを使用して ファイルの現在のレコード位置を先に確立することもできます このメソッドはコントロールの ExtendedOps プロパティが False の場合 あるいは AutoMode が True に設定されている場合はまったく効果がありません 204

231 Transaction Transaction VAccess Transaction 関数は アプリケーション内での Pervasive PSQL トランザクション処理を制御します Pervasive PSQL トランザクションを開始 終了 中止する場合に使用できます 構文 object.transaction ioperationcode Transaction メソッドの構文は次のような要素で構成されます 要素 object ioperationcode 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します メモ : このプレースホルダーは ActiveX アーキテクチャの要件にすぎず object に接続されているファイルのトランザクションの適用範囲を制限するものではありません トランザクションの開始メソッドと終了メソッドの間にネストされた ファイルの挿入 更新 削除はすべてトランザクションに含まれます 必須 実行するトランザクション操作を指定します トランザクション処理は Pervasive PSQL レコードマネージャーのデータ整合性機能です その目的は さまざまなテーブルに関連する一連の更新作業において すべての更新を正常に実行するか またはすべての更新をロールバックして 参照整合性を確実に保つことです Transaction メソッドでサポートされる操作は次のとおりです ここに挙げられていないオペレーションコードに対してはステータスコード 1 無効なオペレーションが返されます コード定数 19 BTO_BeginTransaction 排他トランザクションを開始します ほかのプロセスはこのトランザクションが終 了しない限り トランザクションに関与しているファイルにアクセスできません 20 BTO_EndTransaction トランザクションを終了し そのトランザクションが開始してからファイルに対し て行われた変更をコミットします 21 BTO_AbortTransaction Begin Transaction オペレーションの開始以後にファイルに対して行われた変更を破 棄し トランザクションを終了します 1019 BTO_BeginTransaction 並行トランザクションを開始します (Pervasive.SQL バージョン 6 以降に対応 - それ より前のバージョンでは ステータスコード 1 を返します ) ほかのプロセスも トランザクションによって影響を受けるファイルにアクセスできます 定数宣言は GLOBAL.BAS ファイル (16 ビット Visual Basic の場合 ) GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれます アプリケーションで Transaction 定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます 205

232 ActiveX メソッドリファレンス 例 ' 並行トランザクションを開始する status% = Customers.Transaction(BTO_BeginTransaction ) If status% = 0 Then 'BeginTransaction は正常終了 ' 注文レコードを追加する status% = status% + Orders.Insert ' 請求レコードを追加する status% = status% + Invoices.Insert ' 顧客レコードを取得して修正する Customers.IndexNumber = 1 ' 顧客 ID Customers.FieldValue("custID") = _ Invoices.FieldValue("custID") status% = status% + Customers.GetEqual Customers.FieldValue("lastInvoiceDate") = Invoices.FieldValue("InvoiceDate") balance = Customers.FieldValue("balance") + Invoice.FieldValue("amount") Customers.FieldValue("balance") = balance status% = status% + Customers.Update End If If status% = 0 Then ' すべての変更が正常に終了 トランザクションをコミットする Customers.Transaction(BTO_EndTransaction) Else '1 つまたは複数の挿入に失敗 トランザクションを中止する Customers.Transaction(BTO_AbortTransaction) End If 206

233 Unlock Unlock VAccess Btrv メソッドに渡される Get または Step オペレーションコードにロックバイアスコードを加算することによって Pervasive PSQL テーブルのレコードにセットされた 単一レコードロックおよび複数レコードロックを解除します 構文 object.unlock(ilocktype) Unlock メソッドの構文は次のような要素で構成されます 要素 object ilocktype 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します 必須 削除対象となるレコードロックの種類です Unlock メソッドに渡すことができるロックタイプのコードは次のとおりです 要素 定数 0 UL_Single 現在のレコードから単一レコードロックを削除します -1 UL_CurrentMultiple 現在のレコードから複数レコードロックを削除します -2 UL_AllMultiple テーブル内のロックされているレコードからすべての複数レコードロックを削除します 定数宣言は GLOBAL.BAS ファイル (16 ビット Visual Basic の場合 ) GLOBAL.BAS ファイル (Visual Basic の場合 ) GLOBAL.PAS ファイル (Delphi の場合 ) および GLOBAL.H ファイル (Visual C++ の場合 ) に含まれます アプリケーションで Unlock 定数を使用するには これらのファイルのうち 1 つ 開発環境に適したファイルをプロジェクトに含めます 207

234 ActiveX メソッドリファレンス Update VAccess 現在のレコードを現在のデータバッファーの内容で更新し Pervasive PSQL ステータスコードを整数値で返します 構文 object.update Update メソッドの構文は次のような要素で構成されます 要素 object 必須 object プレースホルダーは [ ] のオブジェクトを評価するオブジェクト式を表します このメソッドは object に関連付けられているファイルの現在のレコードを現在のデータバッファーの内容で更新し そのオペレーションの Pervasive PSQL ステータスコードを返します 戻り値がゼロであれば正常に実行されています 戻り値が 5 の場合は ファイルに定義されている重複値を許可しないキーに対して使用されているデータバッファー内のフィールドが ファイルに既存の別のレコードと同じ値を含んでいるため レコードを更新できなかったことを示します 戻り値が 80 の場合は 矛盾が発生したことを示します つまり そのレコードは読み込まれた時点から Update メソッドが呼び出された時点までの間に 別のプロセスによって更新されているということです NNC (no-currency-change : カレンシー変更なし ) 操作を行いたい場合は KeyNumber プロパティを使用します 例 ' レコードを検索し 会社名を変更して レコードを更新する ' 検索値を設定する Customers.FieldValue("name") = "John Harbison" ' インデックスを設定し 検索を実行する Customers.IndexNumber = 1 Customers.GetEqual ' レコードが存在する場合は 会社名を変更して ' レコードを更新する Select Case Customers.Status Case 0 Customers.FieldValue("company_name") = "Harbison Consulting" Customers.Update Case 4 MsgBox "Record not found." Case Else MsgBox "Error. Pervasive PSQL status = " + Customers.Status End Select 208

235 ActiveX イベントリファレンス 8 この章では 以下のイベントについてします CommError Logon OnRemote Reposition Validate 209

236 ActiveX イベントリファレンス CommError VAccess コントロール ( 非推奨 - 以前の I*net Data Server のみ ) IDS 通信エラーが発生すると必ず発生します Vaccess コントロールで IDS との通信を試みなければ このイベントは発生しません 構文 Sub VAccess_CommError (ByVal bcanrecover As Boolean, ByVal wsaeerrcode As Integer, ByVal errorstring As String, bretry As Boolean) CommError イベントは 広範囲にわたって使用する必要があります 可能性のあるエラーすべてに特別な処理が必要なわけではありませんが 長期間にわたってクライアントの満足を得るためには次のことが重要です それは アプリケーションに関連するエラーが発生したときに そのエラーとエラーの解決のためにアプリケーション内で実行が必要な手順を 画面上ですることです CommError には 4 つのパラメーターがあります そのうちの 1 つは ユーザーが設定することができます 最初のパラメーターの bcanrecover はブール型で エラーが回復可能かどうかを示します 2 番目のパラメーターの wsaeerrcode には 該当するエラーの WinSock エラーコードが入ります 3 番目のパラメーターの errorstring には エラーのが入ります 最後に 4 番目のパラメーターの bretry では クライアントとサーバー間の通信の再確立を試行する必要があるかどうかを アプリケーションを使って設定することができます 最初のパラメーターの bcanrecover が False の場合 bretry の設定は無効になります 210

237 Logon Logon VAccess コントロール ( 非推奨 - 以前の I*net Data Server のみ ) このイベントを使用すると サーバーへのログオンプロセスのカスタム処理が可能になります VAccess コントロールが保護された IDS サーバーにログオン中で AutoLogon が False に設定されていなければ このイベントは発生しません 構文 Sub VAccess_Logon(user As String, password As String, database_set As String) このイベントは AutoLogon プロパティが False に設定されているときにのみ発生します このイベントにはアプリケーションから設定する必要のある 3 つの文字列パラメーター user password および database_set があります Logon イベントが発生し イベントからの情報が Logon 成功というものではなかった場合 CanRecover パラメーターが True に設定された CommError イベントが発生します 再度ログオンを試行する場合は Retry パラメーターを True に設定します これにより ActiveX によって Logon イベントがもう一度発生します AutoLogon が False の場合 このイベントのハンドラーでは 処理から抜け出すメカニズムを用意しておくことが必要です そうしないと 無限ループが発生する可能性があります 211

238 ActiveX イベントリファレンス OnRemote VAccess コントロール ( 非推奨 - 以前の I*net Data Server のみ ) VAccess がデータファイルあるいはデータ辞書へローカルで接続できない場合に必ず発生します 構文 Sub VAccess_OnRemote(ByRef goremote As Boolean, ByRef newlocation As String) このイベントは ActiveX コントロールが IDS サーバーとの接続を試みる前 または指定されたパスをローカルな場所に解決できなかった場合に発生します このイベントにはブール型の goremote と 文字列の newlocation の 2 つのパラメーターがあります ブール型の goremote は ActiveX が IDS サーバーとの接続を試行するかどうかを示します これは DDFPath または Location プロパティがリモートアドレスに解決されたときに発生します goremote が True か False かに応じて DDFPath または Location が以下の条件のうちの 1 つを満たす場合に そのような解決が生じます goremote が True の場合 指定されたサーバー名がローカルネットワークに存在せず IDSHOSTS ファイルにマップが見つかったとき 指定したドライブがオペレーティングシステムによってマップされずに IDSHOSTS ファイルでマップされているとき 場所が pids プロトコルを使って指定されているとき 場所がインターネットサーバープロトコルまたは IP 表記で指定されているとき HostAddress が指定されているとき goremote が False の場合 指定されたサーバー名がローカルネットワークに存在せず IDSHOSTS ファイルでマップされていないとき 指定したドライブがオペレーティングシステムによってマップされず IDSHOSTS ファイルでもマップされていないとき newlocation には解決されたパスが入ります DdfPath または Location で指定されている場所が IDSHOSTS ファイルを使用して解決された場合 newlocation には完全パスが入ります newlocation と goremote は参照によって渡されるため ユーザーはパスを変更したり ActiveX に IDS サーバーとの接続の試行を続けるか中止するかを指示することができます メモ newlocation がローカルパスに変更されても ActiveX はローカルで接続を試行することはありません 関連項目 DdfPath Location Pervasive PSQL Programmer's Guide 212

239 Reposition Reposition VAccess コントロール Reposition イベントは レコードオペレーションが VAccess コントロールによって参照された現在のレコードを変更した後に発生します このイベントは VAccess コントロールに関連付けられている現在のレコードが変更されたことをプログラムに通知します 新しいレコードが現在のレコードになった後にこのイベントが発生します 構文 Sub VAccess_Reposition([Index As Integer]) 213

240 ActiveX イベントリファレンス Validate VAccess コントロール このイベントは 関連する Pervasive PSQL ファイルに対して何らかのレコードオペレーションが行われる前に発生します 構文 Sub VAccess_Validate([Index As Integer,]OpCode As Integer, InsertRecord As Integer, UpdateRecord As Integer) OpCode は 実行される Pervasive PSQL API オペレーションのコードに相当します このコードをほかのオペレーションコードに設定すると 実行されるオペレーションが変わります このコードをゼロに設定すると オペレーションがキャンセルされます InsertRecord または UpdateRecord のどちらかを True に設定すると OpCode で指定されたオペレーションを実行する前に 設定に応じて現在のレコードが挿入または更新されます このイベントに応答して 関連する VAccess コントロールを使用して Btrv 関数を呼び出したり VAccess コントロールのレコードオペレーションプロパティを設定したりしないでください 無限のループに陥ったり ほかの予期しない結果を引き起こすことがあります 214

I

I I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX XXI XXII XXIII XXIV XXV XXVI XXVII XXVIII 1 1. 2 3 2. 4 1 5 6 7 8 9 10 1 2 3 11 3. 12 13 14 1 2 3 15 4 5 16 1 2 3 17 4 18 4. 1 2

More information

Color MultiWriter 9900C/9800C ユーザーズマニュアル

Color MultiWriter 9900C/9800C ユーザーズマニュアル l l l l l i ii iii iv v vi vii viii ix x xi xii xiii xiv xv xvi xvii xviii xix xx xxi xxii xxiii xxiv xxv xxvi 1.1 1 2 3 1 1 4 5 1 1 6 7-1 1.2 1 8 1.3 1 9 1 1.3.1 10 1 2 11 1 1 1.3.2 12 13 1 1 14 1.4

More information

困ったときのQ&A

困ったときのQ&A Help i 1 ii iii v iv 2 C Alt Delete v iv vii vi vii vi viii ix x x xi 1 2 3 4 5 xii xiii xiv xv xvi xvii c c c xviii xix P A R T 1 P A R T 2 xx P A R T 3 xxi P A R T 4 xxii xxiii P A R T 1 2 1 1 2 3

More information

『保守の比較政治学』

『保守の比較政治学』 v vi vii viii ix x xi xii xiii xiv 3 3 3 9 20 25 25 27 30 32 37 xvi 43 47 57 57 60 66 72 74 81 81 83 86 91 xvii 98 101 111 111 111 115 118 125 128 135 135 136 143 151 157 xviii 163 163 167 173 179 185

More information

* * * ** ** ** * ** * ** * ** * ** * ** ** * * ** * ** *** **** * ** * * * ** * * ** *** **** * * * * * * * * * * ** * * ** * ** ix

* * * ** ** ** * ** * ** * ** * ** * ** ** * * ** * ** *** **** * ** * * * ** * * ** *** **** * * * * * * * * * * ** * * ** * ** ix * * * * * * * * ** * * * ** * ** * ** * * * * * * ** * * * * * ** * ** = viii * * * ** ** ** * ** * ** * ** * ** * ** ** * * ** * ** *** **** * ** * * * ** * * ** *** **** * * * * * * * * * * ** * * **

More information

Step2 入門

Step2 入門 ii iii iv v vi NEC Corporation 1999 vii C O N T E N T S PART 1 PART 2 PART 3 viii PART 4 ix C O N T E N T S PART 5 x PART 6 xi C O N T E N T S PART 7 xii PART 8 PART 9 xiii C O N T E N T S xiv xv PART

More information

i ii iii iv v vi vii viii ix x xi xii xiii xiv xv xvi 2 3 4 5 6 7 $ 8 9 10 11 12 13 14 15 16 17 $ $ $ 18 19 $ 20 21 22 23 24 25 26 27 $$ 28 29 30 31 $ $ $ 32 33 34 $ 35 $ 36 $ 37 38 39 40 $ 41 42 43 44

More information

9 i 9 1 2 3 4 5 6 ii 7 8 9 10 11 12 .......................................... iii ... 1... 1........................................ 9 iv... v 3 8 9 3 vi vii viii ix x xi xii xiii xiv 34 35 22 1 2 1

More information

7 i 7 1 2 3 4 5 6 ii 7 8 9 10 11 1 12 13 14 iii.......................................... iv................................................ 21... 1 v 3 6 7 3 vi vii viii ix x xi xii xiii xiv xv 26 27

More information

I

I I II III IV V VI VII VIII IX X XI XII XIII XIV 1. 2 3 4 5 2. 6 7 8 3. 1 2 3 9 4 5 10 6 11 4. 1 2 3 1 2 12 1 2 3 1 2 3 13 14 1 2 1 15 16 1. 20 1 21 1 22 23 1 2 3 4 24 1 2 ok 25 1 2 26 1 2 3 27 2. 28

More information

ITR Market View:ECサイト構築/決済代行/CMS/SMS送信市場2018目次

ITR Market View:ECサイト構築/決済代行/CMS/SMS送信市場2018目次 ITR Market View EC CMS SMS 2018... 1 1-1... 2 1-2... 3 1-2-1... 3 1-2-2... 5 1-2-3... 5 1-2-4... 5 1-3... 6... 11 2-1 EC... 12 2-1-1... 12 2-1-2... 15 2-1-2-1... 15 2-1-2-2... 22 2-1-2-3... 24 2-1-2-4...

More information

MultiPASS B-20 MultiPASS Suite 3.10使用説明書

MultiPASS B-20 MultiPASS Suite 3.10使用説明書 TM MultiPASS Suite Ver.3.10 for Windows ii iii Copyright 1999 Canon Inc. ALL RIGHTS RESERVED iv v vi vii viii ix x 1 2 3 4 5 6 7 8 9 xi xii 1 1 1-1 1 2 3 1-2 4 5 1 1-3 6 1-4 1 7 8 1-5 9 10 11 1-6 1 1-7

More information

レーザビームプリンタ Satera ユーザーズガイド

レーザビームプリンタ Satera ユーザーズガイド JPN CD-ROM CD-ROM CD-ROM CD-ROM CD-ROM CD-ROM CD-ROM ii iii iv v vi vii viii ix x xi xii a b c d b c d a xiii xiv xv xvi xvii xviii xix xx 1 CHAPTER 1-1 1-2 1-3 1-4 b a n m l k j c d f g e i h a b c d

More information

ユーザーズガイド

ユーザーズガイド JPN CD-ROM CD-ROM CD-ROM CD-ROM ii iii iv v vi vii viii ix x 11 xi xii xiii xiv a b c d b c d a a xv xvi xvii xviii xix xx xxi xxii 1 CHAPTER 1-1 1-2 1-3 1-4 1-5 1-6 a g h i j b c k l m d e f a b c d

More information

ITR Market View:RPA/OCR/BPM市場2018目次

ITR Market View:RPA/OCR/BPM市場2018目次 ITR Market View:RPA OCR BPM 2018... 1 1-1... 2 1-2... 3 1-2-1... 3 1-2-2... 5 1-2-3... 5 1-2-4... 5 1-3... 6... 11 2-1 RPA... 12 2-1-1... 12 2-2... 15 2-2-1... 15 2-2-2... 22 2-2-3... 24 2-2-4... 26 2-2-5...

More information

困ったときのQ&A

困ったときのQ&A ii iii iv NEC Corporation 1998 v C O N T E N T S PART 1 vi vii viii ix x xi xii PART 2 xiii PART 3 xiv P A R T 1 3 1 2 PART 3 4 2 1 1 2 4 3 PART 1 4 5 5 6 PART 1 7 8 PART 1 9 1 2 3 1 2 3 10 PART 1 1 2

More information

™…

™… i 1 1 1 2 3 5 5 6 7 9 10 11 13 13 14 15 15 16 17 18 20 20 20 21 22 ii CONTENTS 23 24 26 27 2 31 31 32 32 33 34 37 37 38 39 39 40 42 42 43 44 45 48 50 51 51 iii 54 57 58 60 60 62 64 64 67 69 70 iv 70 71

More information

vi アハ ート2 アハ ート3 アハ ート4 アハ ート5 アハ ート6 アハ ート7 アハ ート8 アハ ート9 アハ ート10 アハ ート11 アハ ート12 アハ ート13 アハ ート14 アハ ート15 アハ ート16 アハ ート17 アハ ート18 アハ ート19 アハ ート20 アハ

vi アハ ート2 アハ ート3 アハ ート4 アハ ート5 アハ ート6 アハ ート7 アハ ート8 アハ ート9 アハ ート10 アハ ート11 アハ ート12 アハ ート13 アハ ート14 アハ ート15 アハ ート16 アハ ート17 アハ ート18 アハ ート19 アハ ート20 アハ iii vi アハ ート2 アハ ート3 アハ ート4 アハ ート5 アハ ート6 アハ ート7 アハ ート8 アハ ート9 アハ ート10 アハ ート11 アハ ート12 アハ ート13 アハ ート14 アハ ート15 アハ ート16 アハ ート17 アハ ート18 アハ ート19 アハ ート20 アハ ート21 アハ ート22 アハ ート23 vii アハ ート 24 アハ ート 25 アハ ート26

More information

SPP24_Program_WOC(J)-15

SPP24_Program_WOC(J)-15 9:00-9:10 9:20-10:00 Invited Lecture A1-01-I 1 10:00-10:20 A1-02 3 10:20-10:40 A1-03 5 9:20-9:40 B1-01 7 9:40-10:00 B1-02 9 10:00-10:20 B1-03 11 10:20-10:40 B1-04 13 - i - 11:00-12:00 Plenary Lecture S-01

More information

PSQL_BtrieveAPI_Guide.book

PSQL_BtrieveAPI_Guide.book PSQL v12 Btrieve API Guide Developing Applications Using the Btrieve API 免責事項 Actian Corporation は 本ソフトウェアおよびドキュメントの使用を 利用者またはその会社に対して 現状のまま で かつ同梱の使用許諾契約書に記載の契約条件によってのみ許諾するものです Actian Corporation は いかなる場合にも本ソフトウェアおよび本マニュアルに記載された内容に関するその他の一切の保証を

More information

活用ガイド (ハードウェア編)

活用ガイド (ハードウェア編) (Windows 98) 808-877675-122-A ii iii iv NEC Corporation 1999 v vi PART 1 vii viii PART 2 PART 3 ix x xi xii P A R T 1 2 1 3 4 1 5 6 1 7 8 1 9 10 11 1 12 1 1 2 3 13 1 2 3 14 4 5 1 15 1 1 16 1 17 18 1 19

More information

パソコン機能ガイド

パソコン機能ガイド PART12 ii iii iv v 1 2 3 4 5 vi vii viii ix P A R T 1 x P A R T 2 xi P A R T 3 xii xiii P A R T 1 2 3 1 4 5 1 6 1 1 2 7 1 2 8 1 9 10 1 11 12 1 13 1 2 3 4 14 1 15 1 2 3 16 4 1 1 2 3 17 18 1 19 20 1 1

More information

パソコン機能ガイド

パソコン機能ガイド PART2 iii ii iv v 1 2 3 4 5 vi vii viii ix P A R T 1 x P A R T 2 xi P A R T 3 xii xiii P A R T 1 2 1 3 4 1 5 6 1 2 1 1 2 7 8 9 1 10 1 11 12 1 13 1 2 3 14 4 1 1 2 3 15 16 1 17 1 18 1 1 2 19 20 1 21 1 22

More information

橡アップグレードB6.15.doc

橡アップグレードB6.15.doc Pervasive.SQL 2000 White Paper Btrieve TM 6.15 Pervasive.SQL TM 7 Pervasive.SQL TM 2000 White Paper Rev.1 11/1999 Pervasive Software Inc. The Freedom to Create Applications for Everyone, Everywhere ...3...3...3...4...5...5...5

More information

PSQL_Tutorials.book

PSQL_Tutorials.book Pervasive PSQL v11 SP1 Tutorials and Guide to Samples 免責事項 商標 Pervasive Software Inc. は 本ソフトウェアおよびドキュメントの使用を 利用者またはその会社に対して 現状のまま で かつ同梱の使用許諾契約書に記載の契約条件によってのみ許諾するものです Pervasive Software Inc. は いかなる場合にも本ソフトウェアおよび本マニュアルに記載された内容に関するその他の一切の保証を

More information

OFISTAR H7000ファクス編(2版 )

OFISTAR H7000ファクス編(2版 ) i ii A iii A A A A A A A A A B C D A A B C D iv B A AB A A B A B A v A C B A ABC A B C A A vi A B B A A A A A A vii A A viii ix 4 5 6 8 9 0 x xi 5 6 9 6 06 C 4 5 8 6 9 0 C 06 06 06 064 065 066 06 068 069

More information

VB-C50i/VB-C50iR 使用説明書

VB-C50i/VB-C50iR 使用説明書 a ii iii iv a v vi vii viii d a a d ix a a d b a a a b x a a g a g a e a a xi a a a xii a a xiii xiv 1-2 1-3 d 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 1-12 2-2 2-3 a 2-4 a 2-5 a 2-6 2-7 2-8 2-9 2-10 2-11 2-12

More information

リファレンス

リファレンス STEP1 STEP 2 STEP 3 ii iii iv v NEC Corporation 1998 vi C O N T E N T S P A R T 1 viii ix C O N T E N T S P A R T 2 x P A R T 3 xi C O N T E N T S P A R T 4 xii P A R T 5 xiii C O N T E N T S P A R T

More information

PHP Copyright 2000 The PHP Development Team. All rights reserved. PostgreSQL Data Base Management System formerly known as Postgres, then as Postgres95. Copyright 1994-2000 Regents of the University of

More information

名刺ファイリングOCR ユーザーズガイド

名刺ファイリングOCR ユーザーズガイド OCR OCR OCR OCR OCR 2004 9 MicrosoftWindowsWindows NT Microsoft Corporation Netscape Netscape Communications Corporation Yahoo! JAPANhttp://www.yahoo.co.jp/ Microsoft Corporation OCR i Multilingual OCR

More information

困ったときのQ&A

困ったときのQ&A ii iii iv NEC Corporation 1997 v P A R T 1 vi vii P A R T 2 viii P A R T 3 ix x xi 1P A R T 2 1 3 4 1 5 6 1 7 8 1 9 1 2 3 4 10 1 11 12 1 13 14 1 1 2 15 16 1 2 1 1 2 3 4 5 17 18 1 2 3 1 19 20 1 21 22 1

More information

活用ガイド (ソフトウェア編)

活用ガイド (ソフトウェア編) (Windows 95 ) ii iii iv NEC Corporation 1999 v P A R T 1 vi P A R T 2 vii P A R T 3 P A R T 4 viii P A R T 5 ix x P A R T 1 2 3 1 1 2 4 1 2 3 4 5 1 1 2 3 4 6 5 6 7 7 1 1 2 8 1 9 1 1 2 3 4 5 6 1 2 3 4

More information

平成18年版 男女共同参画白書

平成18年版 男女共同参画白書 i ii iii iv v vi vii viii ix 3 4 5 6 7 8 9 Column 10 11 12 13 14 15 Column 16 17 18 19 20 21 22 23 24 25 26 Column 27 28 29 30 Column 31 32 33 34 35 36 Column 37 Column 38 39 40 Column 41 42 43 44 45

More information

セットアップカード

セットアップカード R3.4 セットアップカード - 第 1.01 版 - Copyright NEC Corporation 2003-2016. All rights reserved. 商標について LogCollector は日本電気株式会社の登録商標です Microsoft Windows Windows Server Windows Vista Internet Explorer および SQL Server

More information

SR-53V[接続編]

SR-53V[接続編] 1 WIRELESS BROADBAND VoIP ROUTER SR-53V 2 3 4 5 6 7 8 9 i Icom Inc. ii iii iv v vi vii viii ix x q w xi xii q w e r t y q w e r t q w e r t y u i o!0!1!2 xiii q w e r t q w e q w e r t q w e r t q w e

More information

PHP4徹底攻略 改訂版

PHP4徹底攻略 改訂版 PHP Copyright 2002 The PHP Development Team. All rights reserved. PostgreSQL Data Base Management System formerly known as Postgres, then as Postgres95. Copyright 1994-2002 Regents of the University of

More information

活用ガイド (ソフトウェア編)

活用ガイド (ソフトウェア編) (Windows 98 ) ii iii iv v NEC Corporation 1999 vi P A R T 1 P A R T 2 vii P A R T 3 viii P A R T 4 ix P A R T 5 x P A R T 1 2 3 1 1 2 4 1 2 3 4 5 1 1 2 3 4 5 6 6 7 7 1 1 2 8 1 9 1 1 2 3 4 5 6 1 2 3 10

More information

1... 1 2... 1 1... 1 2... 2 3... 2 4... 4 5... 4 6... 4 7... 22 8... 22 3... 22 1... 22 2... 23 3... 23 4... 24 5... 24 6... 25 7... 31 8... 32 9... 3

1... 1 2... 1 1... 1 2... 2 3... 2 4... 4 5... 4 6... 4 7... 22 8... 22 3... 22 1... 22 2... 23 3... 23 4... 24 5... 24 6... 25 7... 31 8... 32 9... 3 3 2620149 3 6 3 2 198812 21/ 198812 21 1 3 4 5 JISJIS X 0208 : 1997 JIS 4 JIS X 0213:2004 http://www.pref.hiroshima.lg.jp/site/monjokan/ 1... 1 2... 1 1... 1 2... 2 3... 2 4... 4 5... 4 6... 4 7... 22

More information

LASER SHOT LBP-1210 ユーザーズガイド

LASER SHOT LBP-1210 ユーザーズガイド レーザビームプリンタ ユーザーズガイド 最初にお読みください ご使用前に必ずこの取扱説明書をお読みください 将来いつでも使用できるように大切に保管してください JPN 1 1 3 4 5 6 3 4 5 6 i i ii iv vi viii ix x xiv xv 1 4 7 10 11 17 19 5 8 30 31 3 34 5 53 69 73 81 83 84 86 111 ii 11

More information

13

13 131 71 71 71 71 71 71 71 7 HP LaserJet 4050, 4050 T, 4050 N 1 7 4050 TN 1 71 71 71 71 71 71 71 71 71 71 7 1 71 71 7 1 71 71 71 71 71 71 71 71 71 71 71 71 7 1 71 71 71 71 71 71 7 1 71 71 71 71 71 7 13 131

More information

iStorage NSシリーズ 管理者ガイド

iStorage NSシリーズ 管理者ガイド istorage NS シリーズ 管理者ガイド ( 詳細編 ) 第 3.0 版 2014 年 10 月 商標について Microsoft Windows Windows Server および Windows Vista は米国 Microsoft Corporation の米国および その他の国における登録商標です ESMPRO は日本電気株式会社の商標です Windows Server 2012

More information

エクセルカバー入稿用.indd

エクセルカバー入稿用.indd i 1 1 2 3 5 5 6 7 7 8 9 9 10 11 11 11 12 2 13 13 14 15 15 16 17 17 ii CONTENTS 18 18 21 22 22 24 25 26 27 27 28 29 30 31 32 36 37 40 40 42 43 44 44 46 47 48 iii 48 50 51 52 54 55 59 61 62 64 65 66 67 68

More information

Windows IoT Core と Raspberry Pi 3 での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日

Windows IoT Core と Raspberry Pi 3 での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日 Windows IoT Core と Raspberry Pi 3 での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日 免責事項株式会社エージーテックは本書の使用を 利用者またはその会社に対して 現状のまま でのみ許諾するものです 株式会社エージーテックは いかなる場合にも本書に記載された内容に関するその他の一切の保証を 明示的にも黙示的にも行いません

More information

01_.g.r..

01_.g.r.. I II III IV V VI VII VIII IX X XI I II III IV V I I I II II II I I YS-1 I YS-2 I YS-3 I YS-4 I YS-5 I YS-6 I YS-7 II II YS-1 II YS-2 II YS-3 II YS-4 II YS-5 II YS-6 II YS-7 III III YS-1 III YS-2

More information

Raspberry Pi 3(Raspbian) での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日

Raspberry Pi 3(Raspbian) での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日 Raspberry Pi 3(Raspbian) での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日 免責事項株式会社エージーテックは本書の使用を 利用者またはその会社に対して 現状のまま でのみ許諾するものです 株式会社エージーテックは いかなる場合にも本書に記載された内容に関するその他の一切の保証を 明示的にも黙示的にも行いません 本書の内容は予告なく変更される場合があります

More information

untitled

untitled 13 13ECE/CEP/158 1 71 71 71 71 71 71 71 71 71 71 7 1 71 71 71 71 71 71 71 71 71 71 71 71 7 1 71 71 71 71 71 71 71 7 1 71 71 71 71 71 71 71 71 71 71 7 1 71 71 71 71 71 71 71 71 71 71 71 7 1 71 71 71 71

More information

01_31窶愴胆1窶窶ー窶慊イfiツ。01-16

01_31窶愴胆1窶窶ー窶慊イfiツ。01-16 2 SATOW Morihiro 1913 1931 34 37 40 1973 1930 40 i 15 1937 ii 3 1923 1875 1962 1888 1973 1897 1982 iii 1900 iv v 1872 1822 4 1902 1927 20 1891 1929 vi 1900 vii 5 viii ix x xi 1925 20 6 1930 1925 7 1930

More information

<4D6963726F736F667420506F776572506F696E74202D208376838C835B83938365815B835683878393312E707074205B8CDD8AB78382815B83685D>

<4D6963726F736F667420506F776572506F696E74202D208376838C835B83938365815B835683878393312E707074205B8CDD8AB78382815B83685D> i i vi ii iii iv v vi vii viii ix 2 3 4 5 6 7 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

More information

SC-85X2取説

SC-85X2取説 I II III IV V VI .................. VII VIII IX X 1-1 1-2 1-3 1-4 ( ) 1-5 1-6 2-1 2-2 3-1 3-2 3-3 8 3-4 3-5 3-6 3-7 ) ) - - 3-8 3-9 4-1 4-2 4-3 4-4 4-5 4-6 5-1 5-2 5-3 5-4 5-5 5-6 5-7 5-8 5-9 5-10 5-11

More information

CLUSTERPRO X for Windows PPガイド

CLUSTERPRO X for Windows PPガイド CLUSTERPRO X for Windows PP ガイド (WebSAM Storage RepNavi Suite) 2018.06.15 第 03 版 改版履歴版数 改版日付 内容 1 2012/08/10 PPガイドより分冊し 新規作成 2 2012/12/07 3 2018/06/15 機能概要 最新情報の入手先 の記述を更新 機能概要 の記述内容を更新 Copyright NEC Corporation

More information

14 1 5 2 15 2 6 3 6 . i common law ii iii. i 1997 337 ii 49 7 1977 249 iii 3 iv martial rule. 8 14 31 70 iv p.28 p.31 4 a. v vi vii b. viii ix v 1999 vi 1 1961 vii 17 1957 viii 1983 ix 1998 5 x 3 2

More information

Copyright 2001, 1999, 1997, 1995, 1993, 1991, 1990 by The McGraw-Hill Companies, Inc. All rights reserved. Printed in the United States of America. Except as permitted under the United States Copyright

More information

1... 1 1... 1 2... 1 3... 1 4... 4 5... 7 6... 7 7... 12 8... 12 9... 13 10... 13 11... 13 12... 14 2... 14 1... 14 2... 16 3... 18 4... 19 5... 19 6.

1... 1 1... 1 2... 1 3... 1 4... 4 5... 7 6... 7 7... 12 8... 12 9... 13 10... 13 11... 13 12... 14 2... 14 1... 14 2... 16 3... 18 4... 19 5... 19 6. 3 2620149 1 3 8 3 2 198809 1/1 198809 1 1 3 4 5 JISJIS X 0208 : 1997 JIS 4 JIS X 0213:2004 http://www.pref.hiroshima.lg.jp/site/monjokan/ 1... 1 1... 1 2... 1 3... 1 4... 4 5... 7 6... 7 7... 12 8... 12

More information

Quark License Administrator 4.0 User Guide

Quark License Administrator 4.0 User Guide Quark License Administrator 2006Quark Inc.Quark Media House Sàrl 2000-2006Quark Inc.Quark Media House Sàrl Quark 5,541,991 5,680,619 5,907,704 6,005,560 6,052,514 6,081,262 6,633,666 6,947,959 B1 6,940,518

More information

Systemwalker Operation Manager V12.0L10/12.0 Firewall適用ガイド

Systemwalker Operation Manager V12.0L10/12.0  Firewall適用ガイド Systemwalker Operation Manager V12.0L10/12.0 Firewall 適用ガイド J2X1-1590-01Z0(A) Microsoft Windows NT / Microsoft Windows 2000/ Microsoft Windows Server 2003 UNIX 共通 まえがき 本書の目的本書は Firewall を使用した環境で Systemwalker

More information

はがきファイリングOCR V1.1 ユーザーズガイド

はがきファイリングOCR V1.1 ユーザーズガイド OCR V1.1 OCR V1.1 OCR V1.1 OCR V1.1 Readme.txt OCR V1.1 OCR V1.1 OCR 2004 10 MicrosoftWindowsWindows NT Microsoft Corporation Microsoft Corporation All Rights Reserved, Copyright PFU 2001-2004 OCR V1.1

More information

Polycom RealConnect for Microsoft Office 365

Polycom RealConnect for Microsoft Office 365 ユーザガイド Polycom RealConnect for Microsoft Office 365 1.0 4 月 2017 年 3725-06676-005 A Copyright 2017, Polycom, Inc. All rights reserved. 本書のいかなる部分も Polycom, Inc. の明示的な許可なしに いかなる目的でも 電子的または機械的などいかなる手段でも 複製

More information

FFD.fm

FFD.fm D FFD A B...2...2...3...3...5...5...6...7...7...8...8...9...9 ASSY... 10... 10...11... 12... 13... 15... 34... 34... 34... 34... 34... 35 C FFD E F G H I J K L FFD - 1 PFP:00001 JDS002CA 2 3 MP No.2 FFD

More information

ystemwalker Operation Manager V12.0L10/12.1

ystemwalker Operation Manager V12.0L10/12.1 Systemwalker Operation Manager V12.0L10/12.1 Firewall 適用ガイド J2X1-1590-02Z0(00) Microsoft Windows NT / Microsoft Windows 2000/ Microsoft Windows Server 2003 UNIX 共通 まえがき 本書の目的本書は Firewall を使用した環境で Systemwalker

More information

SCM550 在庫 / 購買管理パラメータ設定. コース概要 コースバージョン : 15 コース期間 : 5 日間

SCM550 在庫 / 購買管理パラメータ設定. コース概要 コースバージョン : 15 コース期間 : 5 日間 SCM550 在庫 / 購買管理パラメータ設定. コース概要 コースバージョン : 15 コース期間 : 5 日間 著作権および商標 2015 SAP SE. All rights reserved. 本書のいかなる部分も SAP SE の明示的な許可なく 複製 送信することは その形態または目的を問わず禁じられています 本書に記載された情報は 予告なしに変更されることがあります SAP SE またはその販売店が販売するソフトウェア製品には

More information

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド インテル Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版インストール ガイド エクセルソフト株式会社 Version 2.1.0-20190405 目次 1. はじめに.................................................................................

More information

パソコン決裁7 捺印ツールインストールマニュアル

パソコン決裁7 捺印ツールインストールマニュアル 捺印ツールインストールマニュアル 第四版 2014 Shachihata Inc. All rights reserved. 内容 1 はじめに... 3 2 捺印ツールについて... 3 3 自動起動について... 3 3.1 Business 捺印ツール... 3 3.2 Basic 捺印ツール... 4 4 前提アプリケーションについて (Business Basic 共通 )... 4 5

More information