PSQL_ActiveX_Guide.book

Similar documents
PSQL_ActiveX_Guide.book

PSQL_ActiveX_Guide.book

I

困ったときのQ&A

困ったときのQ&A

学習内容と日常生活との関連性の研究-まえがき・概要・目次

『保守の比較政治学』

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

目次情報

Step2 入門




I

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

untitled

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

Microsoft Word - 51プログラム名簿目次070913w.doc

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

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

01_SWGuide_V8.50.fm

ユーザーズガイド

Javaと.NET

ITR Market View:アイデンティティ/アクセス管理市場2018目次

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

MultiPASS Suite 3.20 使用説明書

困ったときのQ&A

PSQL_BtrieveAPI_Guide.book

PSQL v12 新機能のご紹介 ~ 認証要件変更に伴う運用の見直し ~ 株式会社エージーテック 2015 年 1 月 13 日

™…

ii

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

橡PervasiveSQL2000ReviewersGuide.PDF

SPP24_Program_WOC(J)-15

はしがき・目次・事例目次・凡例.indd

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

C ontents VI VII

パソコン機能ガイド

パソコン機能ガイド

untitled

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

2004年度日本経団連規制改革要望

PSQL_Tutorials.book

OFISTAR H7000ファクス編(2版 )

リファレンス

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



13

困ったときのQ&A

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


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

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

II

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

セットアップカード

ITR Market View:情報漏洩対策市場2017目次

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

SR-53V[接続編]

橡6.プログラム.doc

(i)

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

...h.book

III


ITR Market View:クラウド・コンピューティング市場2018目次

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

PHP4徹底攻略 改訂版

コミュニケーションユーティリティー編


PSQL_JCL_Guide.book

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

CLUSTERPRO X for Windows PPガイド

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

01_.g.r..

Ajax-ch00

untitled

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

<4D F736F F F696E74202D C835B B E B8CDD8AB B83685D>

SC-85X2取説


RemoteCall Mac OS X Viewer Agentインストールガイド

結婚生活を強める

keysql42_usersguide




OpenRulesモジュール

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

OpenRulesモジュール

初等協会5

ネットワーク装置設定/ アドレス帳編集編

たのしいプログラミング Pythonではじめよう!

Printer Driverセットアップ編

Polycom RealConnect for Microsoft Office 365

FFD.fm

Microsoft Word - Manage_Add-ons

Hitachi Compute Adapter -Hitachi Compute Plug-in for VMware vCenter- サポートマトリックス

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

Transcription:

PSQL v12 ActiveX Controls Guide Developing Applications Using PSQL ActiveX Controls

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

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

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

目次 カスタムプロパティ........................................... 45 VAList....................................................... 46..................................................... 46..................................................... 46 カスタムプロパティとメソッド.................................... 46 VAOption..................................................... 47..................................................... 47..................................................... 47 カスタムプロパティとメソッド.................................... 47 VAText...................................................... 48..................................................... 48..................................................... 48 カスタムプロパティとメソッド.................................... 48 5 カテゴリ別プロパティ メソッド およびイベント................ 49 ActiveX のプロパティ メソッド およびイベントの概要......................... 50 レコードセットの取得............................................. 51 プロパティとメソッド.......................................... 51 イベント.................................................. 52 ファイルの処理................................................. 53 プロパティとメソッド.......................................... 53 データ辞書メソッド.............................................. 54 プロパティとメソッド.......................................... 54 レコード内のフィールドへのアクセス.................................... 56 プロパティとメソッド.......................................... 56 レコードの挿入 更新 および削除..................................... 57 プロパティとメソッド.......................................... 57 イベント.................................................. 57 個別レコードの取得.............................................. 58 プロパティとメソッド.......................................... 58 イベント.................................................. 59 最適化とデバッグ................................................ 60 プロパティとメソッド.......................................... 60 6 ActiveX プロパティリファレンス......................... 61 AutoDialog.................................................... 62.................................................. 62..................................................... 62..................................................... 62 関連項目.................................................. 62 AutoLogon.................................................... 63.................................................. 63..................................................... 63..................................................... 63 関連項目.................................................. 63 AutoMode..................................................... 64 v

目次.................................................. 64..................................................... 64..................................................... 64 関連項目.................................................. 64 AutoOpen..................................................... 65.................................................. 65..................................................... 65 関連項目.................................................. 65 Buffer....................................................... 66.................................................. 66..................................................... 66 構文..................................................... 66..................................................... 66 例...................................................... 66 関連項目.................................................. 67 CacheRejectMax................................................. 68.................................................. 68..................................................... 68..................................................... 68 関連項目.................................................. 68 CacheRows.................................................... 69.................................................. 69..................................................... 69..................................................... 69 関連項目.................................................. 69 CancelDialog................................................... 70.................................................. 70..................................................... 70..................................................... 70 関連項目.................................................. 70 Column...................................................... 71.................................................. 71..................................................... 71..................................................... 71 関連項目.................................................. 71 ColumnName................................................... 72.................................................. 72..................................................... 72..................................................... 72 関連項目.................................................. 72 Columns...................................................... 73.................................................. 73..................................................... 73..................................................... 73 例...................................................... 73 関連項目.................................................. 73 ColumnWidth................................................... 74 vi

目次.................................................. 74..................................................... 74 関連項目.................................................. 74 CompressData................................................... 75.................................................. 75..................................................... 75..................................................... 75 関連項目.................................................. 75 DatabaseName................................................... 76.................................................. 76..................................................... 76..................................................... 76 関連項目.................................................. 76 DataLength.................................................... 77.................................................. 77..................................................... 77..................................................... 77 関連項目.................................................. 77 DdfKeyUseIndexDDFOnly............................................ 78.................................................. 78..................................................... 78..................................................... 78 関連項目.................................................. 78 DdfPath...................................................... 79.................................................. 79..................................................... 79..................................................... 79 マップされたドライブ.......................................... 79 URL (Uniform Resource Locator).................................... 79 UNC (Universal Naming Convention).................................. 79 例...................................................... 80 関連項目.................................................. 80 DdfTransactionMode............................................... 81.................................................. 81..................................................... 81..................................................... 81 関連項目.................................................. 81 ExtendedOps................................................... 82.................................................. 82..................................................... 82..................................................... 82 関連項目.................................................. 82 FieldList...................................................... 83.................................................. 83..................................................... 83..................................................... 83 例...................................................... 84 vii

目次 関連項目.................................................. 84 Fields....................................................... 85.................................................. 85..................................................... 85 関連項目.................................................. 85 FieldValue..................................................... 86.................................................. 86..................................................... 86 構文..................................................... 86..................................................... 86 例...................................................... 86 関連項目.................................................. 87 FileVersion.................................................... 88.................................................. 88..................................................... 88..................................................... 88 FireEvents..................................................... 89.................................................. 89..................................................... 89..................................................... 89 FocusSelText................................................... 90.................................................. 90..................................................... 90 HostAddress.................................................... 91.................................................. 91..................................................... 91..................................................... 91 関連項目.................................................. 91 HostConnect.................................................... 92.................................................. 92..................................................... 92..................................................... 92 関連項目.................................................. 92 IncludeCurrent................................................... 93.................................................. 93..................................................... 93..................................................... 93 関連項目.................................................. 93 IndexList..................................................... 94.................................................. 94..................................................... 94..................................................... 94 例...................................................... 94 関連項目.................................................. 95 IndexNumber................................................... 96.................................................. 96 viii

目次..................................................... 96..................................................... 96 関連項目.................................................. 96 IntegralHeight................................................... 97.................................................. 97..................................................... 97..................................................... 97 Join........................................................ 98.................................................. 98..................................................... 98 構文..................................................... 98..................................................... 98 例...................................................... 98 関連項目.................................................. 99 KeyNumber.................................................... 100.................................................. 100..................................................... 100..................................................... 100 関連項目.................................................. 100 List......................................................... 101.................................................. 101..................................................... 101 構文..................................................... 101..................................................... 101 例...................................................... 101 Location...................................................... 102.................................................. 102..................................................... 102..................................................... 102 例...................................................... 102 関連項目.................................................. 102 Locked....................................................... 103.................................................. 103..................................................... 103 構文..................................................... 103 MaxBufferSize.................................................. 104.................................................. 104..................................................... 104..................................................... 104 関連項目.................................................. 104 MaxLength.................................................... 105.................................................. 105..................................................... 105..................................................... 105 OemString..................................................... 106.................................................. 106..................................................... 106 ix

目次..................................................... 106 OpenMode..................................................... 107.................................................. 107..................................................... 107..................................................... 107 関連項目.................................................. 107 OwnerName.................................................... 108.................................................. 108..................................................... 108..................................................... 108 例...................................................... 108 関連項目.................................................. 108 PageSize...................................................... 109.................................................. 109..................................................... 109..................................................... 109 関連項目.................................................. 109 Percentage..................................................... 110.................................................. 110..................................................... 110 構文..................................................... 110..................................................... 110 例...................................................... 110 関連項目.................................................. 110 Port........................................................ 111.................................................. 111..................................................... 111..................................................... 111 Position...................................................... 112.................................................. 112..................................................... 112..................................................... 112 例...................................................... 112 関連項目.................................................. 112 RefreshLocations................................................. 113.................................................. 113..................................................... 113..................................................... 113 例...................................................... 113 関連項目.................................................. 113 Row........................................................ 114.................................................. 114..................................................... 114..................................................... 114 例...................................................... 114 関連項目.................................................. 114 RowPosition.................................................... 115 x

目次.................................................. 115..................................................... 115..................................................... 115 関連項目.................................................. 115 Rows........................................................ 116.................................................. 116..................................................... 116..................................................... 116 例...................................................... 116 関連項目.................................................. 116 SelectedFields................................................... 117.................................................. 117..................................................... 117..................................................... 117 例...................................................... 117 関連項目.................................................. 117 SelectedRecords.................................................. 118.................................................. 118..................................................... 118 構文..................................................... 118..................................................... 118 関連項目.................................................. 118 SessionID..................................................... 119.................................................. 119..................................................... 119..................................................... 119 関連項目.................................................. 119 Status....................................................... 120.................................................. 120..................................................... 120 関連項目.................................................. 120 TableName.................................................... 121.................................................. 121..................................................... 121 例...................................................... 121 関連項目.................................................. 121 TimeOutVal.................................................... 122.................................................. 122..................................................... 122..................................................... 122 TotalRecords................................................... 123.................................................. 123..................................................... 123..................................................... 123 例...................................................... 123 関連項目.................................................. 123 Uppercase..................................................... 124 xi

目次.................................................. 124..................................................... 124..................................................... 124 VAccessName................................................... 125.................................................. 125..................................................... 125..................................................... 125 VAAutoScroll................................................... 126.................................................. 126..................................................... 126..................................................... 126 VADataType................................................... 127.................................................. 127..................................................... 127..................................................... 127 VADebugMode.................................................. 128.................................................. 128..................................................... 128..................................................... 128 VADecimal.................................................... 129.................................................. 129..................................................... 129..................................................... 129 VAErrorDialog.................................................. 130.................................................. 130..................................................... 130..................................................... 130 VAFieldName................................................... 131.................................................. 131..................................................... 131..................................................... 131 VAFormat..................................................... 132.................................................. 132..................................................... 132..................................................... 132 例...................................................... 133 VALockBias.................................................... 134.................................................. 134..................................................... 134..................................................... 134 VAOffset..................................................... 135.................................................. 135..................................................... 135..................................................... 135 VAOperation................................................... 136.................................................. 136 xii

目次..................................................... 136..................................................... 136 VARecordList................................................... 137.................................................. 137..................................................... 137..................................................... 137 VASearch..................................................... 138.................................................. 138..................................................... 138..................................................... 138 VASize...................................................... 139.................................................. 139..................................................... 139 VAValueFalse................................................... 140.................................................. 140..................................................... 140..................................................... 140 VAValueTrue................................................... 141.................................................. 141..................................................... 141..................................................... 141 7 ActiveX メソッドリファレンス.......................... 143 AboutBox..................................................... 144.................................................. 144..................................................... 144 AddItem...................................................... 145.................................................. 145..................................................... 145 構文..................................................... 145..................................................... 145 例...................................................... 145 Btrv........................................................ 146.................................................. 146..................................................... 146 構文..................................................... 146..................................................... 146 例...................................................... 147 Clear........................................................ 148.................................................. 148..................................................... 148 構文..................................................... 148..................................................... 148 例...................................................... 148 Close........................................................ 149.................................................. 149..................................................... 149 xiii

目次 構文..................................................... 149..................................................... 149 例...................................................... 149 DdfAddIndex................................................... 150.................................................. 150..................................................... 150 構文..................................................... 150 戻り値................................................... 150..................................................... 150 関連項目.................................................. 150 DdfAddTable................................................... 151.................................................. 151..................................................... 151 構文..................................................... 151 戻り値................................................... 151..................................................... 151 例...................................................... 151 関連項目.................................................. 151 DdfAddTableName................................................ 152.................................................. 152..................................................... 152 構文..................................................... 152 戻り値................................................... 152..................................................... 152 例...................................................... 152 関連項目.................................................. 152 DdfClearFields.................................................. 153.................................................. 153..................................................... 153 構文..................................................... 153 戻り値................................................... 153..................................................... 153 関連項目.................................................. 153 DdfClearIndexes................................................. 154.................................................. 154..................................................... 154 構文..................................................... 154 戻り値................................................... 154..................................................... 154 関連項目.................................................. 154 DdfCreateDictionary............................................... 155.................................................. 155..................................................... 155 構文..................................................... 155 戻り値................................................... 155..................................................... 155 関連項目.................................................. 155 xiv

目次 DdfCreateTable.................................................. 156.................................................. 156..................................................... 156 構文..................................................... 156 戻り値................................................... 156..................................................... 156 例...................................................... 156 関連項目.................................................. 156 DdfDropIndex................................................... 157.................................................. 157..................................................... 157 構文..................................................... 157 戻り値................................................... 157..................................................... 157 例...................................................... 157 関連項目.................................................. 158 DdfDropIndexMaintain.............................................. 159.................................................. 159..................................................... 159 構文..................................................... 159 戻り値................................................... 159..................................................... 159 例...................................................... 159 関連項目.................................................. 159 DdfDropTable................................................... 160.................................................. 160..................................................... 160 構文..................................................... 160 戻り値................................................... 160..................................................... 160 関連項目.................................................. 160 DdfGetFieldComments.............................................. 161.................................................. 161..................................................... 161 構文..................................................... 161 戻り値................................................... 161..................................................... 161 例...................................................... 161 関連項目.................................................. 161 DdfModifyLocation................................................ 162.................................................. 162..................................................... 162 構文..................................................... 162 戻り値................................................... 162..................................................... 162 例...................................................... 162 関連項目.................................................. 162 DdfModifyTableName.............................................. 163 xv

目次.................................................. 163..................................................... 163 構文..................................................... 163 戻り値................................................... 163..................................................... 163 関連項目.................................................. 163 DdfSetOwner................................................... 164.................................................. 164..................................................... 164 DdfTestOwnerName............................................... 166.................................................. 166..................................................... 166 構文..................................................... 166 戻り値................................................... 166..................................................... 166 関連項目.................................................. 166 Delete....................................................... 167.................................................. 167..................................................... 167 構文..................................................... 167..................................................... 167 例...................................................... 167 FormatFieldValue................................................. 168.................................................. 168..................................................... 168 構文..................................................... 168..................................................... 168 例...................................................... 168 関連項目.................................................. 168 GetDirect..................................................... 169.................................................. 169..................................................... 169 構文..................................................... 169..................................................... 169 GetEqual...................................................... 170.................................................. 170..................................................... 170 構文..................................................... 170..................................................... 170 例...................................................... 170 GetFirst...................................................... 171.................................................. 171..................................................... 171 構文..................................................... 171..................................................... 171 例...................................................... 171 GetGreater..................................................... 172 xvi

目次.................................................. 172..................................................... 172 構文..................................................... 172..................................................... 172 例...................................................... 172 GetGreaterOrEqual................................................ 174.................................................. 174..................................................... 174 構文..................................................... 174..................................................... 174 例...................................................... 174 GetLast...................................................... 175.................................................. 175..................................................... 175 構文..................................................... 175..................................................... 175 例...................................................... 175 GetLess...................................................... 176.................................................. 176..................................................... 176 構文..................................................... 176..................................................... 176 GetLessOrEqual.................................................. 177.................................................. 177..................................................... 177 構文..................................................... 177..................................................... 177 GetNext...................................................... 178.................................................. 178..................................................... 178 構文..................................................... 178..................................................... 178 例...................................................... 178 GetNextExtended................................................. 179.................................................. 179..................................................... 179 構文..................................................... 179..................................................... 179 例...................................................... 179 GetPrevious.................................................... 181.................................................. 181..................................................... 181 構文..................................................... 181..................................................... 181 GetPreviousExtended............................................... 182.................................................. 182..................................................... 182 xvii

目次 構文..................................................... 182..................................................... 182 GetTableList.................................................... 183.................................................. 183..................................................... 183 構文..................................................... 183 戻り値................................................... 183..................................................... 183 例...................................................... 183 関連項目.................................................. 183 GetTotalSegments................................................. 184.................................................. 184..................................................... 184 構文..................................................... 184 例...................................................... 184 Init......................................................... 185.................................................. 185..................................................... 185 構文..................................................... 185..................................................... 185 例 #1 - Automode = True.......................................... 185 例 #2 - Automode = False......................................... 185 Insert........................................................ 186.................................................. 186..................................................... 186 構文..................................................... 186..................................................... 186 例...................................................... 186 Open........................................................ 187.................................................. 187..................................................... 187 構文..................................................... 187..................................................... 187 例...................................................... 187 Refresh...................................................... 188.................................................. 188..................................................... 188 構文..................................................... 188 例...................................................... 188 RemoveItem.................................................... 189.................................................. 189..................................................... 189 構文..................................................... 189..................................................... 189 RowColumnValue................................................. 190.................................................. 190..................................................... 190 xviii

目次 構文..................................................... 190..................................................... 190 例...................................................... 190 SetFileFlag.................................................... 191.................................................. 191..................................................... 191 構文..................................................... 191..................................................... 191 例...................................................... 191 SetOwner..................................................... 192.................................................. 192..................................................... 192 構文..................................................... 192..................................................... 192 関連項目.................................................. 192 ShowSelectedFieldsDlg.............................................. 193.................................................. 193..................................................... 193 構文..................................................... 193..................................................... 193 例...................................................... 193 ShowSelectedRecordsDlg............................................. 194.................................................. 194..................................................... 194 構文..................................................... 194..................................................... 194 例...................................................... 194 Stat......................................................... 195.................................................. 195..................................................... 195 構文..................................................... 195 戻り値................................................... 195..................................................... 195 StatusDialog.................................................... 196.................................................. 196..................................................... 196 構文..................................................... 196 例...................................................... 196 StepFirst...................................................... 197.................................................. 197..................................................... 197 構文..................................................... 197..................................................... 197 StepLast...................................................... 198.................................................. 198..................................................... 198 構文..................................................... 198 xix

目次..................................................... 198 StepNext...................................................... 199.................................................. 199..................................................... 199 構文..................................................... 199..................................................... 199 StepNextExtended................................................. 200.................................................. 200..................................................... 200 構文..................................................... 200..................................................... 200 StepPrevious.................................................... 201.................................................. 201..................................................... 201 構文..................................................... 201..................................................... 201 StepPreviousExtended............................................... 202.................................................. 202..................................................... 202 構文..................................................... 202..................................................... 202 Transaction.................................................... 203.................................................. 203..................................................... 203 構文..................................................... 203..................................................... 203 例...................................................... 204 Unlock....................................................... 205.................................................. 205..................................................... 205 構文..................................................... 205..................................................... 205 Update....................................................... 206.................................................. 206..................................................... 206 構文..................................................... 206..................................................... 206 例...................................................... 206 8 ActiveX イベントリファレンス.......................... 207 CommError.................................................... 208.................................................. 208..................................................... 208 構文..................................................... 208..................................................... 208 Logon....................................................... 209.................................................. 209 xx

目次..................................................... 209 構文..................................................... 209..................................................... 209 OnRemote..................................................... 210.................................................. 210..................................................... 210 構文..................................................... 210..................................................... 210 関連項目.................................................. 210 Reposition..................................................... 211.................................................. 211..................................................... 211 構文..................................................... 211 Validate...................................................... 212.................................................. 212..................................................... 212 構文..................................................... 212..................................................... 212 xxi

目次 xxii

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

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

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

xxvi

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

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

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

ActiveX の概要 ActiveX アクセス方法の選択 ActiveX は Microsoft の商標用語で Windows OLE ( オブジェクトのリンクと埋め込み ) カスタムコントロールを示します ActiveX は当初 Microsoft Visual Basic 言語の拡張機能として開発されたもので その後すぐに Microsoft のほかの言語製品や インターネットエクスプローラーなどのほかのアプリケーションへ導入されました ActiveX コントロールをサポートする言語またはプログラミング環境で Windows アプリケーションを作成する場合は 以下のような一般的には難しい エラーを起こしやすいデータアクセスの作業の多くを PSQL 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 アクセス方法を使用する予定であり アプリケーションがテキストボックス リストボックス グリッドなどのユーザーインターフェイスオブジェクトを必要とする場合は PSQL SDK ActiveX アクセス方法に用意されている PSQL データバウンドコンロールを使用するか アプリケーションコード内でこれらへのデータバインドを実装する必要があります ActiveX アクセス方法を利用するとき PSQL ActiveX アクセス方法は SQL アクセスやデータベース抽象化よりデータベースのパフォーマンスが重要であるアプリケーションで ODBC アクセスの代替として使用できます このインターフェイスは同じ基本的なデータサービスの多くを提供しますが リレーショナルエンジンではなく MicroKernel エンジンを使用します 4

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

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

ActiveX コントロールを使用する最初の手順 ActiveX コントロールを使用する最初の手順 ここでは PSQL で処理をすばやく開始する方法を示します このセクションの作業を実行すれば PSQL アプリケーションの開発を順調に進めることができるでしょう PSQL Control Center を使用してデータベースを作成する 開発ツールに Active X インターフェイスをインポートする (Visual Basic と Delphi の手順 ) PSQL Control Center を使用してデータベースを作成する PSQL データベースを作成する最も簡単な方法は PSQL Control Center を使用することです PSQL User's Guide の 新規データベースを作成するには を参照してください Visual Basic と Delphi への ActiveX アクセス方法のインポート 以下の手順では ActiveX コントロールを IDE にインポートする方法を示します Visual Basic Visual Basic プロジェクトに ActiveX コントロールをインポートするには 1 メニューバーから [ プロジェクト ] を選択します 2 [ プロジェクト ] ドロップダウンメニューから [ コンポーネント ] を選択します 3 [ コンポーネント ] ダイアログボックスから [ コントロール ] タブを選択します 4 [PSQL ActiveX Data Source] および [PSQLBound Controls] オプションを選択します 5 [OK] をクリックします 7

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

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

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

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

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

ActiveX アクセス方法を使用したアプリケーションの作成 図 3 VAccess プロパティを表示するプロパティウィンドウ Visual Basic コードエディター フォームまたはコントロールをダブルクリックすると Visual Basic のコードエディターが開きます コードエディターの使用方法については Visual Basic のマニュアルを参照してください 各プロパティの構文などの詳細については 本マニュアルを参照してください プロパティの設定 コントロールのプロパティを設定するには 1 プロパティを設定するコントロールを選択します 2 プロパティページ Visual Basic プロパティウィンドウまたはコードエディターで変更するプロパティを検索します プロパティへのアクセスについては プロパティへのアクセス を参照してください 3 追加または変更する各プロパティの値を設定するには テキストボックスにその値を入力するか フィールドをクリックしたときに表示されるドロップダウンリストから値を選択するか あるいは 値の設定が行えるダイアログボックスを呼び出す省略記号をクリックします 13

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

ActiveX アクセス方法を使用したアプリケーションの作成 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 コントロールによる方法があります 実行時にコードによりインデックス番号を設定するには 1 インデックスを設定する VAccess コントロールをダブルクリックします コードエディターが呼び出されます 2 以下の例に倣って コードを入力します VAccess1.IndexNumber = 0 ' 最初のインデックスを選択 15

ActiveX クイックスタート 実行時にコンボボックスでインデックス番号を設定するには 1 フォームに VAComboBox を配置して選択します 2 VAccessName プロパティを VAccess コントロールの名前に設定し VAFieldName プロパティを [Index List] に設定します VAComboBox にはファイルからインデックスのリストが自動的に設定され このリストからの選択によって VAccess コントロールで使用されるインデックスが設定されます 自動と手動のファイルオープンの設定 VAccess コントロールは AutoOpen プロパティの設定状態に基づいて 2 つの方法のいずれかで 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 データソースへのバウンドコントロールのリンク VAccess コントロールをフォームに追加してプロパティを設定した後 必要なバウンドコントロールを追加し この VAccess コントロールにバインドすることができます これにより それらのバウンドコントロールは VAccess コントロールが指定するデータにリンクされます 特定のバウンドコントロールについては ActiveX コントロールリファレンス を参照してください 16

ActiveX アクセス方法を使用したアプリケーションの作成 PSQL バウンドコントロールのどれかをデータにリンクするには 1 バウンドコントロールの VAccessName プロパティを 既にデータをポイントしている VAccess データソースコントロールの名前に設定します 2 VATextBox や VAOptionButton などのフィールドバウンドコントロールの場合は VAFieldName プロパティをデータソースコントロール内のフィールドのうちの 1 つの名前に設定する必要もあります レコードの取得 以下の 3 つの方法でレコードを取得できます VAHScrollBar または VAVScrollBar による方法 VACommandButton による方法 コードによる方法 スクロールバーでレコードを取得するには 1 VAHScrollBar または VAVScrollBar をフォームに追加して選択します 2 VAccessName プロパティを使用する VAccess コントロールに設定します コマンドボタンでレコードを取得するには 1 フォームに VACommandButton を追加して選択します 2 VAccessName プロパティを使用する VAccess コントロールの名前に設定し VAOperation プロパティを希望の取得オペレーションに設定します 使用可能な 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" '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 17

ActiveX クイックスタート 特定のレコードの検索 以下の 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 MsgBox " ファイルには該当するレコードがありません " End If 18

ActiveX アクセス方法を使用したアプリケーションの作成 レコードの追加 更新および削除 レコードを追加 更新または削除する方法として 以下の 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) = 2001100 stat = GetEqual If stat = 0 VAccess1.FieldValue ("Major") = "Music" VAccess1.Update End If レコードのロック PSQL には ActiveX アクセス方法でサポートされる次の 2 種類のロックがあります 単一レコードノーウェイトロックと複数レコードノーウェイトロックです ActiveX アクセス方法でこれらのロックを適用するには 以下のアプローチのうちの 1 つを使用します VACommandButton を使用してレコードの取得とロックを行う場合は VALockBias プロパティを設定します Get または Step メソッドを呼び出すときは オプションパラメーターとして対応するロックバイアス ( 単一レコードの場合は 200 複数レコードの場合は 400) を含めます レコードをロック解除するには Unlock メソッドを使用します レコードロックと並行制御の詳細は PSQL Programmer's Guide で データの整合性 を参照してください 19

ActiveX クイックスタート 例 ' レコードをロックし 学生の名前を変更して レコードを更新する 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 オペレーションを使用すると 複数のレコードに対するリクエストの処理を MicroKernel エンジンにさせることが可能になります ネットワークサーバーベースの PSQL システムでは Extended オペレーションによってネットワークトラフィックを大幅に削減し データ取得を高速化することができます Extended オペレーションは 複数のレコードを一度に読み取る際に最も有効です たとえば 統計データを収集して表に記入するためにファイルをスキャンしたり 表 レポートまたはグリッドを作成するために多数のレコードを一度に要求したり 必要なレコードを照合するための適切なインデックスを持たないデータベースに対する一度限りの検索を実行するのに適しています Extended オペレーションは個々のレコードにアクセスするためのインデックス付きレコード取得に代わるものではなく データセットを高速に取得するための強力なツールになります Extended オペレーションを使用可能にするには 1 Extended オペレーションで使用する VAccess コントロールを選択します 20

ActiveX アクセス方法を使用したアプリケーションの作成 2 プロパティウィンドウを使用している場合は ExtendedOps プロパティを True に設定します プロパティページを使用している場合は [Extended Operations] タブをクリックし [ExtendedOps] チェックボックスをオンにして [OK] をクリックします 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 メソッドは一般にほかのメソッドより高速なので 返されるレコードの順序が重要でない場合に使用してください 特定の Extended Fetch オペレーションから返される最大レコード数の設定には いくつかのプロパティが関与します 21

ActiveX クイックスタート 単一の Extended Fetch オペレーションから返されるデータの総量は MaxBufferSize プロパティで指定するデータ通信バッファーのサイズによって制限されます このバッファーは最大 64 KB ですが PSQL MicroKernel データベースエンジンの設定によってはこれより小さくなります このプロパティに大きすぎる値を指定すると ステータスコード 97 データバッファーが小さすぎます が返されます SelectedFields プロパティは個々のデータ行のサイズを決定しますが このサイズは選択されたフィールドの記憶域の長さの合計に 6 バイトを加えた長さです CacheRows パラメーターは 一度に取得する最大行数を指定します Extended Fetch メソッドは CacheRows の値か 行のサイズと MaxBufferSize に基づいた計算値のいずれか小さい値を使用します CacheRows がゼロであれば 計算値が使用されます SelectedRecords プロパティを使用すると ある基準を満たすレコードだけを取得できます このプロパティは CacheRejectMax プロパティと結び付いて機能し 検索条件に合わないレコードをスキップします CacheRejectMax プロパティに値を指定しないと 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 メソッドをインデックスと併用して PSQL が必要なレコードを返すためにスキャンしなければならないレコードの範囲を制限し 初期位置を確立してから 次に GetNextExtended を使用して後続のレコードを取得できます CacheRejectMax プロパティは SelectedRecords の基準で現在のインデックス上のレコードが制限される場合に有効です たとえば CacheRejectMax プロパティの値を 1 に設定すると PSQL サーバープロセスに対し 基準に合わない最初のレコードを見つけたら停止するよう指示することができます 22

ActiveX アクセス方法を使用したアプリケーションの作成 ファイル全体をスキャンする必要があってもレコードの順序が重要でない場合は StepFirst メソッドでファイルの先頭にカーソルを置き StepNextExtended メソッドでファイルをスキャンすることによって 時間をある程度節約できます Step メソッドの方が一般に高速なのは インデックスパスに沿ってレコードを照合する必要がないからです SelectedFields プロパティに入手したいフィールドのみを指定することによっても 時間とリソースを節約できます Extended Fetch オペレーションの制限要因はデータバッファーのサイズなので 各行に必要なメモリが少ないほど 一度に返せる行が多くなります ここで Extended オペレーションは別のタスク 一般には PSQL サーバープロセスで実行されるため アプリケーションは拡張クエリを実行するとすぐにプロセスの制御を放棄し クエリ条件が満たされるまでもう 1 つのプロセスが制御を引き受けるということに留意してください したがって 拡張クエリを計画し最適化すれば アプリケーションのパフォーマンスに大きな差が出てくる可能性があります 例 ' 奨学金を受けているすべての学生の ID を出力 Q = Chr$(34) ' Student ID はインデックスなので レコードの並べ替えに使用できます ' しかし 選択条件にはインデックスがありません したがって データベース全体を ' スキャンする必要があります 効率を上げるため Extended オペレーションを使用します VAccess1.ExtendedOps = True ' レコード選択条件を指定することにより 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 23

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

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

ActiveX クイックスタート 26

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

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

ファイルの内容とメモリイメージ ファイルの内容とメモリイメージ 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 を上書きしないように注意してください 29

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 次元はフィールド数またはインデックス数を表します 30

辞書ファイルの変更 辞書ファイルの変更 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 31

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

テーブル定義の作成 テーブル定義の作成 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"... < フィールドとインデックス情報を設定 >... 33

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

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

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 36

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

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 の現在の状態を反映します このため 正しくないエントリの診断と修復が容易になります 38

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

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 40

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 41

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 42

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 43

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

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

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 46

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 47

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 48

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

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

レコードセットの取得 レコードセットの取得 ここでは レコードセットを取得する際に使用できるプロパティ メソッド およびイベントの一覧を示します プロパティとメソッド 表 22 Extended オペレーション用プロパティおよびメソッド プロパティ / メソッド AutoMode CacheRejectMax CacheRows CancelDialog Column ColumnName Columns ExtendedOps FocusSelText GetNextExtended GetPreviousExtended IncludeCurrent Init MaxBufferSize Row RowColumnValue RowPosition Rows SelectedFields SelectedRecords 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 結果セットの列として使用するフィールドを指定します デフォルトは空のリストで これはすべてのフィールドが含まれることを示します Extended Fetch 結果セットに返されるレコードのレコード選択条件を指定します デフォルトは空のリストで これはすべてのレコードが含まれることを示します 51

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

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

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

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

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

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

カテゴリ別プロパティ メソッド およびイベント 個別レコードの取得 ここでは レコードセットを取得する際に使用できるプロパティ メソッド イベントの一覧を示します プロパティとメソッド 表 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 ファイルを使用するのか あるいは内部状態と永続的なプロパティ ( またはどちらか一方 ) を使用するのかを判定します 物理レコードの格納順での最初のレコードを返します 物理レコードの格納順での最後のレコードを返します 物理レコードの格納順での次のレコードを返します 物理レコードの格納順での前のレコードを返します 58

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

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

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

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

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 イベント PSQL Programmer's Guide 影響先 : Location Ddfpath 63

ActiveX プロパティリファレンス AutoMode VAccess AutoMode プロパティを True に設定しておくと 実行時に Init メソッドが呼び出されるとすぐに 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 メソッドの呼び出しでは PSQL が Extended オペレーションの呼び出しで使用する構造体を割り当てるだけで データの取得は実行されません GetNextExtended GetPreviousExtended StepNextExtended または StepPreviousExtended メソッドを実行時に実行することによってデータをフェッチすることができます Extended オペレーションのキャッシュバッファーは 1 つだけメモリに保持され 後続のフェッチで再利用されます VAccess コントロールの Extended オペレーション機能を有効にするには ExtendedOps プロパティを True に設定する必要があります 関連項目 影響先 : GetNextExtended GetPreviousExtended StepNextExtended StepPreviousExtended Init Row 影響元 : ExtendedOps 64

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

ActiveX プロパティリファレンス Buffer VAccess コントロールの現在のレコードバッファーの内容を取得または設定します レコードバッファーは PSQL によって取得される未加工のデータです 構文 object.buffer(short alignment) Buffer プロパティの構文は次のような要素で構成されます 要素 object 必須 VAccess オブジェクトの名前は [ ] のオブジェクトを評価するオブジェクト式を表します alignment 必須 データのバイトアライメントを指定します alignment に対して受け付ける値は 1 2 4 8 および 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 66

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 67

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

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

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 70

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 71

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

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 73

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 74