210
Pervasive PSQL v10 SP3 Pervasive Data Provider for .NET Guide and Reference Developing Applications with Data Provider for .NET

Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Embed Size (px)

Citation preview

Page 1: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive PSQL v10 SP3

Pervasive Data Provider for .NET Guide and Reference

Developing Applications with Data Provider for .NET

Page 2: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

免責事項 Pervasive Software Inc. は、 本ソフ ト ウェアおよびドキュ メン トの使用を、 利用

者またはその会社に対して 「現状のまま」 で、 かつ同梱の使用許諾契約書に記載の契約条件によってのみ許諾するものです。Pervasive Software Inc. は、いかな

る場合にも本ソフ ト ウェアおよび本マニュアルに記載された内容に関するその他の一切の保証を、 明示的にも黙示的にも行いません。 Pervasive Software Inc.は、 市場性、 権利、 特定の目的に対する適合性、 あるいは一連の取引業務や職業的な使用に関する問題などに対し、 一切の保証を行わないこ とを明示する とと もに、 利用者およびその会社がこれに同意したものと します。

商標 Btrieve、 Client/Server in a Box、 Pervasive、 Pervasive Software および PervasiveSoftware のロゴは、 Pervasive Software Inc. の登録商標です。

Built on Pervasive Software、 DataExchange、 MicroKernel Database Engine、 MicroKernelDatabase Architecture、 Pervasive.SQL、 Pervasive PSQL、 Solution Network、 Ultralight、 ZDBAは Pervasive Software Inc. の商標です。

Microsoft、 MS-DOS、 Windows、 Windows 95、 Windows 98、 Windows NT、 Windows Me、Windows 2000、 Windows XP、 Windows Server 2003、 Win32、 Win32s、 および Visual Basicは、 Microsoft Corporation の登録商標です。

NetWare および Novell は Novell, Inc. の登録商標です。 NetWare Loadable Module、NLM、Novell DOS、Transaction Tracking System、TTS は、Novell,Inc. の商標です。

Sun、 Sun Microsystems、 Java、 および Sun、 Solaris、 Java を含むすべての商標やロゴは、

Sun Microsystems の商標または登録商標です。 すべての会社名および製品名は各社の商標または登録商標です。

© Copyright 2008 Pervasive Software Inc. All rights reserved. このマニュアルの全文、 一部に関

わりなく複製、 複写、 配布をすることは、 前もって発行者の書面による同意がない限り禁止しま

す。

本製品には、 Data Direct により開発されたソフトウェアが含まれています。 Copyright 2005 DataDirect, Inc. All rights reserved.

Pervasive Data Provider for .NET Guide and Reference2009 年 11 月

Page 3: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

このマニュアルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . xiiiPervasive PSQL ADO.NET データ プロバイダーとは . . . . . . . . . . . . . . . . . . . . . xivPervasive PSQL ADO.NET データ プロバイダー本リ リースの新機能 . . . . . . . . . . . . xvPervasive PSQL ADO.NET データ プロバイダーの本リ リースで廃止された機能 . . . . . xviこのマニュアルの使用法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii表記上の規則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

1 クイック スタート . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1データベースへの接続

サポート される .NET Framework のバージ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . 1-2データベースへの接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

例 : プロバイダー固有のオブジェク トの使用 . . . . . . . . . . . . . . . . . . . . . 1-3例 : 共通プログラ ミ ング モデルの使用 . . . . . . . . . . . . . . . . . . . . . . . . . 1-5例 : Pervasive Common Assembly の使用 . . . . . . . . . . . . . . . . . . . . . . . . . 1-6

基本的な接続文字列の定義. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8

2 ADO.NET データ プロバイダーの使用 . . . . . . . . . . . . . . . . . .2-1ADO.NET データ プロバイダーについて

Pervasive PSQL データ プロバイダーについて . . . . . . . . . . . . . . . . . . . . . . . . . 2-2名前空間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2アセンブリ名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

接続文字列の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3接続文字列の使用に関するガイ ド ラ イン . . . . . . . . . . . . . . . . . . . . . . . . 2-3接続文字列オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4

アプリ ケーシ ョ ンのパフォーマンスに関する考慮点 . . . . . . . . . . . . . . . . . . . . . 2-13接続文字列オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13プロパティ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14

データ型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15Pervasive データ型から .NET Framework データ型へのマッピング . . . . . . . . . . 2-15パラ メーター データ型のマッピング . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17ス ト リーム オブジェク トでサポート されるデータ型 . . . . . . . . . . . . . . . . . 2-20

長いデータ パラ メーターへの入力と してス ト リームを使用する . . . . . . . . . . . . . . 2-21パラ メーター マーカー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22パラ メーター配列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23ス ト アド プロシージャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24ト ランザクシ ョ ンのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25

iii

Page 4: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

スレッ ドのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-26Unicode のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-27分離レベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28SQL エスケープ シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29イベン ト処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30エラー処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-31.NET オブジェク トの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32.NET 用アプリ ケーシ ョ ン開発のためのその他のリ ソース . . . . . . . . . . . . . . . . . 2-33

3 ADO.NET の高度な機能 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1接続プールの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

接続プールの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2プールへの接続の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3プールからの接続の削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3プール内の停止接続の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4接続プールのパフォーマンスの追跡 . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5

ステート メン ト キャ ッシングの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6ステート メン ト キャ ッシングの有効化 . . . . . . . . . . . . . . . . . . . . . . . . . 3-6ステート メン ト キャ ッシング手法の選択 . . . . . . . . . . . . . . . . . . . . . . . 3-7

接続フェイルオーバーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8ク ラ イアン ト ロード バランスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10接続の再試行機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11接続フェイルオーバーの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12セキュ リティの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14

コードへのアクセス権限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14セキュ リティの属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14

Pervasive Bulk Load の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15Pervasive Bulk Load で使用するシナリオ . . . . . . . . . . . . . . . . . . . . . . . . 3-15Pervasive Common Assembly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-16

バルク ロード データ ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17バルク ロード構成ファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18バルク ロード プロ ト コルの決定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19文字セッ トの変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-19外部オーバーフロー ファ イル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20バルク コピー操作と ト ランザクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . 3-21

診断機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22メ ソ ッ ド呼び出しの ト レース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-22PerfMon のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23接続統計情報によるパフォーマンスの分析 . . . . . . . . . . . . . . . . . . . . . . 3-24

iv

Page 5: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

統計情報項目の有効化と取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25

4 Visual Studio でのデータ プロバイダーの使用 . . . . . . . . . . . . . .4-1統合開発環境を一般的なタスクに使用する

接続の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2サーバー エクスプローラーでの接続の追加 . . . . . . . . . . . . . . . . . . . . . . 4-2データソース構成ウ ィザードによる接続の追加 . . . . . . . . . . . . . . . . . . . . 4-11[サーバー名] ノードの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12

Visual Studio の Pervasive Performance Tuning Wizard . . . . . . . . . . . . . . . . . . . . . 4-14プロバイダー固有テンプレートの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18

プロジェク トの新規作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18既存のプロジェク トへのテンプレートの追加 . . . . . . . . . . . . . . . . . . . . . 4-20

Pervasive Visual Studio Wizard の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21Add Table Wizard でのテーブルの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21Add View Wizard でのビューの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26

ツールボッ クスからのコンポーネン トの追加 . . . . . . . . . . . . . . . . . . . . . . . . . 4-29データ プロバイダー統合のシナリオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-31

5 Microsoft Enterprise Library の使用 . . . . . . . . . . . . . . . . . . . .5-1アプ リ ケーシ ョ ンでのデータ アクセス アプ リ ケーシ ョ ン ブロ ッ クの使用

データ アクセス アプリ ケーシ ョ ン ブロ ッ クの概要 . . . . . . . . . . . . . . . . . . . . . 5-2DAAB の使用に適する場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2汎用クラスおよびデータベース固有のクラス . . . . . . . . . . . . . . . . . . . . . 5-2

DAAB の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4新しい DAAB エン ト リ を追加するには . . . . . . . . . . . . . . . . . . . . . . . . . 5-4アプリ ケーシ ョ ンへのデータ アクセス アプリ ケーシ ョ ン ブロ ッ クの追加 . . . . 5-5

アプリ ケーシ ョ ン コードでのデータ アクセス アプリ ケーシ ョ ン ブロ ッ クの使用. . . . 5-6アプリ ケーシ ョ ン ブロ ッ クを使用する上でのその他のリ ソース . . . . . . . . . . . . . . 5-7

6 サポート される .NET オブジェク ト . . . . . . . . . . . . . . . . . . . .6-1.NET オブジェク トの使用

.NET のベース ク ラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2データ プロバイダー固有のク ラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3

PsqlBulkCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3PsqlBulkCopyColumnMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4PsqlBulkCopyColumnMappingCollection. . . . . . . . . . . . . . . . . . . . . . . . . . 6-4

PsqlCommand オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4PsqlCommandBuilder オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7

v

Page 6: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

PsqlConnection オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9PsqlConnectionStringBuilder オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . 6-11PsqlDataAdapter オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11PsqlDataReader オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12PsqlError オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13PsqlErrorCollection オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13PsqlException オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14PsqlFactory オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15PsqlInfoMessageEventArgs オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . 6-15PsqlParameter オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16PsqlParameterCollection オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17PsqlTrace オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18PsqlTransaction オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19

Pervasive Common Assembly ク ラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20CsvDataReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20CsvDataWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22DbBulkCopy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23DbBulkCopyColumnMapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23DbBulkCopyColumnMappingCollection . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23

7 スキーマ情報の入手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1データベースのメ タデータの検索および取り出し

GetSchemaTable メ ソ ッ ドによって返される列 . . . . . . . . . . . . . . . . . . . . . . . . 7-2GetSchema メ ソ ッ ドによるスキーマ メ タデータの取得 . . . . . . . . . . . . . . . . . . . 7-5

MetaDataCollections スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . 7-5DataSourceInformation スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . 7-6DataTypes コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7ReservedWords コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9Restrictions コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9

追加のスキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10Columns スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10ForeignKeys スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12Indexes スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-13PrimaryKeys スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14ProcedureParameters スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . 7-15Procedures スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17TablePrivileges スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . 7-18Tables スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19Views スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20

vi

Page 7: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

8 .NET の SQL エスケープ シーケンス . . . . . . . . . . . . . . . . . . .8-1エスケープ シーケンスの使用

日付、 時刻、 タイムスタンプのエスケープ シーケンス . . . . . . . . . . . . . . . . . . . 8-2スカラー関数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3外部結合のエスケープ シーケンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4

9 ロック レベルと分離レベル . . . . . . . . . . . . . . . . . . . . . . . .9-1ロ ッ ク レベルと分離レベルの使用

ロッ ク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2分離レベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3ロ ッ ク モード とレベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6

10 パフォーマンスの最適化を図る .NET アプリケーシ ョ ンの設計 . . . . .10-1.NET アプ リ ケーシ ョ ンの 適化

データの取得. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2アーキテクチャについての理解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2長いデータの取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2取得するデータのサイズの縮小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3CommandBuilder オブジェク トの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3正しいデータ型の選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4

.NET オブジェク ト と メ ソ ッ ドの選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5ス ト アド プロシージャの引数と してのパラ メーター マーカーの使用 . . . . . . . 10-5

.NET アプリ ケーシ ョ ンの設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6接続の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6ネイティブの管理プロバイダーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . 10-6

データの更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7切断された DataSet の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7データソースへの変更の同期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7

11 バルク ロード構成ファイル . . . . . . . . . . . . . . . . . . . . . . . .11-1バルク データ構成ファイルのサンプル. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2バルク データ構成ファイル用の XML スキーマ定義 . . . . . . . . . . . . . . . . . . . . . 11-3

12 IANA コード マッピング . . . . . . . . . . . . . . . . . . . . . . . . .12-1

13 用語集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13-1共通の用語の定義

.NET アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1

vii

Page 8: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

目次

ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1

アセンブリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-1アンマネージ コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2共通言語ランタイム (CLR : Common Language Rruntime) . . . . . . . . . . . . . . 13-2ク ラ イアン ト ロード バランス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2グローバル アセンブリ キャ ッシュ (GAC) . . . . . . . . . . . . . . . . . . . . . . 13-2厳密な名前 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-2コード アクセス セキュ リティ (CAS) . . . . . . . . . . . . . . . . . . . . . . . . . 13-3スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3ス ト リーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3接続の再試行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3接続プール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3接続フェイルオーバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3名前空間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3パフォーマンス モニター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4バルク ロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4分離レベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4マネージ コード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4ロード バランス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4ロ ッ ク レベル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5

viii

Page 9: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ix

3-1 接続フェイルオーバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-83-2 ク ラ イアン ト ロード バランスの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-103-3 2 つのデータ ソース間での Pervasive Bulk Load の使用 . . . . . . . . . . . . . . . . 3-163-4 ODBC から ADO.NET へのデータのコピー . . . . . . . . . . . . . . . . . . . . . . . 3-164-1 Pervasive Performance Tuning Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-154-2 Pervasive Performance Tuning Wizard の [Result] ダイアログ . . . . . . . . . . . . . 4-16

Page 10: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

1-1 サポート される Microsoft .NET Framework のバージ ョ ン . . . . . . . . . . . . . . . 1-21-2 Pervasive PSQL で 低限必要な接続文字列オプシ ョ ン . . . . . . . . . . . . . . . . 1-82-1 接続文字列オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-42-2 Pervasive PSQL 列コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-122-3 Pervasive データ型のマッピング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-152-4 System.Data.DbTypes から PsqlDbTypes へのマッピング. . . . . . . . . . . . . . . . 2-182-5 .NET Framework 型から PsqlDbType へのマッピング . . . . . . . . . . . . . . . . . 2-192-6 サポート されるス ト リーム オブジェク ト . . . . . . . . . . . . . . . . . . . . . . . 2-203-1 ステート メン ト キャ ッシュ動作の要約 . . . . . . . . . . . . . . . . . . . . . . . . . 3-73-2 文字セッ ト変換の例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-203-3 PerfMon カウンター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-246-1 PsqlCommand オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-46-2 PsqlCommand オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . . 6-76-3 PsqlCommandBuilder オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . 6-76-4 PsqlCommandBuilder オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . 6-86-5 PsqlConnection オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-96-6 PsqlConnection オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . 6-106-7 PsqlDataAdapter オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . 6-116-8 PsqlDataReader オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-126-9 PsqlDataReader オブジェク トでサポート される メ ソ ッ ド . . . . . . . . . . . . . . . 6-126-10 PsqlError オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . . . 6-136-11 PsqlErrorCollection オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . 6-136-12 PsqlErrorCollection オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . 6-136-13 PsqlException オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . 6-146-14 PsqlFactory オブジェク トのメ ソ ッ ド . . . . . . . . . . . . . . . . . . . . . . . . . . 6-156-15 PsqlInfoMessageEventArgs のパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . 6-156-16 PsqlParameter オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . 6-166-17 PsqlParameterCollection のパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . . . 6-176-18 PsqlParameterCollection オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . 6-186-19 PsqlTrace のパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-186-20 PsqlTrace オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . . . . 6-196-21 PsqlTransaction オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-196-22 PsqlTransaction オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . 6-196-23 CsvDataReader オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-206-24 CsvDataReader オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . 6-216-25 CsvDataWriter オブジェク トのパブリ ッ ク プロパティ . . . . . . . . . . . . . . . . 6-226-26 CsvDataWriter オブジェク トのパブリ ッ ク メ ソ ッ ド . . . . . . . . . . . . . . . . . . 6-227-1 PsqlDataReader の GetSchemaTable で返される列. . . . . . . . . . . . . . . . . . . . 7-2

x

Page 11: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

7-2 MetaDataCollections スキーマ コレクシ ョ ンによって返される列 . . . . . . . . . . . 7-57-3 DataSourceInformation コレクシ ョ ンによって返される列名 . . . . . . . . . . . . . . 7-67-4 DataTypes コレクシ ョ ンによって返される列名. . . . . . . . . . . . . . . . . . . . . 7-77-5 ReservedWords スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . 7-97-6 Restrictions コレクシ ョ ンによって返される列名 . . . . . . . . . . . . . . . . . . . . 7-97-7 Columns スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-107-8 ForeignKeys スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-127-9 Indexes スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-137-10 PrimaryKeys スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-157-11 ProcedureParameters スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . 7-157-12 Procedures スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-187-13 TablePrivileges スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . 7-187-14 Tables スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-197-15 Views スキーマ コレクシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-208-1 サポート されるスカラー関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-39-1 分離レベルとデータの一貫性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-412-1 IANA コード ページ マッピング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1

xi

Page 12: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

xii

Page 13: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

このマニュアルについて

このマニュアルは、Pervasive PSQL ADO.NET プロバイダーについての手引

書です。 データ プロバイダーには、 .NET Framework バージ ョ ン 2.0、 3.0、3.5 および 3.5 SP1 に準拠している Microsoft .NET Software Development Kit(SDK) Framework バージ ョ ン 2.0 が必要です。

xiii

Page 14: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive PSQL ADO.NET データ プロバイダーとは

Pervasive PSQL データ プロバイダーは、マネージ コードのみで構築された

ADO.NET マネージ データ プロバイダーです。データ プロバイダーは、ネ

イティブのワイヤ プロ ト コル プロバイダーです。 したがって、 データ プロバイダーが、 データベース ク ラ イアン トの形式のアンマネージ コード

(.NET Framework 外のコード) を呼び出す必要はあ り ません。

Pervasive PSQL 32 ビッ ト データ プロバイダーを使用すれば、以下のプラ ッ

ト フォームから Pervasive PSQL v10.x データベースに接続するこ とができ

ます。

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP サービス パッ ク 2 以上

Windows 2000 サービス パッ ク 3 以上

Pervasive PSQL 64 ビッ ト データ プロバイダーは、AMD 社の Opteron や Intel社の EM64T (Extended Memory 64 Technology) を組み込んだ Xeon などの

x64 プロセッサでサポート されます。 このデータ プロバイダーを使用すれ

ば、 以下のプラ ッ ト フォームから Pervasive PSQL v10.x データベースに接

続するこ とができます。

Windows Server 2003 x64 Editions

Windows XP Professional x64 Edition

xiv

Page 15: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive PSQL ADO.NET データ プロバイダー本リ リースの新機能

リ リース 3.2 の注目点

Microsoft .NET Framework バージ ョ ン 3.5 SP1 のサポート

System.Transaction のサポート

MGEN ネイティブ 適化のサポート

Pervasive PSQL v10.10 のサポート

Pervasive Bulk Load。DbBulkCopy ク ラスは共通プログラ ミ ング モデル

でのデータのバルク ロードに対応しています。さ らに、データ プロバ

イダーにはプロバイダー固有のバルク ロード ク ラスがあ り ます。

接続統計情報のサポート

スキーマ オプシ ョ ンの接続文字列オプシ ョ ンを使用する と、返される

スキーマ メ タデータを指定するこ とができます。

ネイティブ パラ メーター マーカーおよびパラ メーター バインディン

グのサポート

Enterprise Access Libraries 3.1 のサポート。 DAAB (データ アクセス アプリ ケーシ ョ ン ブロッ ク) のサポート を含みます。

Initial Command Timeout 接続文字列オプシ ョ ンは接続確立時の初期コ

マンド タイムアウ ト を指定します。

Visual Studio 2008 のサポート

その他の機能

ステート メン ト キャ ッシングのサポート

DbBulkCopy インターフェイスを提供する Pervasive Common アセ

ンブリ

xv

Page 16: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive PSQL ADO.NET データ プロバイダーの本リ リースで廃止された機能

このリ リースで廃止された機能はあ り ません。

xvi

Page 17: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

このマニュアルの使用法

このマニュアルは、お使いのオペレーティング システムとその各種コマン

ド、 デレク ト リ定義およびエン ド ユーザーアプ リ ケーシ ョ ンからデータ

ベースへアクセスする方法に関して精通しているユーザーを対象と してい

ます。

このマニュアルには以下の情報が記載されています。

「ク イ ッ ク スタート 」 では、 .NET データ プロバイダーを使用したデー

タベースへの接続について説明します。

「ADO.NET データ プロバイダーの使用」 では、 Pervasive PSQL データ

プロバイダーと一緒に .NET アプリ ケーシ ョ ンを使用する方法、 また

.NET 環境で .NET アプリ ケーシ ョ ンを開発する方法について説明しま

す。

「ADO.NET の高度な機能」 では、 接続プーリ ング、 ステート メン ト

キャ ッシング、 設定セキュ リティ、 および Pervasive Bulk Load を含む

データ プロバイダーの高度な機能について説明します。

「Visual Studio でのデータ プロバイダーの使用」 では、 Pervasive PSQLデータ プロバイダーおよび Visual Studio Performance Wizard を使用す

る方法について説明します。

「Microsoft Enterprise Library の使用」 では DAAB (データ アクセス アプリ ケーシ ョ ン ブロッ ク)の設定方法とアプリ ケーシ ョ ン コードでの

使用法について説明します。

「サポート される .NET オブジェク ト 」 では、 Pervasive PSQL データ プロバイダーによってサポート される、 .NET パブリ ッ ク オブジェク ト、

プロパティ、 メ ソ ッ ドについて説明します。

「スキーマ情報の入手」 では、 Pervasive PSQL データ プロバイダーで

サポート されるスキーマ コレクシ ョ ンについて説明します。

「.NET の SQL エスケープ シーケンス」 では、 Pervasive PSQL データ

プロバイダーでサポート されるスカラー関数について説明します。 使

用しているデータ ス ト アが、 こ こで説明しているすべての関数をサ

ポート していないこ とがあ り ます。

「ロ ッ ク レベルと分離レベル」 では、 ロ ッ ク レベルと分離レベルにつ

いて、 およびこれらの設定が取得するデータにどのよ うに影響するか

について説明します。

「パフォーマンスの 適化を図る .NET アプリ ケーシ ョ ンの設計」 で

は、 アプリ ケーシ ョ ンのコードを 適化して、 パフォーマンスを向上

させる方法を説明します。

「バルク ロード構成ファイル」 には、 バルク ロード操作中に作成され

るファ イルのサンプルがあ り ます。

xvii

Page 18: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

「IANA コード マッピング」 は も広範に使用されている IBM コード

ページを IANA コード ページ名にマップします。

このマニュアルには用語集もあ り ます。

メモ このマニュアルでは、 参考情報が掲載されている Web サイ トの

URL を記載しています。Web コンテンツは頻繁に変わるものであるた

め、記載されている URL が、このマニュアルの発行後に変わる可能性

もあ り ます。

xviii

Page 19: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

表記上の規則

このマニュアルでは、 次の表記規則を使用しています。

表記上の規則 説明

斜体 新たな用語を表記する場合、あるいは強調する場合に使用され

ます。

太字 重要性を強調し ます。 また、 操作上で使用するボタ ン、 メ

ニュー、 およびアイコンの名前に使用する場合もあ り ます。

大文字 ファ イル名を示します。また、大文字と小文字を区別する操作

環境の場合は、 大文字と小文字を正確に記載します。

固定スペース

フォント

構文例や指定する値、 あるいは返される結果を示します。

固定スペース

フォントの斜体

filename のよ うに、指定する値のプレースフォルダ名を示し

ます。

縦棒 | メニューやそれに関連付けられるコマンドを区切り ます。たと

えば、 [フ ァ イル|コピー] を選択 - これは [フ ァ イル] メ

ニューから [コピー] を選択するこ とを意味します。 また、半

角の場合は論理和 OR を示し、 項目を区切るのに使用します。

大かっこ [ ] オプシ ョ ン項目を示します。 たとえば、 SELECT [DISTINCT]とい う ステー ト メ ン ト の場合、 DISTINCT は省略可能なキー

ワードです。

中かっこ { } 1 個の項目を選択する必要がある こ とを示します。 たとえば、

{yes | no} と表記される場合、 yes または no のいずれかを指定

する必要があ り ます。

省略記号 ... 直前の項目を続けて何度でも繰り返せるこ とを示します。閉じ

るかっこの後に省略記号がある場合は、中かっこで囲まれてい

る情報を繰り返せるこ とを示します。

xix

Page 20: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

xx

Page 21: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

1

クイック スタート

データベースへの接続

こ こでは、 Pervasive PSQL データ プロバイダーをインス トールした後で、

データベースに接続する基本的な操作について説明します。データ プロバ

イダーの機能を 大限利用するには、 このマニュアルのほかの章もお読み

ください。

1-1

Page 22: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

クイック スタート

サポート される .NET Framework のバージ ョ ン

Pervasive PSQL データ プロバイダー 3.2 は、.NET Framework バージ ョ ン 2.0を使用してビルド されています。

表 1-1 は、 Pervasive PSQL 3.x データ プロバイダーでサポート される .NETFramework バージ ョ ンの一覧を示しています。 64 ビッ ト環境用に作成され

たアプリ ケーシ ョ ンは、 .NET Framework バージ ョ ン 2.0 (x64) でコンパイ

ルする必要があ り ます。

.NET Framework および Pervasive PSQL データ プロバイダーの以前のバー

ジ ョ ン用と して書かれた既存のコードは、 Pervasive PSQL 3.2 データ プロ

バイダーと互換性があ り ます。 アプリ ケーシ ョ ンは .NET Framework 2.0 を使用して再コンパイルする必要があるこ とに注意して ください。

ただし、お使いのアプリ ケーシ ョ ンが .NET Framework バージ ョ ン 1.x を要

求する場合は、 Pervasive PSQL 2.1 データ プロバイダーを使用する必要が

あ り ます。

表 1-1 サポート される Microsoft .NET Framework のバージョ ン

データ プロバイダーのバージ ョ ン .NET Framework のバージ ョ ン

32 ビッ ト Pervasive PSQL データ プロ

バイダー

バージ ョ ン 2.0、 3.0、 3.5 SP1 (x86)

64 ビッ ト Pervasive PSQL データ プロ

バイダー

バージ ョ ン 2.0、3.0、および 3.5 SP1(x64)

1-2

Page 23: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データベースへの接続

データベースへの接続 Pervasive PSQL データ プロバイダーをインス トールする と、 接続文字列を

使ってアプリ ケーシ ョ ンとデータベースを接続できるよ うにな り ます。 接

続の属性については、 「接続文字列オプシ ョ ン」 (2-4 ページ) を参照して

ください。

例 : プロバイダー固有のオブジェク トの使用

次の例はプロバイダー固有のオブジェク ト を使用した例です。C# を使って

Visual Studio で開発したアプリ ケーシ ョ ンから Pervasive PSQL データ プロ

バイダーを使用しています。

1 ソ リ ューシ ョ ン エクスプローラーで[参照設定]を右ク リ ッ ク します。

2 [参照の追加] をク リ ッ ク し、 コンポーネン ト リ ス トから "PervasivePSQL Data Provider" を選択します。 このデータ プロバイダーがコン

ポーネン ト リ ス ト にない場合は、 [参照] タブをク リ ッ ク してデータ

プロバイダー アセンブリがあるディ レク ト リへ移動します。

1-3

Page 24: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

クイック スタート

3 [OK] をク リ ッ ク します。 これで、 ソ リ ューシ ョ ン エクスプローラー

に Pervasive PSQL データ プロバイダーが含まれるよ うになり ます。

4 次の C# コード例のよ うに、 データ プロバイダーの名前空間をアプリ

ケーシ ョ ンの先頭に追加します。

// Pervasive PSQL へアクセスします

using System.Data;

using System.Data.Common;using Pervasive.Data.SqlClient;

5 サーバーの接続情報と例外処理のコードを追加します。

DbProviderFactory Factory = DbProviderFactories.GetFactory("Pervasive.Data.SqlClient");

DbConnection Conn = Factory.CreateConnection();

Conn.ConnectionString = "ServerDSN=DEMODATA;Host=localhost";

try

1-4

Page 25: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データベースへの接続

{

// 接続を開く

Conn.Open();

Console.WriteLine("接続成功 !");}

catch(PsqlException ex)

{

// 接続に失敗

Console.WriteLine(ex.Message);

}

6 接続を閉じます。

// 接続を閉じる

Conn.Close();

例 :共通プログラ ミング モデルの使用

次の例は、 C# と共通プログラ ミ ング モデルを使用して Visual Studio で開

発したアプリ ケーシ ョ ンから Pervasive PSQL データベースに接続する方法

を示します。

1 アプリ ケーシ ョ ンの先頭部分を調べます。 ADO.NET 名前空間が記述

されているこ とを確認します。

// ファ ク ト リ を使用して Pervasive にアクセスします

using System.Data;

using System.Data.Common;

2 サーバーの接続情報および例外処理のコードを追加し、 接続を閉じま

す。

DbProviderFactoryfactory =

DbProviderFactories("Pervasive.Data.SqlClient");DbConnection Conn = factory.createConnection();

Conn.CommandText = "ServerDSN=DEMODATA;Host=localhost;";

try

{ Conn.Open();

Console.WriteLine("接続成功 !");}catch (Exception ex)

{

// 接続に失敗しました

Console.WriteLine(ex.Message);

1-5

Page 26: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

クイック スタート

}

// 接続を閉じます

Conn.Close();

例 : Pervasive Common Assembly の使用

共通プログラ ミ ング モデルに適合するアプリ ケーシ ョ ンで Pervasive BulkLoad などの機能を使用したい場合は、 Pervasive Common Assembly を含め

るこ とを選択できます。 アプリ ケーシ ョ ンで Pervasive Bulk Load ユーザー

を使用する方法については、「Pervasive Bulk Load の使用」 (3-15 ページ) を

参照してください。

次の例は、 C# と共通プログラ ミ ング モデルを使用して Visual Studio で開

発したアプリ ケーシ ョ ンで Pervasive Common Assembly を使用する方法を

示します。

1 アプリ ケーシ ョ ンの先頭部分を調べます。 .NET Framework および

Pervasive PSQL データ プロバイダーの名前空間が記述されているこ と

を確認します。

// ファ ク ト リ を使用して Pervasive PSQL にアクセスします

using System.Data;

using System.Data.Common;

using Pervasive.Data.Common;

2 サーバーの接続情報および例外処理のコードを追加し、 接続を閉じま

す。

// このコードは、 バルク コピー操作を Pervasive PSQL // データベースから別のデータベースに対して行います

DbProviderFactory Factory = DbProviderFactories.GetFactory("Pervasive.Data.SqlClient");

DbConnection sourceConnection = Factory.CreateConnection();

sourceConnection.ConnectionString = "Host=Server1;ServerDSN=DEMODATA;";

sourceConnection.Open();

DbCommand command = sourceConnection.CreateCommand();

command.CommandText = "SELECT * FROM test";

DbDataReader reader = command.ExecuteReader();

DbConnection destinationConnection = Factory.CreateConnection();

1-6

Page 27: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データベースへの接続

destinationConnection.ConnectionString = "Host= server2;ServerDSN=DEMODATA";

destinationConnection.Open();

DbBulkCopy bulkCopy = new DbBulkCopy(destinationConnection);

bulkCopy.DestinationTableName = "test";

try

{ bulkCopy.WriteToServer(reader);

} // 試行終了

catch (DbException ex)

{

Console.WriteLine(ex.Message);

} //catch の終了

finally{

reader.Close();

MessageBox.Show("終了 ");} //完了

1-7

Page 28: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

クイック スタート

基本的な接続文字列の定義

データ プロバイダーでは、特定のデータベース サーバーへの接続に必要な

情報の指定に接続文字列を使用します。 この接続情報は接続文字列オプ

シ ョ ンで定義されます。

接続文字列オプシ ョ ンは次のよ うな形式です。

" オプシ ョ ン =値 "

接続文字列オプシ ョ ン値の各ペアはセ ミ コロンで区切り ます。 たとえば、

次のよ うにな り ます。

"ServerDSN=Demodata;UID=test;PWD=test;ServerName=localhost"

サポート されるすべての接続文字列オプシ ョ ンの詳細については、「接続文

字列オプシ ョ ン」 (2-4 ページ) を参照して ください。

メモ :

接続文字列オプシ ョ ン名内のスペースは任意です。

接続文字列オプシ ョ ンでは大文字と小文字が区別されません。 たとえ

ば、 User ID と user id は同じです。 ただし、 User ID や Password などい

くつかのオプシ ョ ンの値の中には大文字と小文字が区別されるものも

あ り ます。

表 1-2 は、 Pervasive PSQL サーバーへの接続に必要な 低限のオプシ ョ ン

の名前とその説明です。

表 1-2 Pervasive PSQL で最低限必要な接続文字列オプシ ョ ン

オプシ ョ ン 説明

Server DSN 接続するサーバーのデータ ソース名を、DEMODATA のよ うに指

定します。

Host 接続する Pervasive PSQL サーバーの名前または IP アドレスを

指定します。 たとえば、 Accountingserver などのサーバー

名を指定できます。あるいは、199.226.22.34 などの IP アド

レスを指定できます。

デフォルトの初期値は localhost です。

1-8

Page 29: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

2

ADO.NET データ プロバイダーの使用

ADO.NET データ プロバイダーについて

Pervasive PSQL データ プロバイダーを使用すれば、 .NET 対応アプ リ ケー

シ ョ ンやアプ リ ケーシ ョ ン サーバーからデータ アクセスが可能にな り ま

す。 Pervasive PSQL データ プロバイダーはインターネッ ト またはイン ト ラ

ネッ ト経由で、主要なデータ ス ト アへの高パフォーマンスなポイン ト ツー

ポイン ト アクセスおよび n 層アクセスを提供します。 Pervasive PSQL デー

タ プロバイダーは、 .NET 環境向けに 適化されているので、 現在使用し

ているシステムに .NET 技術を組み込み、 その機能を拡張してパフォーマ

ンスを向上させるこ とができます。

この章では、 以下の項目について説明します。

「Pervasive PSQL データ プロバイダーについて」 (2-2 ページ)

「接続文字列の使用」 (2-3 ページ)

「アプ リ ケーシ ョ ンのパフォーマンスに関する考慮点」 (2-13 ページ)

「データ型」 (2-15 ページ)

「長いデータ パラ メーターへの入力と してス ト リームを使用する」 (2-21 ページ)

「パラ メーター マーカー」 (2-22 ページ)

「パラ メーター配列」 (2-23 ページ)

「ス ト アド プロシージャ」 (2-24 ページ)

「 ト ランザクシ ョ ンのサポート 」 (2-25 ページ)

「スレッ ドのサポート 」 (2-26 ページ)

「Unicode のサポート 」 (2-27 ページ)

「分離レベル」 (2-28 ページ)

「SQL エスケープ シーケンス」 (2-29 ページ)

「イベン ト処理」 (2-30 ページ)

「エラー処理」 (2-31 ページ)

「.NET オブジェク トの使用」 (2-32 ページ)

「.NET 用アプリ ケーシ ョ ン開発のためのその他のリ ソース」(2-33 ペー

ジ)

2-1

Page 30: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

Pervasive PSQL データ プロバイダーについて

Pervasive PSQL データ プロバイダーは、 Microsoft .NET Framework Version2.0 Software Development Kit(SDK)に準拠しています。Pervasive PSQL デー

タ プロバイダーはマネージ コードのみで構築されており、実行およびデー

タベースへの接続は完全に共通言語ランタイム (CLR) 内で行う こ とがで

きます。

ク ライアン ト ライブラ リや COM コンポーネン ト などネイティブ オペレー

ティング システムで実行するコードはアンマネージ コード と言います。マ

ネージ コード とアンマネージ コードは 1 つのアプリケーシ ョ ン内に混在さ

せるこ とができます。 ただし、 アンマネージ コードは共通言語ランタイム

の外部にまで影響が及ぶため、 現実的には複雑になり、 パフォーマンスも

低下します。また、セキュ リティの危険にさらすこ とにもな りかねません。

名前空間

Pervasive PSQL データ プロバイダーの名前空間は Pervasive.Data.SqlClient です。Pervasive PSQL データベースに接続する と きに、Pervasive.Data.SqlClient名前空間で PsqlConnection オブジェク ト と PsqlCommand オブジェク ト を使

用します。

次のコードは、 Pervasive PSQL データ プロバイダーの名前空間をアプ リ

ケーシ ョ ンに組み込む方法を示しています。

C#

// Pervasive PSQL へアクセスしますusing System.Data;using System.Data.Common;using Pervasive.Data.SqlClient;

Visual Basic

' Pervasive PSQL へアクセスImports System.DataImports System.Data.CommonImports Pervasive.Data.SqlClient

アセンブリ名

Pervasive PSQL データ プロバイダー用の厳密な名前のアセンブリは、 イン

ス トール時にグローバル アセンブリ キャ ッシュ (Global Assembly Cache :

GAC) に配置されます。 アセンブリ名は Pervasive.Data.SqlClient.dll です。

Pervasive.Data.Common アセンブリには、バルク ロードのサポート などの機

能が含まれます。

Pervasive PSQL アセンブリは厳密な名前を持ちます。

2-2

Page 31: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続文字列の使用

接続文字列の使用 接続の動作は、 接続文字列や PsqlConnection オブジェク トのプロパティを

使って定義するこ とができます。

しかし、 接続文字列内の値の設定を接続プロパティによって変更するこ と

はできません。

接続文字列の基本形式は、 セ ミ コロンで区切られた一連の 「キーワード /値」 のペアを含んでいます。 次に、 Pervasive PSQL データ プロバイダー用

の単純な接続文字列のキーワード と値の例を示します。

"Server DSN=SERVERDEMO;Host=localhost"

接続文字列の使用に関するガイド ライン

接続文字列を指定する際には、 次のガイ ド ラインを用います。

接続文字列オプシ ョ ン名内のスペースは任意です。 たとえば、 接続文

字列には Min Pool Size でも MinPoolSize でも指定できます。

接続文字列オプシ ョ ンでは大文字と小文字が区別されません。 たとえ

ば、 Password と password は同じです。 ただし、 User ID や Password などのオプシ ョ ンの値には大小文字が区別されるものもあ り ます。

セ ミ コロン、一重引用符、または二重引用符の入った値を含めるには、

その値を二重引用符で囲みます。 値にセミ コロンと二重引用符の両方

が入っている場合は、 一重引用符を使って値を囲みます。

値が二重引用符で始まる場合も一重引用符を使用できます。 逆に、 値

が一重引用符で始まる場合は二重引用符を使用します。 値に一重引用

符と二重引用符のどちら も入っている場合は、 値を囲むのに使用する

文字が値の中に現れるたびに、その文字を 2 つ重ねる必要があ り ます。

先頭または末尾のスペースを文字列値に含めるには、 その値を一重引

用符または二重引用符で囲む必要があ り ます。 整数値や、 ブール値、

列挙値を一重引用符または二重引用符で囲んでも、 値の前後のスペー

スは無視されます。 ただし、 文字列リテラルのキーワード内あるいは

値内のスペースは維持されます。 接続文字列内で一重引用符または二

重引用符を使用する場合、 それが値内の先頭または末尾の文字でなけ

れ ば、 区 切 り 文 字 な し で 使 用 で き ま す (た と え ば、 ServerDSN=Development'sServer または ServerDSN=my"dev"Server)。

接続文字列オプシ ョ ンの値で特殊文字を使用するこ とができます。 特

殊文字をエスケープするには、 その値を一重引用符または二重引用符

で囲みます。

また、 等号文字 (=) の繰り返しを接続文字列で使用するこ と もでき

ます。 たとえば、 次のよ うにします。

Initialization String=update mytable set col1 == 'foo'"

2-3

Page 32: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

接続文字列に無効な接続文字列オプシ ョ ンが含まれている場合には、

接続はエラーを返そう と します。 たとえば、 Alternate Servers を定義し

ていないのに Load Balancing の値を指定する と、エラーが返されます。

接続文字列に接続文字列オプシ ョ ンが重複して含まれている場合に

は、データ プロバイダーは接続文字列内で 後に現れる接続文字列オ

プシ ョ ン を使用 し ます。 た と えば、 次に示す接続文字列では、

Connection Timeout が異なる値で 2 回現れます。 データ プロバイダー

は 2 番目の値を使用するので、試行した接続を終了するまでに 35 秒待

ちます。

"ServerDSN=SERVERDEMO;Host=localhost;Connection Timeout=15;Min Pool Size=50;Connection Timeout=35"

接続文字列オプシ ョ ンの一覧については、 「接続文字列オプシ ョ ン」 (2-4ページ) を参照して ください。

接続文字列オプシ ョ ン

表 2-1 では Pervasive PSQL データ プロバイダーでサポート される接続オプ

シ ョ ンとその説明を一覧にして表示します。

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

Alternate Servers プライマ リ データベース サーバーが使用不可能の場合、データ プロバイダーが

接続を試みる代替データベース サーバーの一覧を指定します。 この接続文字列

オプシ ョ ンに値を指定する と、 データ プロバイダーに対して接続フェイルオー

バー機能が有効になり ます。

この値は、 代替サーバーごとに接続情報を定義する文字列の形式で指定する必

要があ り ます。 デフォル ト のポー ト値 1583 を使用しない場合は、 各代替サー

バーの名前または IP アドレス と、 ポート番号を指定する必要があ り ます。 文字

列は次のよ うな形式です。

"Host= ホス ト値 ;Port= ポート値 [, ...]"

たとえば、 Alternate Servers 値を次のよ うに指定する と、 接続フェイルオーバー

用に 2 つの代替サーバーが定義されます。

Alternate Servers="Host=AcctServer;Port=1584, Host=123.456.78.90;Port=1584"

接続フェイルオーバーの説明やこの機能で設定できるその他の接続文字列オプ

シ ョ ンに関する情報については、 「接続フェイルオーバーの使用」 (3-8 ページ)

を参照して ください。

Connection Reset {True | False}。アプ リ ケーシ ョ ンで再使用するための接続プールから接続を削除

する場合、 その状態を接続の初期設定状態にリセッ トするかど うかを指定しま

す。状態を リセッ トする と、 再使用される接続のパフォーマンスが低下します。

これは新しい接続ではサーバーに対して余分なコマンドを実行する必要がある

ためです。

False (デフォルトの初期値) に設定する と、 データ プロバイダーは接続の状態

を リセッ ト しません。

2-4

Page 33: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続文字列の使用

Connection Retry Count データ プロバイダーがプライマ リ サーバーへの接続を試行し、その初期接続が

失敗した後に代替サーバーへの接続を試行する回数を指定します。

0 から 65535 の整数値を指定できます。 0 (デフォルト値) に設定する と、 デー

タ プロバイダーは、 初期接続の試行に失敗した後に再接続を試行しません。

接続を再試行している間に接続が成功しなかった場合、データ プロバイダーは、

接続を試行した 後のサーバーで生成されたエラーを返します。

このオプシ ョ ンと試行間隔を指定する Connection Retry Delay オプシ ョ ンは、 接

続フェイルオーバーに関して使用するこ とができます。 接続フェイルオーバー

の説明やこの機能で設定できるその他の接続文字列オプシ ョ ンに関する情報に

ついては、 「接続フェイルオーバーの設定」 (3-12 ページ) を参照してください。

Connection Retry Delay 初期接続の試行に失敗した後、プライマ リ サーバーまたは (指定した場合には)

代替サーバーへの接続を再試行するまでの試行間隔を秒数で指定します。

0 から 65535 までの整数値が指定できます。デフォルトの初期値は 3 (秒) です。

0 に設定する と、 接続の再試行に待ち時間はあ り ません。

メモ : このオプシ ョ ンは Connection Retry Count 接続文字列オプシ ョ ンに 0 を設

定している場合は作用しません。

このオプシ ョ ンと、 データ プロバイダーが 初の接続の試行に失敗した後に接

続を試行する回数を指定する Connection Retry Count 接続文字列オプシ ョ ンは、

接続フェ イルオーバーに関して使用する こ とができます。 接続フェ イルオー

バーの説明やこの機能で設定できるその他の接続文字列オプシ ョ ンに関する情

報については、 「接続フェイルオーバーの設定」 (3-12 ページ) を参照して くだ

さい。

Connection Timeout サーバーへの接続の試行が失敗した後、 接続されないでいる間の秒数を指定し

ます。 接続フェイルオーバーが有効になっている場合、 このオプシ ョ ンは接続

の試行ごとに適用されます。

0 に設定する と、 データ プロバイダーが接続の試行でタイムアウ トする こ とは

あ り ません。

デフォルトの初期値は 15 秒です。

Database Name 接続するデータベースの内部名を指定します。 ServerDSN が定義されていない

Pervasive PSQL データ ソースに接続する必要がある場合は、 このオプシ ョ ンを

使用します。

デフォルト値は空文字列です。

メモ : 1 つの接続文字列に Database Name と Server DSN 接続文字列オプシ ョ ン

を混在させるこ とはできません。

別名 : DBQ

Enable Trace {0 | 1}。 ト レースを有効にするかど うかを指定します。

0 (デフォルトの初期値) に設定する と、 ト レースは有効になり ません。

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-5

Page 34: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

Encoding データベースに格納されている文字列データの翻訳に使用する、IANA 名または

Windows コード ページを指定します。

デフォルト値は空文字列で、 現在の Windows Active Code Page (ACP) が使用さ

れます。

Encrypt {Not specified | Always | Never}。データ プロバイダーが暗号化されたネッ ト ワー

ク通信 (ワイヤ暗号化と も呼ばれます) を使用するかど うかを決定します。

Always に設定する と、データ プロバイダーは暗号化を使用します。サーバーで

ワイヤ暗号化が許可されない場合はエラーが返されます。

Never に設定する と、 データ プロバイダーは暗号化を使用しません。 サーバー

でワイヤ暗号化を要求された場合はエラーが返されます。

接続文字列で暗号化を指定しないと (デフォルト )、データ プロバイダーはサー

バー設定の " 必要な場合 " と同等の値を反映します。

メモ : この接続文字列オプシ ョ ンはパフォーマンスに悪影響を与える こ とがあ

り ます。詳細については、「アプ リ ケーシ ョ ンのパフォーマンスに関する考慮点」

(2-13 ページ) を参照して ください。

Encryption {Low | Medium | High}。 データ プロバイダーが許可する暗号化の 低レベルを

決定します。

デフォルトの初期値は Medium (中) です。

これらの値の意味は使用する暗号化モジュールに応じて変わり ます。 デフォル

トの暗号化モジュールでは、 これらの値はそれぞれ 40 ビッ ト 、 56 ビッ ト 、およ

び 128 ビッ ト暗号化に対応しています。

Enlist {True | False}。 スレ ッ ドの現在の ト ランザクシ ョ ン コンテキス ト の作成中に、

データ プロバイダーが接続への参加を自動的に試行するかど う かを指定しま

す。

メモ : Pervasive PSQL は分散ト ランザクシ ョ ンをサポート しないため、 スレ ッ

ドの現在の ト ランザクシ ョ ン コンテキス ト での接続への参加試行は失敗しま

す。

False に設定する と、データ プロバイダーは接続への自動的な参加試行を行いま

せん。

True (デフォル トの初期値) に設定する と、 現在の ト ランザクシ ョ ン コンテキ

ス トが存在する場合にデータ プロバイダーはエラーを返します。 現在の ト ラン

ザクシ ョ ン コンテキス トが存在しない場合、データ プロバイダーは警告を発し

ます。

Host 接続する Pervasive PSQL サーバーの名前または IP アドレスを指定します。たと

えば、 Accountingserver などのサーバー名を指定でき ます。 あ るいは、

199.226.22.34 などの IP アドレスを指定できます。

デフォルトの初期値は localhost です。

別名 : Server、 Server Name

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-6

Page 35: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続文字列の使用

Initial Command Timeout データ プロバイダーが実行の試行を終了してエラーを生成するまでのデフォル

トの待機時間 (秒単位のタイムアウ ト ) を指定します。 このオプシ ョ ンは、 ア

プ リ ケーシ ョ ンのコードに変更を加えるこ とな く、 PsqlCommand オブジェク ト

の CommandTimeout プロパティ と同じ機能を提供します。 その後、 アプ リ ケー

シ ョ ンは CommandTimeout プロパティを使用して Initial Command Timeout 接続

文字列オプシ ョ ンを上書きするこ とができます。

デフォルトの初期値は 30 です。

たとえば、次の C# コード例では、接続文字列はコマンドの実行試行を終了する

までに 60 秒待機するよ う指示しています。 アプ リ ケーシ ョ ンは、次に、 45 秒の

CommandTimeout を指定し、 接続文字列で指定した値を上書きします。

PsqlCommand command = new PsqlCommand();PsqlConnection conn = new PsqlConnection("...; Initial

Command Timeout=60; ...");conn .Open();command.Connection = conn;// command.CommandTimeout は 60 を返しますcommand.CommandTimeout = 45;// command.CommandTimeout は 45 を返します

command = new PsqlCommand();command.CommandTimeout = 45;command.Connection = conn;// command.CommandTimeout は、 依然と して 45 を返します

メモ : CommandTimeout オプシ ョ ンの初期値に、 サーバーのデッ ド ロ ッ ク 検出

およびタイムアウ トの 大値よ り大きい値を設定します。 これによって、 アプ

リ ケーシ ョ ンはタイムアウ ト した場合によ り意味のある応答を受け取るこ とが

できます。

Initialization String セッシ ョ ンの設定を管理するために、 データベースへの接続後直ちに発行され

るステート メン ト を指定します。

デフォルトの初期値は空文字列です。

例:NULL で埋められた CHAR 列を処理するには、次のよ うに値を設定します。

Initialization String=SET ANSI PADDING ON

メモ:何らかの理由でステート メン トが失敗した場合、Pervasive PSQL サーバー

への接続は失敗します。 データ プロバイダーは、 サーバーから返されたエラー

を含む例外をスローします。

Load Balance Timeout 接続プールで接続を保持する秒数を指定します。 接続プール マネージャーは定

期的にすべてのプールをチェ ッ ク し、 その存続時間を超過した接続を閉じた り

排除します。 Min Pool Size オプシ ョ ンの指定によって、 一部の接続でこの値を

無視させるこ とができます。

値は、 0 から 65335 までの任意の整数を指定できます。

0 (デフォルトの初期値) に設定する と、 接続のタイムアウ トは上限値になり ま

す。

別名 : Connection Lifetime

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-7

Page 36: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

Load Balancing {True | False}。 データ プロバイダーがプライマ リ データベース サーバーや代替

データベース サーバーへの接続において、ク ライアン ト ロード バランスを使用

するかど うかを決定します。代替サーバーのリ ス トは Alternate Servers 接続オプ

シ ョ ンで指定されます。

True に設定する と、データ プロバイダーはランダムな順序でデータベース サー

バーに接続しよ う と します。ロード バランスに関する詳細については、「ク ラ イ

アン ト ロード バランスの使用」 (3-10 ページ) を参照して ください。

False (デフォルトの初期値) に設定する と、 ク ラ イアン ト ロード バランスは使

用されず、データ プロバイダーはシーケンシャル( 初にプライマ リ サーバー、

次に代替サーバーの指定された順) に各サーバーへ接続します。

メモ:このオプシ ョ ンは、Alternate Servers 接続文字列オプシ ョ ンで代替サーバー

が指定されていなければ作用しません。

Load Balancing 接続文字列オプシ ョ ンは、接続フェイルオーバーに関して使用す

るこ とができる任意の設定です。 接続フェイルオーバーの説明やこの機能で設

定できるその他の接続文字列オプシ ョ ンに関する情報については、「接続フェイ

ルオーバーの設定」 (3-12 ページ) を参照して ください。

Max Pool Size 1 つのプール内の 大接続数を指定します。 大数に達したら、それ以上の接続

を接続プールに追加するこ とはできません。

値は、 1 から 65335 までの任意の整数を指定できます。

デフォルトの初期値は 100 です。

Max Statement Cache Size ステー ト メ ン ト キャ ッシュに保持できるステー ト メ ン ト の 大数を指定しま

す。 この値には 0、 または 1 以上の整数を指定できます。

キャ ッシュ サイズに 0 を設定する と、 ステート メン ト キャ ッシングを無効にし

ます。

デフォルトの初期値は 10 です。

ほとんどの場合、 ステート メン ト キャ ッシングを使用する とパフォーマンスが

向上します。 このオプシ ョ ンがパフォーマンスに与える影響については、 「アプ

リ ケーシ ョ ンのパフォーマンスに関する考慮点」 (2-13 ページ) を参照して くだ

さい。

Min Pool Size 接続プールが 初に作成されたと き、 そのプールで開いている、 も し くは置い

ておく接続の 小数 (下限) を指定します。 接続プール内の一部の接続が LoadBalance Timeout 値を超えたと しても、接続プールにはこの 小数の接続が保持

されます。

値は、 0 から 65335 までの任意の整数を指定できます。

0 (デフォルトの初期値) に設定した場合、 接続が閉じられて接続プールに送ら

れる と、 プールには元の接続のみが含まれます。

小プール サイズに 1 から 65535 の整数を設定する と、 指定された数の接続の

複製がプールに保持されます。

プールがパフォーマンスに与える影響については、 「アプ リ ケーシ ョ ンのパ

フォーマンスに関する考慮点」 (2-13 ページ) を参照してください。

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-8

Page 37: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続文字列の使用

Parameter Mode ネイティブ パラ メーター マーカーおよびバインディングの動作を指定します。

これによ り、アプ リ ケーシ ョ ンはプロバイダー固有の SQL コードを再利用でき、

Pervasive PSQL データ プロバイダーへの移行を簡単にするこ とができます。

ANSI (デフォル トの初期値) に設定する と、 ? 文字はパラ メーター マーカーと

して処理され、序数と してバインド されます。アプ リ ケーシ ョ ンは BindByNameプロパティの動作をコマンド単位で切り替えられます。

BindByOrdinal に設定した場合、 ネイティブ パラ メーター マーカーが使用され、

ス ト アド プロシージャおよび標準コマンド用に序数と してバインド されます。

BindByName に設定した場合、 ネイテ ィブ パラ メーター マーカーが使用され、

ス ト アド プロシージャおよび標準コマンド用に名前でバインド されます。

Password Pervasive PSQL データベースへの接続に使用するパスワード (大文字小文字の

区別なし) を指定します。 パスワードは、 データベースでセキュ リ テ ィが有効

な場合にのみ必要です。 パスワードが必要な場合は、 システム管理者からパス

ワードを入手して ください。

別名 : PWD

Persist Security Info {True | False}。 セキュ リ ティで保護された情報を ConnectionString プロパティに

ク リ ア テキス トで表示するかど うかを指定します。

True に設定する と、 Password 接続文字列オプシ ョ ンの値はク リ ア テキス トで表

示されます。

False (デフォル ト の初期値) に設定する と、 データ プロバイダーはセキュ リ

ティで保護された情報をク リ ア テキス トで表示しません。

Pooling {True | False}。接続をプールするかど うかを指定します。接続プールに関する詳

細については、 「接続プールの使用」 (3-2 ページ) を参照してください。

True (デフォル トの初期値) に設定する と、 接続プールが有効になり ます。

プールがパフォーマンスに与える影響については、 「アプ リ ケーシ ョ ンのパ

フォーマンスに関する考慮点」 (2-13 ページ) を参照してください。

Port Pervasive PSQL データベースで動作している リ スナーの TCP ポート を指定しま

す。

デフォルトのポート番号は 1583 です。

PVTranslate {Auto | Nothing}。 ク ラ イアン トが、 サーバーと適合するエンコードをネゴシエ

イ トするかど うかを指定します。

Auto に設定した場合、データ プロバイダーはサーバーのコードページを取得し

て、 データをサーバーのコードページに変換します。

Nothing に設定する と変換は行われません。

Schema Collection Timeout 試行したスキーマ コレクシ ョ ン操作が失敗した後、 完了されないでいる間の秒

数を指定します。

0 に設定する と、 データ プロバイダーがスキーマ コレクシ ョ ン操作の試行でタ

イムアウ トするこ とはあ り ません。

デフォルトの初期値は 120 です。

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-9

Page 38: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

Schema Options 返されるデータベース メ タデータを指定します。デフォルトで、データ プロバ

イダーは、 パフォーマンスに悪影響を与えるデータベース メ タデータを返さな

いよ うにしてパフォーマンスを 適化します。 アプ リ ケーシ ョ ンでデータベー

ス メ タデータを必要とする場合は、メ タデータの名前または 16 進値を指定しま

す。

このオプシ ョ ンはパフォーマンスに影響するこ とがあ り ます。

ShowColumnDefaults または 0x04 を設定する と、 列のデフォルトが返されます。

ShowParameterDefaults または 0x08 を設定する と、列のデフォルトが返されます。

FixProcedureParamDirection または 0x10 を設定する と、プロシージャ定義が返さ

れます。

ShowProcedureDefinitions または 0x20 を設定する と、プロシージャ定義が返され

ます。

ShowViewDefinitions または 0x40 を設定する と、 ビュー定義が返されます。

ShowAll または 0xFFFFFFFF を設定する と、 すべてのデータベース メ タデータ

が返されます。

たとえば、プロシージャ定義の説明を返すには Options=ShowProcedureDefinitionsまたは Schema Options=0x20 を指定します。

複数の除外されたメ タデータを表示するには、名前をカンマ区切りのリ ス トで指

定するか、制限したい列コレクシ ョ ンの 16 進値の合計を指定します。たとえば、

プロシージャ定義とビュー定義 (それぞれ 16 進値で 0x20 と 0x40) を返すには、Schema Options=ShowProcedureDefinitions, ShowViewDefinitionsまたは Schema Options=0x60 と指定します。

データ プロバイダーが追加できる メ タデータの名前および 16 進値については、

表 2-2 を参照して ください。

メモ : この接続文字列オプシ ョ ンはパフォーマンスに悪影響を与える こ とがあ

り ます。詳細については、「アプ リ ケーシ ョ ンのパフォーマンスに関する考慮点」

(2-13 ページ) を参照して ください。

Server DSN サーバー上のデータ ソースの名前、 たとえば Server DSN=SERVERDEMO を指

定します。

デフォルト値は SERVERDEMO です。

メモ : 1 つの接続文字列に Database Name と Server DSN 接続文字列オプシ ョ ン

を混在させるこ とはできません。

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-10

Page 39: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続文字列の使用

Statement Cache Mode ステート メン ト キャ ッシュ モードを指定します。Statement Cache Mode はステー

ト メ ン ト のキャ ッシュ動作を制御します。 ステー ト メ ン ト は自動的にキャ ッ

シュ されるか、 またはコマンドが明示的にマーク した場合にのみキャ ッシュ さ

れます。

Auto に設定する と、 ステート メ ン ト キャ ッシングは PsqlCommand プロパティ

の StatementCacheBehavior に暗黙的にマーク されたステート メ ン ト に対して有

効にな り ます。 これらのコマンドは明示的にマーク されたコマンド よ り低い優

先順位を持ちます。 つま り、 ステート メン ト プールが 大ステート メン ト数に

達した場合、Cache とマーク されたステート メン ト用の余地を作るため、Implicitとマーク されたステート メン トが 初に削除されます。

ExplicitOnly (デフォル ト の初期値) を設定する と、 StatementCacheBehavior によって Cache とマーク されたステート メン トのみがキャ ッシュされます。

ほとんどの場合、 ステート メン ト キャ ッシングを有効にする とパフォーマンス

が向上します。 このオプシ ョ ンがパフォーマンスに与える影響については、 「ア

プ リ ケーシ ョ ンのパフォーマンスに関する考慮点」 (2-13 ページ) を参照してく

ださい。

Timestamp {DateTime | String}。 データ プロバイダーで、 Pervasive のタイムスタンプを文字

列と して格納および取得するかど うかを指定します。

DateTime に設定するか、 も し くは定義しない (デフォルト ) と、 データ プロバ

イダーはタイムスタンプを .NET DateTime 型にマップします。 この設定はネイ

テ ィブな精度が必要な場合、 たとえば、 TimeStamp を含む PsqlCommandBuilderを使用する場合に適しています。

String に設定する と、 タイムスタンプは文字列と して返されます。 データ プロ

バイダーは、 Pervasive タイムスタンプを .NET String 型にマップします。

TimeType {DateTime | TimeSpan}。 Pervasive の Time を ADO.NET データ プロバイダーの

Timespan または DateTime と して取得するかど うかを指定します。

DateTime に設定する と、 データ プロバイダーは SQL の TIME 型を .NET のSystem.DateTime 型にマップします。

TimeSpan に設定する と、 データ プロバイダーは SQL の TIME 型を .NET のSystem.DateTimeSpan 型にマップします。

Trace File ト レース ファ イルのパス と名前を指定します。

デフォルトの初期値は \PVSW_NETTrace.txt です。このファ イルが存在しない場

合はデータ プロバイダーが作成します。

Use Current Schema この接続文字列オプシ ョ ンはサポート されていません。これを設定する と、デー

タ プロバイダーは例外をスローします。

User ID Pervasive PSQL データベースへの接続に使用するデフォル ト の Pervasive PSQLユーザー名を指定します。

別名 : UID

表 2-1 接続文字列オプシ ョ ン

オプシ ョ ン 説明

2-11

Page 40: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

表 2-2 に、 データ プロバイダーが、 返すデータから除外する列コレクショ ン

の名前と 16 進値を挙げます。 これは、 スキーマ オプショ ンの接続文字列オ

プショ ンでサポート される値です。 複数の値を指定するには、 名前をカンマ

区切り のリ スト で指定するか、返したい列コレクショ ンの 16 進値の合計を指

定します。 たと えば、 テーブルと 列コレクショ ンの説明およびプロシージャ

定義を返したい場合、 Schema Option=ShowProcedureDefinitions,ShowViewDefinitions または Schema Option=0x60 と指定します。

表 2-2 Pervasive PSQL 列コレクシ ョ ン

名前 16 進数の値 コレクシ ョ ン / 列

ShowColumnDefaultsa 0x04 Columns/COLUMN_DEFAULT

ShowParameterDefaults 0x08 ProcedureColumns//PARAMETER_DEFAULT

FixProcedureParamDirection 0x10 ProcedureColumns/PARAMETER_TYPE

ShowProcedureDefinitions 0x20 Procedures/PROCEDURE_DEFINITION

ShowViewDefinitions 0x40 Views/VIEW_DEFINITION

ShowAll 0x7F All

a COLUMN_HAS_DEFAULT は、 常にヌル値を返します。

2-12

Page 41: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

アプリケーシ ョ ンのパフォーマンスに関する考慮点

アプリケーシ ョ ンのパフォーマンスに関する考慮点

アプ リ ケーシ ョ ンのパフォーマンスは、 接続文字列オプシ ョ ン、 および、

いくつかのデータ プロバイダー オブジェク トのプロパティに設定された

値の影響を受けます。

接続文字列オプシ ョ ン

Encrypt :データ暗号化は、データの暗号化と復号化で必要となる追加オー

バーヘッ ド (主に CPU 使用)のため、パフォーマンスに悪影響を与えます。

Max Statement Cache Size:アプ リ ケーシ ョ ンが使用する全プリペアド ステート メン ト をキャ ッシュすれば、 高のパフォーマンスを提供できるよ

うに思われます。 しかし、 この手法では、 接続プールを使ってステート メ

ン ト キャ ッシングを実装した場合、データベース サーバーのメモ リに負担

をかける結果になり ます。 この場合、 プールされた接続はそれぞれステー

ト メン ト キャ ッシュを持ち、アプリ ケーシ ョ ンが使用する全プリペアド ステート メン ト を含むこ とにな り ます。 キャ ッシュされた全ステート メン ト

は、 データベース サーバーのメモ リにも保持されます。

Pooling : データ プロバイダーが接続プールを使用できるよ うにしている

場合、 パフォーマンスに影響する以下の追加オプシ ョ ンを定義できます。

Load Balance Timeout:接続をプールに保持する時間を定義できます。

プール マネージャーは、接続がプールに返されたと きに接続の作成時

間をチェッ ク します。 作成時間を現在の時間と比較し、 時間の間隔が

Load Balance Timeout オプシ ョ ンの値を超えていたら、接続を破棄しま

す。 Min Pool Size オプシ ョ ンの指定によって、 一部の接続でこの値を

無視させるこ とができます。

Connection Reset : 再利用される接続を初期設定に戻すと、 その接続

はサーバーに対して余分なコマンドを発行する必要が生じるため、 パ

フォーマンスに悪影響を与えます。

Max Pool Size:プールに格納できる接続数の 大値の設定が低すぎる

と、 接続が使用可能になるまでの時間が延期されます。 大値の設定

が高すぎる と、 リ ソースを無駄に消費します。

Min Pool Size : 接続プールは、 一意な接続文字列を使って 初にデー

タベースへ接続したと きに作成されます。 Min Pool Size が指定されて

いる場合、 プールには 小数の接続が格納されます。 接続プール内の

一部の接続が Load Balance Timeout 値を超えたと しても、 接続プール

にはこの 小数の接続が保持されます。

Schema Options : あ る種のデータベース メ タデータを返すこ とは、 パ

フォーマンスに影響を与えます。 アプリ ケーシ ョ ンのパフォーマンスを

適化するため、データ プロバイダーは、パフォーマンスに悪影響を与える

プロシージャ定義やビュー定義などのデータベース メ タデータを返さな

2-13

Page 42: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

いよ うにします。アプリ ケーシ ョ ンがこれらのデータベース メ タデータを

必要とする場合は、 明確にそれを返すよ う要求する必要があ り ます。

複数の種類の除外されたメ タデータを返すには、 名前をカンマ区切り リ ス

トで指定するか、 返したい列コレクシ ョ ンの 16 進値の合計を指定します。

たとえば、 プロシージャ定義とビュー定義を返すには以下のいずれかを指

定します。

Schema Option=ShowProcedureDefinitions, ShowViewDefinitions

Schema Options=0x60

Statement Cache Mode:ほとんどの場合、ステート メン ト キャッシングを

有効にする とパフォーマンスが向上します。プリペアド ステート メン ト (コ

マンド インスタンス) のキャッシングを有効にするには、 このオプシ ョ ン

を Auto に設定し ます。 アプ リ ケーシ ョ ンが、 暗黙的にステー ト メ ン ト

キャッシュに含める とマーク されたプリペアド ステート メン ト を持つ場合

は、 この設定を使用します。 または、 暗黙的に含めるステート メ ン トがい

くつかあり、その他は明示的に含める場合、この設定を使用します。ステー

ト メン ト キャッシュに Cache とマーク されたプリペアド ステート メン トの

みを含めたい場合は、 1) Command オブジェク トの StatementCacheBehaviorプロパティに Cache を設定し、 2) このオプシ ョ ンに ExplicitOnly を設定し

ます。

プロパティ

StatementCacheBehavior:アプ リ ケーシ ョ ンがその存続期間中にプリペア

ド ステート メン ト を複数回再使用する場合、ステート メン ト キャ ッシュを

使用するこ とによってパフォーマンスに影響を及ぼすこ とができます。 こ

のプロパティは、 プ リペアド ステート メ ン ト (Command オブジェク トの

インスタンス) がステート メン ト キャ ッシング中にどのよ うに処理される

かを決定します。

Cache に設定する と、プ リペアド ステート メン トはステート メン ト キャ ッ

シュに含められます。

Implicit に設定して Statement Cache Mode 接続文字列オプシ ョ ンに Auto を設定する と、プ リペアド ステート メン トはステート メン ト キャ ッシュに含

められます。

DoNotCache に設定する と、 プ リペアド ステート メ ン トはステート メ ン ト

キャ ッシュから除外されます。

特定のステート メン ト をキャ ッシングするこ とによるパフォーマンスへの

影響を判断するには、接続統計情報を使用できます (「接続統計情報による

パフォーマンスの分析」 (3-24 ページ) を参照して ください)。

2-14

Page 43: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ型

データ型

表 2-3 から 2-6 は、 Pervasive PSQL データ プロバイダーでサポート される

データ型を示しています。

表 2-3 は、 Pervasive データ型と .NET Framework 型の対応表です。

表 2-4 は、 System.Data.DbType のみが指定されている場合にデータ プロバイダーが使用するデータ型の対応表です。

表 2-5 は、 プロバイダー固有のデータ型も System.Data.DbType も指定

されていない場合に、データ プロバイダーがデータ型を推定するため

に使用するデータ型の対応表です。

表 2-6 は、 長いデータ パラ メーターへの入力と してス ト リームが使用

される場合にデ―タ プロバイダーが使用するデータ型の対応表です。

Pervasive データ型から .NET Framework データ型へのマッピング

表 2-3 では Pervasive PSQL データ プロバイダーでサポート されるデータ型

と、対応する .NET Framework 型を示します。この表で、DataAdapter を使っ

て DataSet を埋める と きに使用するデータ型を確認してください。

また、 この表では DataReader オブジェク ト を直接使用する場合にデータへ

アクセスするための適切なアクセサーも示します。

[Pervasive データ型] 列は、 ネイティブなデータ型の名前を示してい

ます。

[PsqlDbType] 列は、Pervasive PSQL データ プロバイダーのデータ型の

列挙を示します。 基本的には、 ネイティブ データ型と PsqlDbType とは 1 対 1 で対応しています。ただし、Pervasive データ型 NUMBER は、

Decimal または Double のどちらにも対応しているので、 この限りでは

あ り ません。

[.NET Framework 型]列は .NET Framework で使用可能な基本データ型

を示します。

[.NET Framework 型指定されたアクセサー] 列は、 DataReader を使用

する場合に、 この型の列へのアクセスに使用する必要がある メ ソ ッ ド

を示します。

表 2-3 Pervasive データ型のマッピング

Pervasive データ型 PsqlDbType .NET Framework 型 .NET Framework 型指定

されたアクセサー

BFLOAT4 BFloat4 Single GetSingle( )

BFLOAT8 BFloat8 Double GetDouble()

2-15

Page 44: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

BIGINT BigInt Int64 GetDecimal( )

BINARY Binary Byte[] GetBytes( )

BIT Bit Byte[] GetBytes( )

CHAR Char String

Char[]

GetString( )

GetChars( )

CURRENCY Currency Decimal GetDecimal( )

DATE Date DateTime GetDateTime()

DATE/TIME DateTimea DateTime GetDateTime()

DECIMAL Decimal Decimal GetDecimal( )

DOUBLE Double Double GetDouble()

FLOAT Float Double GetDouble()

IDENTITY Identity Int32 GetInt32( )

INTEGER Integer Int32 GetInt32( )

LONGVARBINARY LongVarBinary Byte[] GetBytes( )

LONGVARCHAR LongVarChar Byte[] GetBytes( )

MONEY Money Decimal GetDecimal( )

NUMERIC Decimal Decimal GetDecimal( )

NUMERICSA DecimalSA Decimal GetDecimal( )

NUMERICSTS DecimalSTS Decimal GetDecimal( )

REAL Real Single GetSingle( )

SMALLIDENTITY SmallIdentity Int16 GetInt16( )

SMALLINT SmallInt Int16 GetInt16( )

TIME Time Timespanb GetValue()

TIMESTAMP Timestamp DateTime GetDateTime()

TINYINT TinyInt SByte GetByte( )

表 2-3 Pervasive データ型のマッピング

Pervasive データ型 PsqlDbType .NET Framework 型 .NET Framework 型指定

されたアクセサー

2-16

Page 45: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ型

パラメーター データ型のマッピング

パラ メーターのデータ型は、データ プロバイダーごとに固有のものを使用

します。 Pervasive PSQL データ プロバイダーは、 パラ メーター値をサー

バーに送信する前にネイティブの形式に変換する必要があ り ます。 アプリ

ケーシ ョ ンでパラ メーターを記述する も よい方法は、 データ プロバイ

ダー固有の型の列挙を使用するこ とです。

汎用プログラ ミ ングでは、データ プロバイダー固有の型を使用できない場

合があ り ます。 プロバイダー固有の DB 型が指定されていない場合は、 パ

ラ メーター値の System.Data.DbType または .NET Framework 型からデータ

型が推定されます。

Pervasive PSQL データ プロバイダーは、 次の順序でパラ メーターのデータ

型を推定します。

データ プロバイダー固有のデータ型が指定されている場合は、それを

使用します。

System.Data.DbType は指定されているけれども、 データ プロバイダー

固有のデータ型が指定されていない場合は、 System.Data.DbType から

データ型を推定します。

データ プロバイダー固有のデータ型も System.Data.DbType も指定さ

れていない場合は、 .NET Framework 型からデータ型を推定します。

表 2-4 では System.Data.DbType のみが指定された場合に Pervasive PSQL で推定されるデータ型を示します。

UBIGINT UBigInt UInt64 GetUInt64()

UNIQUE_IDENTIFIER UniqueIdentifier* String GetString( )

UINTEGER UInteger UInt32 GetUInt32( )

USMALLINT USmallInt UInt16 GetUInt16( )

UTINYINT UTinyInt Byte GetByte( )

VARCHAR VarChar String

Char[]

GetString( )

GetChars( )

a Pervasive PSQL 9.5 以上でサポート されます。

b timetype 接続オプシ ョ ンの設定によって異なり ます。

表 2-3 Pervasive データ型のマッピング

Pervasive データ型 PsqlDbType .NET Framework 型 .NET Framework 型指定

されたアクセサー

2-17

Page 46: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

表 2-4 System.Data.DbTypes から PsqlDbTypes へのマッピング

System.Data.DbType PsqlDbType

AnsiString VarChar

AnsiStringFixedLength Char

Binary Binary

Boolean Integer

Byte Integer

Currency Currency

Date Date

DateTime DateTimea

a Pervasive PSQL v9.5 以上でサポート されます。

Decimal Decimal または Money

Double Double

Float Float

GUID UniqueIdentifier*

Int16 SmallInt

Int32 Integer

Int64 BigInt

Sbyte Integer

Single BFloat4

String VarChar

StringFixedLength Char

Time Time

Uint16 USmallInt

Uint32 UInteger

Uint64 UBigInt

VarNumeric Decimal

2-18

Page 47: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ型

表 2-5 では、 プロバイダー固有のデータ型も System.Data.DbType も指定さ

れない場合に、データ プロバイダーがデータ型を推定するために使用する

対応表を示します。

表 2-5 .NET Framework 型から PsqlDbType へのマッピング

.NET Framework 型 PsqlDbType

Boolean Integer

Byte Integer

Byte[] Binary

DateTime Timestamp

Decimal Decimal

Double Double

Int16 SmallInt

Int32 Integer

Int64 BigInt

Single BFloat4

String VarChar

Uint16 USmallInt

Uint32 UInteger

Uint64 UBigInt

2-19

Page 48: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

スト リーム オブジェク トでサポート されるデータ型

Pervasive PSQL プロバイダーは、表 2-6 に挙げられているデータ型に対し、

長いデータ パラ メーターへの入力と してス ト リームを使用する こ と をサ

ポート しています。

ス ト リームの説明については、 「長いデータ パラ メーターへの入力と して

ス ト リームを使用する」 (2-21 ページ) を参照して ください。

表 2-6 サポート されるスト リーム オブジェク ト

プロバイダー データ型 サポート されるスト リーム型

LONGVARBINARY Stream

LONGVARCHAR TextReader

2-20

Page 49: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

長いデータ パラメーターへの入力としてスト リームを使用する

長いデータ パラメーターへの入力としてスト リームを使用する ビデオ ク リ ップや大量のドキュ メ ン ト など非常に大きなバイナリ値やテ

キス ト値を表すために、 不連続なメモ リの使用を許可するこ とによって、

パフォーマンス、 機能性、 スケーラビ リティが向上します。

バイナ リ データの読み取 り に使用される ス ト リ ーム オブジェ ク ト は

System.IO.Stream オブジェク トから派生し、Framework データ型の byte[] を使用します。

System.IO.BufferedStream

System.IO.FileStream

System.IO.MemoryStream

System.Net.Sockets.NetworkStream

System.Security.Cryptography.CryptoStream

テキス ト データを読み込むために使用するス ト リーム オブジェ ク ト は

System.IO.TextReader オブジ ェ ク ト か ら派生し、 Framework データ型の

string を使用します。

System.IO.StreamReader

System.IO.StringReader

ス ト リームを使用できる よ うにするには、 PsqlParameter オブジェ ク ト の

Value プ ロパテ ィ にス ト リ ームの特定の イ ン ス タ ン ス を設定し ます

(「PsqlParameter オブジェク ト 」 (6-16 ページ) を参照して ください)。 コマ

ンドが実行される と、データ プロバイダーはス ト リームから読み込んで値

を抽出します。

データ プロバイダーに付属する用例には、ランダムに生成されるデータを

使用して LONGVARCHAR 列と LONGVARBINARY 列にデータを挿入す

るコード例が含まれています。 また、 用例では、 ス ト リーム オブジェク ト

を LONGVARCHAR 列および LONGVARBINARY 列への入力と して使用

する方法も示しています。

2-21

Page 50: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

パラメーター マーカー

パラ メーター マーカー(ス ト アド プロシージャで使用するものも含む)は、

Pervasive PSQL データ プロバイダーでは SQL ステート メン トで ? 記号を使

用するこ とによって指定されます。

UPDATE emp SET job = ?, sal = ?WHERE empno = ?

パラ メーターには名前が付いていないため、 SQL ステート メン トにあるパ

ラ メーターの順番どおり にバイン ド されなければな り ません。 つま り、

PsqlParameterCollection オブジェク トの Add() メ ソ ッ ド (Parameter オブジェ

ク ト をコレクシ ョ ンに追加する) の呼び出しは、 コマンド テキス トに現れ

る "?" の順番どおりに発生する必要がある という こ とです。

2-22

Page 51: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パラメーター配列

パラメーター配列 パラ メーター配列のバイン ドは通常 Insert ステー ト メ ン ト で使用され、

テーブルを埋めるために必要な時間を短縮します。 アプ リ ケーシ ョ ンは

1 回のコマンド実行で複数のパラ メーター値の行を指定するこ とができま

す。 それらの値を 1 回の往復 (バッ クエン ド データベース本来の能力に

よって異なる) でデータベース サーバーに送るこ とができます。

Pervasive PSQL データ プロバイダーでは Insert および Update ステート メン

トに対して入力パラ メーター配列をサポート します。

2-23

Page 52: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

ストアド プロシージャ

アプリ ケーシ ョ ンでス ト アド プロシージャを使用できるよ うにするには、

次の手順に従ってください。

PsqlCommand オブジェク トの CommandText プロパティにス ト アド プロシージャ名を設定します。

MyCommand.CommandText = "GetEmpSalary";

PsqlCommand オブジェクトの CommandType プロパティに StoredProcedureを設定します。

MyCommand.CommandType = CommandType.StoredProcedure;

必要に応じてパラ メーター引数を指定します。 アプリ ケーシ ョ ンでは

PsqlCommand オブジェク トのパラ メーター コレクシ ョ ンに、ス ト アド

プロシージャの引数の順序どおりにパラ メーターを追加して くださ

い。 ただし、 アプ リ ケーシ ョ ンでは PsqlCommand オブジェ ク ト の

CommandText プロパティでパラ メーター マーカーを指定する必要は

あ り ません。

ス ト ア ド プロシージャから戻り値を取得するには、 アプ リ ケーシ ョ ンで

PsqlCommand オブジェ ク ト のパラ メーター コレ クシ ョ ンにパラ メーター

を余分に追加する必要があ り ます。 このパラ メーターの ParameterDirectionプロパティ を ParameterDirection.ReturnValue に設定します。 戻り値の取得

用のパラ メーターは、パラ メーター コレクシ ョ ンのどこにあってもかまい

ません。 これは、 このパラ メーターが、 PsqlCommand オブジェク トの Textプロパテ ィにある特定のパラ メーター マーカーに対応していないためで

す。

ス ト アド プロシージャからの戻り値がない場合は、ParameterDirection プロ

パティにバインド されているパラ メーターは無視されます。

ス ト アド プロシージャがデータベースから ReturnValue を返しても、 アプ

リ ケーシ ョ ンでそのパラ メーターをバインド していない場合は、データ プロバイダーによってその値が破棄されます。

2-24

Page 53: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ト ランザクシ ョ ンのサポート

ト ランザクシ ョ ンのサポート

Pervasive PSQL データ プロバイダーは、 完全に .NET Framework 内で実装

される ト ランザクシ ョ ンのサポート にはマネージ コードのみを使用しま

す。

ローカル ト ランザクシ ョ ンは基盤となるデータベースの内部的な ト ラン

ザクシ ョ ン マネージャーを使用します。

アプ リ ケーシ ョ ンでは PsqlConnection オブジェ ク ト で BeginTransaction を呼び出すこ とによって PsqlTransaction オブジェク ト を作成します。 ト ラン

ザクシ ョ ンのコ ミ ッ トや中止などその後の操作は PsqlTransaction オブジェ

ク トで実行されます。

2-25

Page 54: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

スレッ ドのサポート PsqlConnection オブジェ ク トはスレッ ドセーフです。 それぞれ別のスレッ

ドでアクセスする複数の PsqlCommand オブジェク トが、同時に 1 つの接続

を使用できます。

別々のスレッ ドでほかのパブ リ ッ ク オブジェク トやデータ プロバイダー

固有のオブジェ ク ト に同時にアクセスするのはスレッ ド セーフではあ り

ません。

2-26

Page 55: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Unicode のサポート

Unicode のサポート Pervasive PSQL データ プロバイダーでは、 .NET Framework SDK の規定に

従って Unicode をサポー ト し ます。 これは、 データ プロバイダーでは

Unicode UTF-16 エンコーディングで文字を表わすこ とを意味します。

データ プロバイダーは UTF-16 文字をデータベースで使用されている形式

に変換し、 .NET Framework 文字列をアプリ ケーシ ョ ンに返します。たとえ

ば、Pervasive PSQL データベース コード ページが拡張 ASCII 形式である場

合、 Pervasive PSQL データ プロバイダーは拡張 ASCII を使用してデータ

ベースに送られた文字を表します。その後、データ プロバイダーはアプリ

ケーシ ョ ンに送り戻される前に、 返された拡張 ASCII 文字を変換します。

Unicode と国際的な文字の .NET Framework 実装に関する詳細については、

.NET Framework SDK のドキュ メン ト を参照して ください。

2-27

Page 56: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

分離レベル Pervasive PSQL では ReadCommitted と Serializable の分離レベルをサポート

します。 Pervasive PSQL はレコード レベルのロッ クをサポート します。 詳

細については 「ロ ッ ク レベルと分離レベル」 (9-1 ページ) を参照して くだ

さい。

2-28

Page 57: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

SQL エスケープ シーケンス

SQL エスケープ シーケンス Pervasive PSQL データ プロバイダーでサポートする SQL エスケープ シー

ケンスの説明については、「.NET の SQL エスケープ シーケンス」(8-1 ペー

ジ) を参照してください。

2-29

Page 58: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

イベン ト処理 イベン ト ハン ド ラーは PsqlInfoMessageEventArgs 型の引数を受け取り ま

す。これにはイベン トに関するデータが含まれています。詳細については、

「PsqlInfoMessageEventArgs オブジェク ト 」 (6-15 ページ) を参照して くださ

い。

このイベン トは次のよ うに定義されます。

public event PsqlInfoMessageEventHandler InfoMessage;

データベース サーバーから送られる警告や情報メ ッセージを処理したいク

ライアン トは、 このイベン ト を受け取るために PsqlInfoMessageEventHandlerデリゲート を作成してください。

これらのイベン ト を使用して、 パッケージ、 ス ト アド プロシージャ、 また

はス ト アド関数 (これらはすべてコマンドを作成します) の作成時に発生

するエラーを取得するこ とがでます。パッケージ、 ス ト アド プロシージャ

またはス ト ア ド 関数で作成された コマン ド を コ ンパイルする と きに

Pervasive PSQL でエラーが検出される と、 有効ではあ り ませんがオブジェ

ク トが作成されます。イベン トが送られ、エラー発生したこ とを示します。

次のコードでは、PsqlConnection オブジェク トの InfoMessage イベン ト を処

理する メ ソ ッ ドを表わすデリゲート を定義しています。

[Serializable]public delegate void PsqlInfoMessageEventHandler( object sender PsqlInfoMessageEventArgs e );

こ こで、 sender はイベン ト を生成したオブジェ ク ト 、 e は警告を説明する

PsqlInfoMessageEventArgs オブジェク トです。イベン ト とデリゲートの詳細

については、 Microsoft .NET Framework SDK のドキュ メン ト を参照して く

ださい。

2-30

Page 59: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

エラー処理

エラー処理 PsqlError オブジェク トは、 Pervasive PSQL サーバーで生成されたエラーや

警告に関する情報を収集します。 詳細については、 「PsqlError オブジェ ク

ト 」 (6-13 ページ) を参照して ください。

PsqlException オブジェク トは、 Pervasive PSQL サーバーがエラーを返した

と きに作成されスローされます。データ プロバイダーによって生成された

例外は標準の ラ ン タ イ ム例外 と し て返 さ れます。 詳細については、

「PsqlException オブジェク ト 」 (6-14 ページ) を参照して ください。

2-31

Page 60: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

.NET オブジェク トの使用 Pervasive PSQL データ プロバイダーでは .NET パブリ ッ ク オブジェク ト を

サポート し、 それらをシールド オブジェク ト (封印されたオブジェク ト )

と して公開します。

詳細については、 「サポート される .NET オブジェク ト 」 (6-1 ページ) を参

照してください。

2-32

Page 61: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

.NET 用アプリケーシ ョ ン開発のためのその他のリソース

.NET 用アプリケーシ ョ ン開発のためのその他のリソース

データ コンシューマー アプリ ケーシ ョ ンの開発者は、 Microsoft .NET の仕

様やオブジェク ト指向のプログラ ミ ング技術に精通している必要があ り ま

す。

Microsoft では以下のよ うな ADO.NET に関する豊富な情報 (主に英語) を

Web 上で提供しています。

「Microsoft .NET へのアップグレード」 - 「ADO プログラマのための

ADO.NET」http://msdn.microsoft.com/ja-jp/library/aa302323.aspx

「.NET Framework データ プロバイダーによるデータのアクセス」 http://msdn.microsoft.com/ja-jp/library/aa735598(VS.71).aspx

「ADO.NET 2.0 基本クラスおよびファ ク ト リによる汎用的なコーディ

ング」

http://www.microsoft.com/japan/msdn/vs05/adonet/vsgenerics.aspx

「セキュ リ ティ ポ リシーにおける 善の実施」

http://msdn2.microsoft.com/en-us/library/sa4se9bc(vs.71).aspx

「サービス コンポーネン トの作成」

http://msdn.microsoft.com/ja-jp/library/3x7357ez.aspx

「DataSet の作成および使用」

http://msdn.microsoft.com/ja-jp/library/aa719836(VS.71).aspx

「XML と DataSet」http://msdn.microsoft.com/ja-jp/library/aa735754(VS.71).aspx

2-33

Page 62: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET データ プロバイダーの使用

2-34

Page 63: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

3

ADO.NET の高度な機能

この章には、データ プロバイダーの高度な機能を説明する以下のセクシ ョ

ンが含まれます。

「接続プールの使用」 (3-2 ページ)

「ステート メン ト キャ ッシングの使用」 (3-6 ページ)

「接続フェイルオーバーの使用」 (3-8 ページ)

「ク ラ イアン ト ロード バランスの使用」 (3-10 ページ)

「接続の再試行機能の使用」 (3-11 ページ)

「セキュ リ ティの設定」 (3-14 ページ)

「Pervasive Bulk Load の使用」 (3-15 ページ)

「診断機能の使用」 (3-22 ページ)

3-1

Page 64: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

接続プールの使用 接続プールを使用すれば、 作成済みの接続を再利用できるので、 データ プロバイダーはデータベースに接続するたびに新しい接続を作成する必要が

なくなり ます。Pervasive PSQL データ プロバイダーでは .NET ク ライアン ト

アプリケーシ ョ ンで自動的に接続プールを使用できるよ うになり ました。

接続プールの動作は、接続文字列オプシ ョ ン (「接続文字列オプシ ョ ン」 (2-4 ページ) を参照) によって制御するこ とができます。たとえば、接続プー

ル数、 プール内の接続数、 接続が破棄されるまでの時間 (秒数) を定義す

るこ とができます。

ADO.NET の接続プールは .NET Framework によ って提供されません。

ADO.NET データ プロバイダー自体に実装する必要があ り ます。

接続プールの作成

各接続プールは、 それぞれ特有の接続文字列と関連付けられます。 デフォ

ルトでは、 接続プールは一意な接続文字列を使って 初にデータベースに

接続したと きに作成されます。 プールには、 プールの 小限のサイズまで

接続が格納されます。 プールが 大限のサイズに達するまで、 接続がプー

ルに追加されていきます。

プールは、その中で接続が開いている限り、あるいは、Connection オブジェ

ク トへの参照を持つアプリ ケーシ ョ ンによって使用されており、 そのオブ

ジェク トに開いている接続がある限り、 アクティブであ り続けます。

新しい接続を開いたと き、 その接続文字列が既存のプールと一致しない場

合は、 新しいプールを作成する必要があ り ます。 同じ接続文字列を使用す

るこ とで、 アプリ ケーシ ョ ンのパフォーマンスやスケーラビ リティを向上

させるこ とができます。

以下の C# コード例では、3 つの新しい PsqlConnection オブジェク トが作成

されます。ただし、これらのオブジェク ト を管理するために必要な接続プー

ルは 2 つのみです。 1 番目と 2 番目の接続文字列では、ユーザー ID とパス

ワードに割り当てられる値だけが異なるこ とに注意して ください。

DbProviderFactory Factory = DbProviderFactories.GetFactory("Pervasive.Data.SqlClient");

DbConnection conn1 = Factory.CreateConnection();conn1.ConnectionString =

"ServerDSN=DEMODATA;UserID=test;Password=test;Host=localhost";

conn1.Open();// プール A が作成されます

3-2

Page 65: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続プールの使用

DbConnection conn2 = Factory.CreateConnection();conn2.ConnectionString =

"ServerDSN=DEMODATA2;UserID=lucy;Password=quake;Host=localhost";

conn2.Open();// 接続文字列が異なるため、 プール B が作成されますDbConnection conn3 = Factory.CreateConnection();conn3.ConnectionString =

"ServerDSN=DEMODATA;UserID=test;Password=test;Host=localhost";

conn3.Open();// conn3 は conn1 と一緒にプール A に入り ます

プールへの接続の追加

接続プールは、 アプリ ケーシ ョ ンが使用する一意な接続文字列を作成して

いる 中に作成されます。 プールが作成される と、 Min Pool Size 接続文字

列オプシ ョ ンによって設定される、 プールの必要 小限のサイズ条件を満

たすだけの接続がプールに格納されます。 アプ リ ケーシ ョ ンが Min PoolSize を超える接続を使用する場合、データ プロバイダーは Max Pool Size 接続文字列オプシ ョ ン (プール内の 大接続数を設定します) の値になるま

で、 プールに接続を追加割り当てします。

Connection.Open(...) メ ソ ッ ドを呼び出すアプリ ケーシ ョ ンで Connection オブジェク トが要求されたと き、 プールから使用可能な接続が入手できる場

合には、 接続はプールから取得されます。 使用可能な接続とは、 現在ほか

の有効な Connection オブジェク トによって使用されておらず、合致する分

散ト ランザクシ ョ ン コンテキス ト を持ち (妥当な場合)、 サーバーへの有

効な リ ンクを持っている接続と定義付けられます。

プールの 大サイズに達し、 かつ入手できる使用可能な接続がない場合に

は、要求はデータ プロバイダーのキューに入れられます。データ プロバイ

ダーは使用可能な接続をアプ リ ケーシ ョ ンへ返すために、 ConnectionTimeout 接続文字列オプシ ョ ンの値が示す時間だけ待ちます。 この時間が

経過しても接続が入手可能にならなかった場合は、データ プロバイダーは

アプリ ケーシ ョ ンにエラーを返します。

重要:PsqlConnection オブジェク トの Close() または Dispose() メ ソ ッ ドを使

用して接続を閉じる と、 その接続はプールに追加されるか戻されます。 ア

プ リ ケーシ ョ ンで Close() メ ソ ッ ド を使用した場合、 接続文字列の設定は

Open() メ ソ ッ ドを呼び出す前の状態にとどま り ます。 Dispose メ ソ ッ ドを

使用して接続を閉じた場合には、 接続文字列の設定は消去され、 デフォル

トの設定に戻されます。

プールからの接続の削除

接続プールから接続が削除されるのは、Load Balance Timeout 接続文字列オ

プシ ョ ンで決められた存続時間が過ぎた場合や、 接続文字列の一致する新

3-3

Page 66: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

しい接続がアプ リ ケーシ ョ ンによって開始された (PsqlConnection.Open()が呼び出された) 場合です。

接続プールの接続をアプリ ケーシ ョ ンに返す前に、プール マネージャーは

その接続がサーバー側で閉じられているかど うかを確認します。 接続が有

効でなくなっていれば、プール マネージャーはその接続を破棄し、プール

から別の入手可能で有効な接続を返します。

.NET Framework Version 2.0 で導入された Connection オブジェク トの ClearPool および Clear All Pools メ ソ ッ ドは、接続プールを空にします。ClearPoolは特定の接続に関連付けられている接続プールを空にします。 対照的に、

ClearAllPools はデータ プロバイダーによって使用されるすべての接続

プールを空にします。 メ ソ ッ ドを呼び出すと きに使用中だった接続は、 閉

じる と きに破棄されます。

メモ :デフォルトで、 無効な接続を破棄するこ とによって、 接続数が MinPool Size 属性で指定した数よ り少な く なった場合、 新しい接続はアプ リ

ケーシ ョ ンで必要になるまで作成されません。

プール内の停止接続の処理

アイ ドル状態の接続が、 そのデータベースへの物理的接続を失った場合に

は何が起こるのでし ょ うか。 たとえば、データベース サーバーが再起動さ

れたり、 ネッ ト ワークが一時的に中断される と します。 プール内の既存の

Connection オブジェ ク ト を使って接続しよ う とするアプ リ ケーシ ョ ンは、

データベースへの物理的接続が失われているため、 エラーを受け取る可能

性があ り ます。

Pervasive PSQL データ プロバイダーはこの状況をユーザーに意識させない

で処理します。 Connection.Open() では、 データ プロバイダーは単に接続

プールから接続を返すだけなので、 アプ リ ケーシ ョ ンはこのと き何のエ

ラーも受け取り ません。 SQL ステート メン ト を実行するために Connectionオブジェク トが初めて使用されたと き (たとえば、Command オブジェク ト

の Execute メ ソ ッ ドを介して)、データ プロバイダーはサーバーへの物理的

接続が失われている こ と を検出し、 SQL ステー ト メ ン ト を実行する前に

サーバーへの再接続を試みます。データ プロバイダーがサーバーへ再接続

できた場合、アプリ ケーシ ョ ンには SQL の実行結果が返され、エラーは何

も返されません。データ プロバイダーはこのシームレスな再接続を試みる

際、接続フェイルオーバー オプシ ョ ンが有効になっていればそれを利用し

ます。プライマ リ サーバーが使用できないと きはバッ クアップ サーバーへ

接続するよ うデータ プロバイダーを構成する方法については、 「接続フェ

イルオーバーの使用」 (3-8 ページ) を参照してください。

メモ :データ プロバイダーは、SQL ステート メン トの実行時にデータベー

ス サーバーへの再接続を試みるこ とができるため、ステート メン トが実行

される と きに接続エラーをアプリ ケーシ ョ ンへ返すこ とができます。 デー

タ プロバイダーがサーバーに再接続できない (たとえば、サーバーがまだ

ダウンしている) 場合、 実行メ ソ ッ ドは再接続の試行が失敗したこ と と、

その接続が失敗した理由の詳細を知らせるエラーをスローします。

3-4

Page 67: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続プールの使用

この接続プール内の停止接続を処理する技術には、接続プール メカニズム

を超越して 高のパフォーマンスを得られる という効果があ り ます。 一部

のデータ プロバイダーは、 接続がアイ ドル状態である間、 ダ ミーの SQLステート メン ト を使って定期的にサーバーに ping を実行します。その他の

データ プロバイダーは、アプリ ケーシ ョ ンから接続プール内の接続の使用

を要求されたと きにサーバーに ping を実行します。これらの手法はいずれ

もデータベース サーバーへの往復を追加するため、結局のと ころ、 アプリ

ケーシ ョ ンの通常の操作が発生している間ずっと、 アプリ ケーシ ョ ンの速

度が落ちます。

接続プールのパフォーマンスの追跡

PSQL データ プロバイダーは、 このデータ プロバイダーを使用するアプリ

ケーシ ョ ンの調整およびデバッグが行える PerfMon カウンターのセッ ト を

インス トールします。 PerfMon カウンターの詳細については、 「PerfMon のサポート 」 (3-23 ページ) を参照して ください。

3-5

Page 68: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

ステート メン ト キャッシングの使用 ステート メン ト キャ ッシュは、プ リペアド ステート メン トのグループまた

は Command オブジェク トのインスタンスで、 アプ リ ケーシ ョ ンによって

再使用が可能です。 ステート メ ン ト キャ ッシュを使用する とアプ リ ケー

シ ョ ンのパフォーマンスを向上させるこ とができます。 これは、 プリペア

ド ステート メン トの動作が、そのステート メン トがアプリ ケーシ ョ ンの存

続期間中に何度再使用された と しても、 1 度だけ実行されるためです。

キャ ッシュ内のステート メン トの有効性を分析するこ とができます(「接続

統計情報によるパフォーマンスの分析」 (3-24 ページ) を参照して くださ

い)。

ステート メン ト キャ ッシュは物理接続に属します。実行された後、プリペ

アド ステート メン トはステート メン ト キャ ッシュに置かれ、接続が閉じら

れるまで保持されます。

ステート メン ト キャ ッシングは複数のデータ ソースをまたいで使用でき、

ADO.NET Entity Framework および Data Access Application Blocks を使 う

Microsoft Enterprise Libraries のよ うな抽象化技術の下で使用できます。

ステート メン ト キャッシングの有効化

デフ ォル ト で、 ステー ト メ ン ト キャ ッ シングは無効になっています。

Pervasive PSQL 3.1 データ プロバイダーを使用する既存のアプリ ケーシ ョ

ンで、 アプ リ ケーシ ョ ン コード をまった く変更せず、 ステー ト メ ン ト

キャ ッシングを有効にするには、Statement Cache Mode 接続文字列オプシ ョ

ンに Auto を設定します。この場合は、すべてのステート メン ト をステート

メン ト キャ ッシュに置く こ とができます。

キャ ッシュする と明示的にマークしたステート メン トのみをステート メン

ト キャ ッシュに置く よ うに、ステート メン ト キャ ッシングを設定するこ と

もできます。 これを行うには、 そのステート メ ン トの Command オブジェ

ク ト の StatementCacheBehavior プロパテ ィ に Cache を設定し、 StatementCache Mode 接続文字列オプシ ョ ンに ExplicitOnly を設定します。

表 3-1 はステー ト メ ン ト キャ ッシング設定とその影響を要約したもので

す。

3-6

Page 69: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ステート メン ト キャッシングの使用

ステート メン ト キャッシング手法の選択

ステート メン ト キャ ッシングを使用する と、アプリ ケーシ ョ ンの存続期間

中にプ リペアド ステート メ ン ト を複数回再使用するアプ リ ケーシ ョ ンは

パフォーマンスが向上します。ステート メン ト キャ ッシュのサイズは MaxStatement Cache Size 接続文字列オプシ ョ ンに設定します。 ステート メン ト

キャ ッシュのスペースが限られている場合は、 1 度しか使用されないプリ

ペアド ステート メン ト をキャ ッシュしないでください。

アプ リ ケーシ ョ ンが使用する全プ リペアド ステート メ ン ト をキャ ッシュ

すれば、 高のパフォーマンスを提供できるよ うに思われます。 しかし、

この手法では、接続プールを使ってステート メン ト キャ ッシングを実装し

た場合、データベースのメモ リに負担をかける結果になり ます。この場合、

プールされた接続はそれぞれステー ト メ ン ト キャ ッシュを持ち、 アプ リ

ケーシ ョ ンが使用する全プ リペアド ステート メ ン ト を含むこ とにな り ま

す。 これらのプールされたプ リペアド ステート メ ン トは、 すべてデータ

ベースのメモ リにも保持されます。

表 3-1 ステート メン ト キャッシュ動作の要約

設定

動作 StatementCacheBehavior Statement Cache Mode

ステー ト メ ン ト を明示的にステー ト メ ン ト

キャ ッシュに追加します。

Cache ExplicitOnly (デフォル ト )

ステート メ ン ト をステート メ ン ト キャ ッシュ

に追加します。 必要に応じ、 ステー ト メ ン ト

は、Cache とマーク されたステート メン ト用の

場所を空けるために削除されます。

Implicit (デフォルト ) Auto

ステート メ ン ト をステート メ ン ト キャ ッシュ

から明確に除外します。

DoNotCache Auto または ExplicitOnly

3-7

Page 70: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

接続フェイルオーバーの使用 接続フェイルオーバーによって、 ハード ウェア障害やト ラフ ィ ッ クの過負

荷などが原因でプライマ リ データベース サーバーが利用できな くなった

場合でも、アプリ ケーシ ョ ンは代替またはバッ クアップ データベース サー

バーに接続するこ とができます。 接続フェイルオーバーは、 重要な .NETアプリ ケーシ ョ ンが依存するデータを常に使用可能な状態にします。

プラ イマ リ サーバーが接続を受け入れない場合に接続を試行する代替

データベースのリ ス ト を設定するこ とで、 Pervasive PSQL データ プロバイ

ダーにおける接続フェイルオーバー機能をカスタマイズするこ とができま

す。 接続が成功するまで、 あるいはすべての代替データベースへの接続を

指定した回数試行するまで、 接続の試行が続けられます。

たとえば、 図 3-1 は複数のデータベース サーバーを持つ環境を示していま

す。 データベース サーバー A はプライマ リ データベース サーバー、 デー

タベース サーバー B は 1 番目の代替サーバー、 そしてデータベース サー

バー C は 2 番目の代替サーバーと して設計されています。

図 3-1 接続フェイルオーバー

まず、 アプ リ ケーシ ョ ンはプラ イマ リ データベースであるデータベース

サーバー A (1) に接続を試みます。 接続フェイルオーバー機能を有効に

する と、アプリ ケーシ ョ ンがデータベース サーバー A に接続できなかった

場合はデータベース サーバー B (2) に接続を試みます。 その接続の試行

も失敗した場合、 アプ リ ケーシ ョ ンはデータベース サーバー C (3) に接

続を試みます。

このシナリオで、 低でもどれか 1 つのサーバーへは接続できる と思われ

ますが、 接続にすべて失敗した場合、 データ プロバイダーはプラ イマ リ

サーバーと各代替データベースに対し指定の回数分だけ接続を再試行させ

るこ とができます。 接続の再試行 (Connection Retry Count) 機能を使用

3-8

Page 71: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続フェイルオーバーの使用

すれば、試行回数を指定するこ とができます。接続の試行間隔(ConnectionRetry Delay) 機能を使用すれば、接続の試行間隔を秒数で指定するこ と も

できます。接続の再試行の詳細については、「接続の再試行機能の使用」 (3-11 ページ) を参照してください。

Pervasive PSQL データ プロバイダーは、 現在対象と している代替サーバー

との通信が確立できなかった場合にのみ、 次の代替サーバーへフェ イル

オーバーします。データ プロバイダーがデータベースとの通信に成功した

が、 ログイン情報が正し くないなどの原因でそのデータベースが接続要求

を拒否した場合、データ プロバイダーは例外を生成し、代替サーバー リ ス

ト内の次のデータベースへは接続を試行しません。これは、各代替サーバー

がプライマ リ サーバーのミ ラーであ り、認証パラ メーターや関連情報がす

べて同じであるこ とが前提です。

接続フェイルオーバーでは新しい接続のみを保護し、 ト ランザクシ ョ ンや

クエ リの状態は保持しません。ご使用のデータ プロバイダーにおける接続

フェイルオーバーの設定の詳細については、 「接続フェイルオーバーの設

定」 (3-12 ページ) を参照して ください。

3-9

Page 72: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

クライアン ト ロード バランスの使用

クライアン ト ロード バランスは接続フェ イルオーバーと共に動作して

ユーザーの環境で新しい接続を分散するこ とで、 接続要求に対応できない

サーバーがないよ うにします。接続フェイルオーバーと ク ライアン ト ロー

ド バランスがどちら も有効な場合、 プラ イマ リ データベースおよび代替

データベースへ接続が試行される順序はランダムです。

たとえば、図 3-2 に示すよ うにク ライアン ト ロード バランスが有効になっ

ている と します。

図 3-2 クライアン ト ロード バランスの例

まず、 データベース サーバー B への接続が試行されます (1) 。 それから

データベース サーバー C への接続が試行され (2) 、 続いてデータベース

サーバー A への接続が試行されます (3)。 その後、 これと同じ順序で接続

が試行されます。対照的に、このシナリオでク ライアン ト ロード バランス

が無効だった場合、 各データベースへの接続の試行はシーケンシャルな順

序で行われます。つま り、 初にプライマ リ サーバーに試行したら、 その

後は代替サーバー リ ス ト内のエン ト リ順に基づいて代替サーバーに試行

します。

ご使用のデータ プロバイダーにおける ク ラ イアン ト と ロード バランスの

設定の詳細については、 「接続フェイルオーバーの設定」 (3-12 ページ) を

参照してください。

3-10

Page 73: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の再試行機能の使用

接続の再試行機能の使用 接続の再試行では、データ プロバイダーが 初の接続の試行に失敗した後

に、 プライマ リ サーバーおよび (設定している場合) 代替サーバーへ接続

を試行する回数を定義します。 接続の再試行は、 システム復旧の有力な方

策とな り ます。 たとえば、 停電などの電力障害によ り ク ライアン ト とサー

バーの両方が動作しな くなってしま うシナリオを考えてみまし ょ う。 電力

が復旧してすべてのコンピューターが再起動される際、 サーバーが自身の

スター ト アップ ルーチンを完了する前にク ラ イアン ト がそのサーバーに

接続しよ う とするかもしれません。 接続の再試行が有効な場合、 ク ライア

ン ト アプリ ケーシ ョ ンは、サーバー側で接続が正し く受け入れられるよ う

になるまで接続を何度も試行し続けるこ とができます。

接続の再試行は、 サーバーが 1 つしかない環境でも使用できますが、 複数

サーバーを持つ環境における接続フェイルオーバー シナリ オの補完機能

と しても使用できます。

接続文字列オプシ ョ ンを使用する と、データ プロバイダーが接続を試行す

る回数や接続の試行間隔を秒単位で指定できます。 接続の再試行に対する

設定の詳細については、 「接続フェイルオーバーの設定」 (3-12 ページ) を

参照して ください。

3-11

Page 74: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

接続フェイルオーバーの設定 接続フェイルオーバーによって、 ハード ウェア障害やト ラフ ィ ッ クの過負

荷などが原因でプライマ リ データベース サーバーが利用できな くなった

場合でも、アプリ ケーシ ョ ンは代替またはバッ クアップ データベース サー

バーに接続するこ とができます。

接続フェイルオーバーに関する詳細については、「接続フェイルオーバーの

使用」 (3-8 ページ) を参照して ください。

接続フェイルオーバーを別のサーバーに構成するには、 プラ イマ リ サー

バーが接続を受け入れない場合に接続を試行する代替データベース サー

バーのリ ス ト を指定する必要があ り ます。 これを行うには Alternate Servers接続文字列オプシ ョ ンを使用します。 接続の確立に成功するまで、 あるい

はリ ス トにエン ト リ されるすべての代替データベースへの接続を 1 回ずつ

試行 (デフォルト ) するまで、 接続の試行が続けられます。

任意で、 以下の接続フェイルオーバー機能も指定するこ とができます。

データ プロバイダーが 初に接続を試行した後に、 プライマ リ サー

バーおよび代替サーバーへ接続を試行する回数。デフォルトでは、デー

タ プロバイダーは接続を再試行しません。 この機能を設定するには

Connection Retry Count 接続文字列オプシ ョ ンを使用します。

プライマ リ サーバーと代替サーバーへの接続の試行間隔 (秒数)。 デ

フォルトの間隔は 3 秒です。この機能を設定するには Connection RetryDelay 接続文字列オプシ ョ ンを使用します。

データ プロバイダーがプライマリ サーバーおよび代替サーバーへの

接続を試行する際、 ロード バランスを使用するかど うか。 ロード バラ

ンスが有効な場合、 データ プロバイダーは接続の試行順序のパターン

をシーケンシャルではなく ランダムにします。 デフォルトでは、 ロー

ド バランスは使用されません。この機能を設定するには Load Balancing接続文字列オプシ ョ ンを使用します。

接続文字列を使用して、データ プロバイダーに対し接続フェイルオーバー

を使用するよ う指示します。 「接続文字列の使用」 (2-3 ページ) を参照し

てください。

次の C# コードには、 Pervasive PSQL データ プロバイダーで接続フェイル

オーバー機能と、その接続オプシ ョ ンであるロード バランス、接続の再試

行、 および接続の再試行の間隔をすべて使用するよ うに設定する接続文字

列が含まれています。

Conn = new PsqlConnection Conn = new PsqlConnection();Conn = new PsqlConnection("Host=myServer; User ID=test; Password=secret; ServerDSN=SERVERDEMO; Alternate Servers="Host=AcctServer, Host=AcctServer2"; Connection Retry Count=4;

3-12

Page 75: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続フェイルオーバーの設定

Connection Retry Delay=5; Load Balancing=true; Connection Timeout=60")

具体的に説明する と、この接続文字列の設定は Pervasive PSQL データ プロ

バイダーで、 2 つの代替サーバーを接続フェイルオーバー サーバーと して

使用するこ と、 初の接続の試行に失敗した場合はさ らに 4 回接続を再試

行するこ と、試行間隔は 5 秒間と し、プライマ リ サーバーと代替サーバー

への接続の試行順序はランダムとするこ とを示しています。 接続の試行は

1 回当り 60 秒間持続し、試行する順序は 初に行ったランダム順序がその

まま 後まで使用されます。

3-13

Page 76: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

セキュリテ ィの設定 Pervasive PSQL データ プロバイダーは、 接続での暗号化されたネッ ト ワー

ク通信 (ワイヤ暗号化と も呼ばれます) をサポート します (暗号化設定の

詳細については、「接続文字列の使用」 (2-3 ページ) を参照して ください)。

デフォルトでは、 データ プロバイダーはサーバーの設定を反映します。

データ プロバイダーで許可される暗号化のレベルは、使用される暗号化モ

ジュールによって異なり ます。 デフォルトの暗号化モジュールでは、 デー

タ プロバイダーは 40 ビッ ト 、56 ビッ ト 、および 128 ビッ ト暗号化をサポー

ト しています。

データ暗号化はパフォーマンスに悪影響を与えるこ とがあ り ます。 詳細に

ついては、「アプ リ ケーシ ョ ンのパフォーマンスに関する考慮点」(2-13ペー

ジ) を参照して ください。

暗号化に加え、 Pervasive PSQL データ プロバイダーは .NET Framework で定義されるセキュ リティ権限を通してセキュ リティを実装します。

コードへのアクセス権限

Pervasive PSQL データ プロバイ ダーを ロー ド し て実行するためには

FullTrust 権限を設定する必要があ り ます。 これは、 System.Data のク ラスが

FullTrust 権限を継承しなければならないためです。 これらのク ラスは、 す

べての ADO.NET データ プロバイダーで DataAdapter を実装するために必

要です。

セキュリテ ィの属性

Pervasive PSQL データ プロバイダーには AllowPartiallyTrustedCallers 属性

がマーク されています。

3-14

Page 77: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Bulk Load の使用

Pervasive Bulk Load の使用 Pervasive Bulk Load は、 すべてのバルク ロードの要求に対して 1 か所です

べてを行えるワンス ト ップ手法を提供します。 これは、 Pervasive PSQL およびこのバルク ロード機能をサポートするすべての DataDirect Connect 製品にバルク ロード操作を行う上で単純かつ一貫性があ り ます。つま り、標

準ベースの API バルク インターフェイスを使用してバルク ロード アプリ

ケーシ ョ ンを記述し、 それから、 その仕事を実行するためにすぐにデータ

ベースのデータ プロバイダーまたはド ラ イバーをプラグインする こ とが

できます。

データを Pervasive、 Oracle、 DB2、 および Sybase にロードする必要がある

と します。これまでは、バルク ロード操作のためにデータベース ベンダー

製のツールを使用するか、 独自のツールを作成する必要があ り ました。 今

では、 Pervasive Bulk Load に組み込まれた相互運用性によ り、 作業は非常

に簡単になり ました。 も う 1 つの利点は、 Pervasive Bulk Load がマネージ

コードのみを使用するために別のベンダー製の基盤となるユーティ リ ティ

やライブラ リ を必要と しないこ とです。

異なるデータ ス ト ア間でのバルク ロード操作は、クエ リの結果をカンマ区

切り値 (CSV) 形式ファイルであるバルク ロード データ ファ イルに残す

こ とによって完成されます。このファイルは Pervasive PSQL データ プロバ

イ ダーおよびバルク ロー ド をサポー ト する DataDirect Connect forADO.NET データ プロバイダー間で使用できます。 さ らに、 バルク ロード

データ ファ イルは、 DataDirect Connect 製品やバルク ロード機能をサポー

トするデータ プロバイダーで使用できます。たとえば、Pervasive PSQL デー

タ プロバイダーで生成された CSV フ ァ イルは、 バルク ロード対応の

DataDirect Connect for ODBC driver で使用できます。

Pervasive Bulk Load で使用するシナリオ

Pervasive PSQL データ プロバイダーで Pervasive Bulk Load を 使用する 2 つの方法を次に示します。

Pervasive PSQL の新しいバージ ョ ンにアップグレード した後、 図 3-3に示すよ うに、 Pervasive PSQL v9 データ ソースから inventory データ

を Pervasive PSQL v10.10 データ ソースにコピーします。

3-15

Page 78: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

図 3-3 2 つのデータ ソース間での Pervasive Bulk Load の使用

Oracle データベースからデータをエク スポー ト した後、 その結果を

Pervasive PSQL データベースに移行します。

図 3-4 は、 データを ADO.NET データベース サーバーにコピーする

ODBC 環境を示しています。

図 3-4 ODBC から ADO.NET へのデータのコピー

この図で、ODBC アプリ ケーシ ョ ンは CSV ファ イルへデータをエクスポー

トするコードを含み、 ADO.NET アプリ ケーシ ョ ンは CSV ファ イルを指定

して開く コード を含みます。 Pervasive PSQL データ プロバイダーおよび

DataDirect ODBC ド ラ イバーは一貫した形式を使用するため、 これらの標

準インターフェイスを介して相互運用性がサポート されます。

Pervasive Common AssemblyADO.NET 用の Pervasive Bulk Load の実装は、 事実上の業界標準である

Microsoft SqlBulkCopy ク ラスの定義を使用し、 強力な組み込み機能を追加

してバルク操作の信頼性をよ り高めるため、 柔軟性に加えて相互運用性も

高めます。

3-16

Page 79: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Bulk Load の使用

Pervasive PSQL データ プロバイダーには、 Pervasive Bulk Load をサポート

するためのプロバイダー固有のク ラ スが含まれます。 詳細については、

「データ プロバイダー固有のクラス」 (6-3 ページ) (6-3 ページ) を参照し

て く ださい。 共通プログ ラ ミ ング モデルを使用する場合は、 PervasiveCommon Assembly のク ラスを使用できます (「Pervasive Common Assemblyク ラス」 (6-20 ページ) を参照して ください)。

Pervasive.Data.Common アセンブリには、バルク データ形式間の機能を提供

する CsvDataReader および CsvDataWriter などの Pervasive Bulk Load に対応

したク ラスが含まれています。

共通アセンブ リは、 共通プログラ ミ ング モデルを使用するバルク ロード

ク ラスのサポート機能も拡張します。 つま り、 SqlBulkCopy パターンが新

しい DbBulkCopy 階層で使用できるよ うにな り ました。

データ プロバイダーの将来のバージ ョ ンには、共通プログラ ミ ング モデル

技術を拡張するほかの機能が含められます。Pervasive.Data.Common アセン

ブリが対応しているク ラスの詳細については、「Pervasive Common Assemblyク ラス」 (6-20 ページ) を参照して ください。

バルク ロード データ ファイル

異なるデータ ス ト ア間でのクエ リの結果は、 カンマ区切り値 (CSV) 形式

ファイルであるバルク ロード データ ファ イルに保存されます。BulkFile プロパティで定義されるファ イル名は、バルク データの読み書きに使用され

ます。 ファ イル名に拡張子が含まれない場合は、 ".CSV" と見なされます。

Pervasive PSQL ソース テーブルの GBMAXTABLE には 4 つの列が含まれて

います。 次の C# コード例は CsvDataWriter が作成する GBMAXTABLE.csvおよび GBMAXTABLE.xml を書き出します。

メモ この例では DbDataReader ク ラスを使用します。

cmd.CommandText = "SELECT * FROM GBMAXTABLE ORDER BY INTEGERCOL";DbDataReader reader = cmd.ExecuteReader();CsvDataWriter csvWriter = new CsvDataWriter();csvWriter.WriteToFile("\\NC1\net\PSQL\GBMAXTABLE\

GBMAXTABLE.csv", reader);

バルク ロード データ ファ イルの GBMAXTABLE.csv には、 次のよ うなク

エ リの結果が含まれます。

1,0x6263,"bc","bc"2,0x636465,"cde","cde"3,0x64656667,"defg","defg"4,0x6566676869,"efghi","efghi"

3-17

Page 80: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

5,0x666768696a6b,"fghijk","fghijk"6,0x6768696a6b6c6d,"ghijklm","ghijklm"7,0x68696a6b6c6d6e6f,"hijklmno","hijklmno"8,0x696a6b6c6d6e6f7071,"ijklmnopq","ijklmnopq"9,0x6a6b6c6d6e6f70717273,"jklmnopqrs","jklmnopqrs"10,0x6b,"k","k"

GBMAXTABLE.xml ファ イルは、 このバルク ロード データ ファ イルの形

式を指定するバルク ロードの設定ファ イルです。 これについて次のセク

シ ョ ンで説明します。

バルク ロード構成ファイル

バルク ロード構成ファ イルは、 CsvDataWriter.WriteToFile メ ソ ッ ドが呼び

出されたと きに作成されます (詳細については 「CsvDataWriter」 (6-22 ペー

ジ) を参照して ください)。

バルク ロード構成ファイルは、 バルク ロード データ ファ イル内の列の名

前とデータ型を定義します。 これらの名前とデータ型は、 データのエクス

ポート元のテーブルや結果セッ ト と同様に定義します。

バルク データ ファ イルが作成できなかったり XML 構成ファイルに記述さ

れているスキーマに準拠していない場合は、例外がスローされます。 XMLスキーマ定義の使用法については、「バルク データ構成ファイル用の XMLスキーマ定義」 (11-3 ページ) を参照して ください。

構成ファイルを持たないバルク ロード データ ファ イルが読み込まれた場

合は、 以下のデフォルトが想定されます。

すべてのデータは文字データ と して読み取られます。 カンマの間にあ

る値は、 それぞれ文字データ と して読み取られます。

デフォルトの文字セッ トは、 バルク ロード CSV ファ イルが現在読み

取られているプラ ッ ト フォームの文字セッ ト です。 詳細については、

「文字セッ トの変換」 (3-19 ページ) を参照して ください。

バルク ロード設定ファ イルは、 バルク データ ファ イルについて記述され

ており、基となる XML スキーマによってサポート されます。 XML スキー

マについては次で定義されています。

http://www.datadirect.com/ns/bulk/BulkData.xsd

前のセクシ ョ ンで示したバルク ロード データ ファ イルは、 バルク ロード

構成ファイルの GBMAXTABLE.xml で定義されています。 このファ イルに

は、 テーブル内の 4 つの列のそれぞれについてデータ型とその他の情報が

記述されています。

<?xml version="1.0" encoding="utf-8"?><table codepage="UTF-16LE"

xsi:noNamespaceSchemaLocation="http://www.datadirect.com/ns/bulk/BulkData.xsd"

3-18

Page 81: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Bulk Load の使用

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<row><column datatype="DECIMAL" precision="38" scale="0" nullable="false">INTEGERCOL</column>

<column datatype="VARBINARY" length="10" nullable="true">VARBINCOL</column>

<column datatype="VARCHAR" length="10" sourcecodepage="Windows-1252" externalfilecodepage="Windows-1252" nullable="true">VCHARCOL</column>

<column datatype="VARCHAR" length="10" sourcecodepage="Windows-1252" externalfilecodepage="Windows-1252" nullable="true">UNIVCHARCOL</column>

</row></table>

バルク ロード プロ ト コルの決定

バルク操作は、専用のバルク プロ ト コルを使用して実行できます。つま り、

データ プロバイダーは基となるデータベースのプロ ト コルを使用します。

場合によっては、 専用のバルク プロ ト コルが使用できない場合があ り ま

す。 たとえば、 ロード しよ う とするデータが、 専用のバルク プロ ト コルが

対応していないデータ型の場合です。その場合、データ プロバイダーは配

列バインドなどの非バルク手法を自動的に使用してバルク操作を実行し、

適なアプリ ケーシ ョ ン稼働時間を継続します。

文字セッ トの変換

時には、 異なる文字セッ ト を使用するデータベース間でデータをバルク

ロードする必要があ り ます。

Pervasive PSQL データ プロバイダーでは、デフォルトのソース文字データ、

つま り CsvDataReader からの出力および CsvDataWriter への入力は Unicode(UTF-16) です。 ソース文字データは、常に CSV ファ イルのコード ページ

に変換されます。しきい値を超えてデータが外部のオーバーフロー ファ イ

ルに書き出された場合、 ソース文字データはバルク構成 XML スキーマで

定義されている externalfilecodepage 属性で指定されたコード ページに変換

されます(「バルク データ構成ファイル用の XML スキーマ定義」(11-3 ペー

ジ) を参照して ください)。構成ファイルで externalfilecodepage の値が定義

されていない場合は CSV ファ イルのコード ページが使用されます。

不要な変換処理を行わないためには、CSV および外部ファイルの文字デー

タを Unicode (UTF-16) にするのが 良の方法です。 以下のいずれかの状

況では、アプリ ケーシ ョ ンにデータを別のコード ページで保存させたい場

合があ り ます。

3-19

Page 82: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

データが ADO.NET で書き出され ODBC で読み取られる。 この場合、

読み取り (および関連する文字変換) は ODBC によって行われます。

文字データが既に正しいコード ページである場合、文字変換は不要で

す。

空白が考慮の対象となる。 文字データがよ り コンパク トに表されるか

ど うかは、 コード ページによって異なり ます。 たとえば、 ASCII デー

タは 1 文字が 1 バイ トで、 UTF-16 は 1 文字が 2 バイ トです。

構成ファイルでは、任意で文字型の列ごとに 2 番目のコード ページを定義

するこ とができます。文字データが CharacterThreshold プロパティで定義し

た値を超え、別個のファイルに格納される場合(「外部オーバーフロー ファ

イル」 (3-20 ページ) を参照して ください)、 この値はそのファイルのコー

ド ページを定義します。

この値を省略した り ソース列で定義されたコード ページが不明の場合は、

CSV ファ イルに定義されたコード ページが使用されます。

外部オーバーフロー ファイル

CsvDataWriter オブジェク トの BinaryThreshold または CharacterThreshold プロパティの値がしきい値を超えた場合、 別のファイルが生成されてバイナ

リ または文字データを格納します。 これらのオーバーフロー ファ イルは、

バルク データ ファ イルと同じディ レク ト リにあ り ます。

オーバーフロー ファ イルに文字データが含まれる場合、 ファ イルの文字

セッ トは CSV バルク構成ファイルで指定された文字セッ トが決定します。

ファ イル名には CSV ファ イル名と拡張子 ".lob" が含まれます (たとえば、

CSV_filename_nnnnnn.lob)。 これらのファイルは CSV ファ イルと同じ場所

に存在します。 _000001.lob から開始して 1 ずつ大き くな り ます。

表 3-2 文字セッ ト変換の例

ソース文字列のコード ページ バルク CSV ファイル定義 外部ファイルへの書き出しに使用される

コード ページ

不明 UTF-16 UTF-16

US ANSI UTF-16 US ANSI。 各文字は 1 バイ ト を占めるの

みであるため、必要な領域に関しては

も効率的なコード ページです。

EBCDIC などの非対応コード

ページ

UTF-16LE。この値は CsvCharacterSetNameを使用して設定できます。

レベル調整コード ページ

3-20

Page 83: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Bulk Load の使用

バルク コピー操作と ト ランザクシ ョ ン

デフォルトで、バルク コピー操作はト ランザクシ ョ ンの一部ではなく分離

した操作と して実行されます。 つま り、 エラーが発生しても操作をロール

バッ クするチャンスはないという こ とです。

Pervasive PSQL では、 既存のト ランザクシ ョ ン内でバルク コピー操作を行

う こ とができます。 複数の手順で存在する ト ランザクシ ョ ンの一部と して

バルク コピー操作を定義するこ とができます。 この手法を使う と、複数の

バルク コピー操作を同じ ト ランザクシ ョ ン内で実行し、 ト ランザクシ ョ ン

全体をコ ミ ッ ト またはロール バッ クするこ とができます。

エラー発生時にバルク コピー操作のすべてまたは一部をロール バッ クす

る方法については、Microsoft のオンライン ヘルプで " ト ランザクシ ョ ンと

バルク コピー操作 (ADO.NET) " を参照して ください。

3-21

Page 84: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

診断機能の使用 .NET Framework では、プログラムを再コンパイルするこ とな くエンド ユー

ザーが問題を特定するのに役立つ Trace ク ラスを提供します。

Pervasive PSQL データ プロバイダーはさらに以下の診断機能を実現します。

メ ソ ッ ド呼び出しの ト レース機能

アプリ ケーシ ョ ンの接続情報を監視できるフッ クの実行

メ ソ ッ ド呼び出しのト レース

ト レース機能は、 環境変数または PsqlTrace ク ラスを使って有効にできま

す。データ プロバイダーは、パブリ ッ ク メ ソ ッ ドの全呼び出しの入力引数

と、そのメ ソ ッ ドの出力および戻り値 (ユーザーが呼び出したものすべて)

を ト レースします。 各呼び出しには、 メ ソ ッ ドの開始 (ENTER) と終了

(EXIT) のエン ト リがあ り ます。

デバッグ中、 機密事項のデータがプライベート変数または内部変数と して

格納され、 アクセスが同じアセンブリに制限されたと しても、 そのデータ

を読み取るこ とができます。セキュ リ ティを維持するために、 ト レース ログはパスワードを 5 つのアスタ リ スク (*****) で示します。

環境変数の使用

環境変数を使用して ト レースを有効にする という こ とは、 アプリ ケーシ ョ

ンを変更しな くてもよいという こ とです。 ただし、 環境変数の値を変更し

たら、 その新しい値を有効にするにはアプリ ケーシ ョ ンの再起動が必要に

なり ます。

ト レースを有効にして制御するには、 次の環境変数を設定します。

次の環境変数を有効にして ト レースを制御するよ う設定します。

PVSW_Trace_File ト レース ファ イルのパス と名前を指定します。 デ

フォルトは \PVSW_NETTrace.txtlse です。

PVSW_Recreate_Trace 1 に設定する と、 アプリ ケーシ ョ ンを開始するたび

に ト レース ファ イルが再作成されます。 0 (デフォ

ル ト ) に設定する と、 ト レース ファ イルは追加さ

れます。環境変数の値を変更した場合は、その新し

い値を有効にするためにアプ リ ケーシ ョ ンを再起

動する必要があ り ます。

PVSW_Enable_Trace 1 以上に設定する と、 ト レースが有効にな り ます。

0 (デフォル ト ) に設定する と、 ト レースは無効に

なり ます。

3-22

Page 85: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

診断機能の使用

メモ : SettingEnableTrace = 1 で ト レース処理が開始されます。 したがって、

EnableTrace を設定する前に ト レース ファ イル用のプロパティ値を定義し

ておく必要があ り ます。 いったん ト レース処理が開始されたら、 TraceFileおよび RecreateTrace プロパティの値を変更するこ とはできません。

静的メ ソッ ド の使用

ユーザーによっては、 ト レースを有効にするのに、データ プロバイダーの

Trace ク ラスの静的メ ソ ッ ドを使用する方が便利だと思われるかも しれま

せん。 以下の C# コードでは、 .NET Trace オブジェク トの静的メ ソ ッ ドを

使用して、 ト レース ファ イルの名前を MyTrace.txt とする PsqlTrace ク ラス

を作成します。 この値は環境変数で設定した値よ り も優先されます。 これ

以降、 データ プロバイダーへの呼び出しはすべて MyTrace.txt へト レース

されます。

PsqlTrace.TraceFile="C:\\MyTrace.txt";PsqlTrace.RecreateTrace = 1;PsqlTrace.EnableTrace = 1;

ト レースは次のよ うな形式で出力されます。

<Correlation#> <Timestamp> <CurrentThreadName>

<Object Address> <ObjectName.MethodName> ENTER ( または EXIT) Argument #1 :<Argument#1 Value> Argument #2 :<Argument#2 Value> ...

RETURN:<Method ReturnValue> // EXIT のみ

この場合、

Correlation# は重複のない番号で、 これによって、アプリ ケーシ ョ ン内の同

じ メ ソ ッ ド呼び出しの ENTER エン ト リ と EXIT エン ト リ を符合させます。

Value は、個々の関数呼び出しに固有のオブジェク トのハッシュ コードです。

デバッグ中、 機密事項のデータがプライベート変数または内部変数と して

格納され、 アクセスが同じアセンブリに制限されたと しても、 そのデータ

を読み取るこ とができます。セキュ リ ティを維持するために、 ト レース ログはパスワードを 5 つのアスタ リ スク (*****) で示します。

PerfMon のサポート

パフ ォーマンス モニター (PerfMon) や VS パフ ォーマンス モニター

(VSPerfMon) ユーティ リ ティ を使用する と、アプリ ケーシ ョ ンのパラ メー

ターを記録し、 その結果をレポートやグラフにして見る こ とができます。

また、パフォーマンス モニターではアプリ ケーシ ョ ンの CLR (共通言語ラ

ンタイム) 例外の回数や頻度を確認するこ と もできます。 加えて、 使用中

の接続数や接続プール数を分析して、 ネッ ト ワークの負荷を調整するこ と

ができます。

3-23

Page 86: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

Pervasive PSQL データ プロバイダーは、このデータ プロバイダーを使用す

るアプリ ケーシ ョ ンの調整およびデバッグが行える PerfMon カウンターの

セッ ト をインス トールします。 データ プロバイダーのカウンターは、 パ

フォーマンス モニターの [Pervasive PSQL ADO.NET Data Provider] とい う

カテゴ リ名の下に置かれます。

表 3-3 では、 アプ リ ケーシ ョ ンの接続を調整するために使用できる各種

PerfMon カウンターについて説明します。

PerfMon と パフ ォーマン ス カ ウ ン ターの使用法の詳細については、

Microsoft ドキュ メン ト ライブラ リ を参照してください。

接続統計情報によるパフォーマンスの分析

.NET Framework 2.0 は実行時の統計情報が導入され、 情報は各接続を基準

と して収集されます。 Pervasive PSQL データ プロバイダーは、 広範な実行

時統計情報項目に対応しています。 これらの統計情報項目が提供する情報

は、 以下に役立ちます。

アプリ ケーシ ョ ン パフォーマンスの自動分析

アプリ ケーシ ョ ン パフォーマンスの傾向の特定

接続での問題の検出および通知の送信

データ接続での問題修正の優先順位決定

統計情報項目の計測がパフォーマンスに与える影響はわずかです。 良の

結果を得るためには、 ネ ッ ト ワーク分析またはアプ リ ケーシ ョ ンのパ

フォーマンス作用分析時にのみ統計情報の収集を有効にするこ とを考慮し

てください。

表 3-3 PerfMon カウンター

カウンター 説明

Current # of Connection Pools プロセスに関連付けられている現在のプール

数。

Current # of Pooled Connections プロセスに関連付けられているすべてのプー

ルにある現在の接続数。

Current # of Pooled and Non-Pooled Connections

プールされている接続とプールされていない

接続の現在の数。

Peak # of Pooled Connections プロセスの開始後、 すべての接続プールにおい

てカウン ト された 大の接続数。

Total # of Failed Connects プロセスの開始後、 何らかの理由でエラーに

なった接続を開くために試行した合計回数。

Total # of Failed Commands プロセスの開始後、 何らかの理由でエラーに

なったコマンドの実行総数。

3-24

Page 87: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

診断機能の使用

概要

統計情報収集は、 すべての Connection オブジェク トで、 それらが使用可能

である限り有効にできます。 たとえば、 アプリ ケーシ ョ ンで、 ビジネス分

析の実行に関連する複雑な ト ランザクシ ョ ンのセッ ト を開始する前に統計

情報を有効にし、 タスクの完了時に統計情報を無効にするよ うに定義でき

ます。データ プロバイダーがサーバーに対して待機させられた時間および

返された行数をタスクの完了直後に取得できますし、 後から取得するこ と

もできます。 アプリ ケーシ ョ ンはタスクの 後で統計情報を無効にするた

め、 統計情報項目は関心のある期間だけ計測されます。

統計情報項目は、 機能上 5 つのカテゴ リに分類されます。

ネッ ト ワーク レイヤ項目は、 送受信されるバイ ト数およびパケッ ト

数、データ プロバイダーがサーバーの応答を待った時間などのネッ ト

ワーク動作に関連する値を取得します。

集計項目は、 サーバーとのやり と り ごとに送受信されたバイ ト数など

の計算値を返します。

行処理の統計情報項目は、 アプリ ケーシ ョ ンが読み取らなかった行の

処理に必要な時間と リ ソースに関する情報を提供します。

ステート メン ト統計情報項目は、 実行されたステート メン トおよびス

ト アド プロシージャの数に関する値を返します。

ステート メン ト キャ ッシュ統計情報項目はステート メン ト キャ ッ

シュ内でのステート メン トの動作を説明する値を返します (ステート

メン ト キャ ッシュの使用法については「ステート メン ト キャ ッシング

の使用」 (3-6 ページ) を参照して ください)。

統計情報項目の有効化と取得

Connection オブジェク ト を作成する と、 StatisticsEnabled プロパティを使用

して統計情報の収集を有効にする こ とができます。 データ プロバイダー

は、 接続が開かれる と統計情報項目のカウン ト を開始し、 ResetStatistics が呼び出されるまで継続します。接続を閉じた後 ResetStatistics を呼び出さず

に再度開く と、 統計情報項目のカウン トは接続が閉じられた時点から継続

されます。

RetrieveStatistics メ ソ ッ ドを呼び出すと、 1 つまたは複数の統計情報項目の

カウン ト を取得します。返される値は、 RetrieveStatistics メ ソ ッ ドが呼び出

された時点での " 適切な時期のスナップシ ョ ッ ト " とな り ます。

統計情報収集および取得の範囲を定義できます。次の C# コード例では、統

計情報項目は Task A 作業でのみ計測され、 Task B 作業処理後に取得され

ます。

3-25

Page 88: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ADO.NET の高度な機能

connection.StatisticsEnabled = true; // Task A 作業を行いますconnection.StatisticsEnabled = false; // Task B 作業を行いますIDictionary currentStatistics = connection.RetrieveStatistics();

すべての統計情報項目を表示するには、 次の C# コード例のよ う なコード

を使用するこ とができます。

foreach (DictionaryEntry entry in currentStatistics) { Console.WriteLine(entry.Key.ToString() + ":" + entry.Value.ToString());}Console.WriteLine();

SocketReads および SocketWrites 統計情報項目のみを表示するには、次の C#コード例のよ うなコードを使用できます。

foreach (DictionaryEntry entry in currentStatistics) { Console.WriteLine("SocketReads = {0}", currentStatistics["SocketReads"]); Console.WriteLine("SocketWrites = {0}", currentStatistics["SocketWrites"]);}

Console.WriteLine();

3-26

Page 89: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

4

Visual Studio でのデータ プロバイダーの使用

統合開発環境を一般的なタスクに使用する

Pervasive PSQL データ プロバイダーは Visual Studio への統合に対応してい

ます。 つま り、 開発者は Microsoft Visual Studio のグラフ ィ カル ユーザー

インターフェイスを使用して、 さまざまなタスクを実行できます。

こ こでは、 Pervasive PSQL データ プロバイダーの機能がどのよ うにして

Visual Studio に組み込まれるかを説明します。

この章では、 以下の項目について説明します。

「接続の追加」 (4-2 ページ)

「Visual Studio の Pervasive Performance Tuning Wizard」 (4-14 ページ)

「プロバイダー固有テンプレートの使用」 (4-18 ページ)

「Pervasive Visual Studio Wizard の使用」 (4-21 ページ)

「ツールボッ クスからのコンポーネン トの追加」 (4-29 ページ)

「データ プロバイダー統合のシナリオ」 (4-31 ページ)

4-1

Page 90: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

接続の追加 Visual Studio では、 いくつかの方法で接続を追加するこ とができます。

「サーバー エクスプローラーでの接続の追加」 (4-2 ページ)

「データソース構成ウ ィザードによる接続の追加」 (4-11 ページ)

サーバー エクスプローラーでの接続の追加

接続を追加するには

1 [データ接続] ノードを右ク リ ッ ク します。

2 [接続の追加] をク リ ッ ク します。 [接続の追加] ウ ィンド ウが表示さ

れます。

4-2

Page 91: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

3 [データ ソース] フ ィールドに Pervasive PSQL データ プロバイダーが

表示されている場合は、 手順 6 へ進みます。 そ うでない場合は、 [変

更] ボタンをク リ ッ ク します。

4 [データ ソースの変更] ウ ィ ンド ウが表示されます。

5 [データ ソースの変更] ウ ィ ンド ウで、 次の手順を実行します。

a. [データ ソース] リ ス ト ボッ クスで "Pervasive PSQL Database"を選択します。

b. [データ プロバイダー] ド ロ ップダウン リ ス トで "ADO.NETPervasive PSQL Provider" を選択します。

c. ほかの接続でも これらの選択を使用したい場合は、[常にこれを選

択する] チェ ッ ク ボッ クスをオンにします。

d. [OK] をク リ ッ ク して [接続の追加] ウ ィ ンド ウに戻り ます。

6 [接続の追加] ウ ィンド ウで、 次の手順を実行します。

a. ホス ト名 (Host) を入力します。

b. ユーザー ID (User ID) とパスワード (Password) を入力します。

これらの値は認証で必要とな り ます。

c. (任意) サーバー エクスプローラーで定義した接続インスタンスの

存続期間中パスワードを保存したい場合は、 [Save my password]チェ ッ ク ボッ クスをオンにします。

d. (省略可能) [データベース] 入力フ ィールドで、 接続するデータ

ベースの名前を入力します。

7 さ らにプロバイダー固有のプロパティ値を指定する場合は、 [詳細設

定] ボタンをク リ ッ ク します。

4-3

Page 92: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

[プロパティの詳細] ダイアログ ボッ クスの値を変更するには、 対象

フ ィールドで新しい値を選択するか、 値を入力して Enter キーを押し

ます。 この値が接続文字列に追加され、 プロパティの説明の下にある

フ ィールドに表示されます。 デフォルトの値を受け入れる場合は、 接

続文字列フ ィールドを変更せずそのままにしておきます。 必要な変更

を加えたら、 [OK] をク リ ッ ク して [接続の追加] ウ ィ ンド ウに戻り

ます。

Advanced( 詳細)

Encoding :データベースに格納されている文字列データの翻訳に使用

する、 ANSI 名または Windows コード ページを入力します。 デフォル

トでは、 Windows コード ページが使用されます。

Initial Command Timeout:データ プロバイダーが実行の試行を終了し

てエラーを生成するまでのデフォルトの待機時間 (秒単位のタイムア

ウ ト ) を指定します。 このオプシ ョ ンは、 アプリ ケーシ ョ ンのコード

に 変 更 を 加 え る こ と な く、 PsqlCommand オ ブ ジ ェ ク ト の

CommandTimeout プロパティ と同じ機能を提供します。その後、アプリ

ケーシ ョ ンは CommandTimeout プロパティを使用して Initial CommandTimeout 接続文字列オプシ ョ ンを上書きするこ とができます。

デフォルトの初期値は 30 秒です。

メモ:CommandTimeout オプシ ョ ンの初期値に、サーバーのデッ ド ロ ッ

ク 検出およびタイムアウ トの 大値よ り大きい値を設定します。これ

によって、 アプリ ケーシ ョ ンはタイムアウ ト した場合によ り意味のあ

る応答を受け取るこ とができます。

Initialization String : セッシ ョ ンの設定を管理するために、 データベー

スへの接続後直ちに発行されるステート メン ト を入力します。

4-4

Page 93: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

例: NULL で埋められた CHAR 列を処理するには、次のよ うに値を設

定します。

Initialization String=SET ANSI PADDING ON

メモ : 何らかの理由でステート メン トが失敗した場合、 サーバーへの

接続は失敗します。データ プロバイダーは、サーバーから返されたエ

ラーを含む例外をスローします。

Parameter Mode : ネイテ ィブ パラ メーター マーカーおよびバイン

ディングの動作を選択します。 これによ り、 アプリ ケーシ ョ ンはプロ

バイダー固有の SQL コードを再利用でき、Pervasive PSQL データ プロ

バイダーへの移行を簡単にするこ とができます。

ANSI (デフォルト ) に設定する と、 ? 文字はパラ メーター マーカーと

して処理され、 序数と してバインド されます。

BindByOrdinal に設定した場合、 ネイティブ パラ メーター マーカーが

使用され、 序数と してバインド されます。

BindByName に設定した場合、ネイティブ パラ メーター マーカーが使

用され、 名前と してバインド されます。

PVTranslate: ク ラ イアン トが、適合するエンコードをサーバーとネゴ

シエイ トするかど うかを選択します。

Auto に設定した場合、データ プロバイダーはサーバーのコードページ

を取得して、 データをサーバーのコードページに変換します。

Nothing (デフォルトの初期値) に設定する と変換は起こ り ません。

Timestamp : Pervasive のタイムスタンプを文字列と して格納および取

得するかど うかを選択します。

DataTime (デフォルトの初期値) に設定する と、 データ プロバイダー

はタイムスタンプを DateTime にマップします。この設定はネイティブ

な 精 度 が 必 要 な 場 合、 た と え ば、 タ イ ム ス タ ン プ を 含 む

CommandBuilder を使用する場合に適しています。

String に設定する と、データ プロバイダーは Pervasive タイムスタンプ

を文字列と してマップします。

TimeType : Pervasive の Time を ADO.NET データ プロバイ ダーの

Timespan または DateTime と して取得するかど うかを指定します。

DateTime に設定する と、 データ プロバイダーは SQL の TIME 型を

.NET の System.DateTime 型にマップします。

TimeSpan に設定する と、 データ プロバイダーは SQL の TIME 型を

.NET の System.DateTimeSpan 型にマップします。

4-5

Page 94: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

Connection Pooling( 接続プール)

Connection Reset : アプ リ ケーシ ョ ンで再使用するための接続プール

から接続を削除する場合、 その状態を接続の初期設定状態にリセッ ト

するかど うかを選択します。

False (デフォルトの初期値) に設定する と、データ プロバイダーは接

続の状態を リセッ ト しません。

Connection Timeout : サーバーへの接続の試行が失敗した後、 接続さ

れないでいる間の秒数を入力します。 接続フェイルオーバーが有効に

なっている場合、 このオプシ ョ ンは接続の試行ごとに適用されます。

0 に設定する と、 データ プロバイダーが接続の試行でタイムアウ トす

るこ とはあ り ません。

デフォルトの初期値は 15 秒です。

Load Balance Timeout : 接続プールで接続を保持する秒数を入力しま

す。 接続プール マネージャーは定期的にすべてのプールをチェ ッ ク

し、 この値を超過した接続を閉じたり排除します。 Min Pool Size オプ

シ ョ ンの指定によって、 一部の接続は Load Balance Timeout に指定さ

れた値を無視するこ とができます。

値は、 0 から 65535 までの任意の整数を指定できます。

0 (デフォルトの初期値) に設定する と、接続のタイムアウ トは上限値

になり ます。

接続の存続時間については、 「プールからの接続の削除」 (3-3 ページ)

を参照して ください。

Max Pool Size : 1 つのプール内の 大接続数を入力します。 大数に

達したら、それ以上の接続を接続プールに追加するこ とはできません。

値は、 1 から 65535 までの任意の整数を指定できます。

デフォルトの初期値は 100 です。

Min Pool Size : 接続プールが作成されたと き、 そのプールで開いてい

る、もし くは置いておく接続の 小数 (下限) を入力します。接続プー

ル内の一部の接続が Load Balance Timeout 値を超えたと しても、 接続

プールにはこの 小数の接続が保持されます。

値は、 0 から 65535 までの任意の整数を指定できます。

0 (デフォル ト の初期値) に設定する と、 接続プールが作成されたと

き、 プール内に追加の接続は置かれません。

Pooling : True (デフォルトの初期値) に設定する と、 接続プールは有

効になり ます。

4-6

Page 95: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

Failover( フェ イルオーバー)

Alternate Servers:プライマ リ データベース サーバーが使用不可能な

場合、データ プロバイダーが接続を試みる代替データベース サーバー

の一覧を入力します。 このプロパティに値を指定する と、データ プロ

バイダーに対して接続フェイルオーバー機能が有効になり ます。

たとえば、 Alternate Servers 値を次のよ うに指定する と、接続フェイル

オーバー用に 2 つの代替サーバーが定義されます。

Alternate Servers="Host=AcctServer;Port=1584, Host=123.456.78.90;Port=1584"

Connection Retry Count :データ プロバイダーがプライマ リ サーバー

への接続を試行し、 その初期接続が失敗した後に代替サーバーへの接

続を試行する回数を入力します。

値は、 0 から 65535 までの任意の整数を指定できます。

0 (デフォルトの初期値) に設定する と、再接続の試行回数は制限され

ません。

Connection Retry Delay : 初期接続の試行に失敗した後、 プラ イマ リ

サーバーまたは (指定した場合には) 代替サーバーへの接続を再試行

するまでの試行間隔を秒数で入力します。

デフォルトの初期値は 3 です。

このプロパティは Connection Retry Count プロパティに 0 を設定してい

る場合は作用しません。

Load Balancing:データ プロバイダーがプライマ リ データベース サー

バーや代替データベース サーバーへの接続において、 ク ラ イアン ト

ロード バランスを使用するかど うかを、 True または False を選択して

決定します。

False (デフォルトの初期値) に設定する と、データ プロバイダーはク

ライアン ト ロード バランスを使用しません。

Performance( パフォーマンス)

Enlist : True または False を選択して、 スレ ッ ドの現在の ト ランザク

シ ョ ン コンテキス トの作成中に、データ プロバイダーが接続への参加

を自動的に試行するかど うかを指定します。

メモ:Pervasive PSQL は分散ト ランザクシ ョ ンをサポート しないため、

スレ ッ ドの現在の ト ランザクシ ョ ン コンテキス ト での接続への参加

試行は失敗します。

False に設定する と、 データ プロバイダーは接続への自動的な参加試

行を行いません。

4-7

Page 96: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

True (デフォルトの初期値) に設定する と、 現在の ト ランザクシ ョ ン

コンテキス ト が存在する場合にデータ プロバイダーはエラーを返し

ます。現在の ト ランザクシ ョ ン コンテキス トが存在しない場合、デー

タ プロバイダーは警告を発します。

Max Statement Cache Size: この接続のステート メン ト キャ ッシュに

保持できる、 アプリ ケーシ ョ ンが生成するステート メン トの 大数を

入力します。

この値には 0、 または 1 以上の整数を指定できます。

0 に設定する と、 ステート メン ト キャ ッシュは無効になり ます。

1 以上の整数を設定する と、 その値はステート メン ト キャ ッシュに保

持できるステート メン ト数を決定します。

デフォルトの初期値は 10 です。

Statement Cache Mode : 接続存続期間のステート メン ト キャ ッシュ

モードを選択します。 詳細については、 「ステート メ ン ト キャ ッシン

グの使用」 (3-6 ページ) を参照して ください。

Auto に設定する と、 ステー ト メ ン ト キャ ッシュは有効にな り ます。

Command のプロパティ StatementCacheBehavior で Implicit とマーク さ

れているステート メン トがキャ ッシュされます。 これらのコマンドは

明示的にマーク されたコマンド よ り低い優先順位を持ちます。つま り、

ステート メ ン ト プールが 大ステート メン ト数に達した場合、 Cacheとマーク されたステート メン ト用の余地を作るため、Implicit とマーク

されたステート メン トが 初に削除されます。

ExplicitOnly (デ フ ォ ル ト の 初 期 値) を 設 定 す る と、

StatementCacheBehavior によって Cache とマーク されたコマンドのみ

がキャッシュされます。

Schema Information( スキーマ情報)

Schema Collection Timeout:試行したスキーマ コレクシ ョ ン操作が失

敗した後、 完了されないでいる間の秒数を入力します。

デフォルトの初期値は 120 です。

Schema Options:返されるデータベース メ タデータを指定します。デ

フォルトで、データ プロバイダーは、パフォーマンスに悪影響を与え

るデータベース メ タデータを返さないよ うにしてパフォーマンスを

適化します。アプリ ケーシ ョ ンでデータベース メ タデータを必要と

する場合は、 メ タデータの名前または 16 進値を指定します。

このオプシ ョ ンはパフォーマンスに影響するこ とがあ り ます。

ShowColumnDefaults または 0x04 を設定する と、 列のデフォルトが返

されます。

4-8

Page 97: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

ShowParameterDefaults または 0x08 を設定する と、列のデフォルトが返

されます。

FixProcedureParamDirection または 0x10 を設定する と、プロシージャ定

義が返されます。

ShowProcedureDefinitions または 0x20 を設定する と、 プロシージャ定

義が返されます。

ShowViewDefinitions または 0x40 を設定する と、 ビュー定義が返され

ます。

ShowAll または 0xFFFFFFFF を設定する と、 すべてのデータベース メタデータが返されます。

た と え ば、 プ ロ シ ー ジ ャ 定 義 の 説 明 を 返 す に は

Options=ShowProcedureDefinitions または Schema Options=0x20 を指定

します。

複数の除外されたメ タデータを表示するには、 名前をカンマ区切りの

リ ス トで指定するか、制限したい列コレクシ ョ ンの 16 進値の合計を指

定します。

データ プロバイダーが追加できる メ タデータの名前および 16 進値に

ついては、 表 2-2 を参照してください。

Use Current Schema:この接続文字列オプシ ョ ンはサポート されてい

ません。 これを設定する と、データ プロバイダーは例外をスローしま

す。

Security( セキュリ ティ )

Encrypt : データ プロバイダーが暗号化されたネッ ト ワーク通信 (ワ

イヤ暗号化と も呼ばれます) を使用するかど うかを選択します。

If Needed (デフォルトの初期値) に設定する と、 データ プロバイダー

はサーバーの設定を反映します。

Always に設定する と、 データ プロバイダーは暗号化を使用します。

サーバーでワイヤ暗号化が許可されない場合はエラーが返されます。

Never に設定する と、 データ プロバイダーは暗号化を使用しません。

サーバーでワイヤ暗号化を要求された場合はエラーが返されます。

Encryption : データ プロバイダーが許可する暗号化の 低レベルを選

択します。 これらの値の意味は使用する暗号化モジュールに応じて変

わ り ます。 デフォル ト の暗号化モジュールでは、 値 Low、 Medium、

High はそれぞれ 40 ビッ ト 、 56 ビッ ト 、 128 ビッ ト暗号化に対応して

います。

デフォルトの初期値は Medium (中) です。

4-9

Page 98: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

Password:Pervasive PSQL データベースへの接続に使用するパスワー

ド (大文字小文字の区別なし) を入力します。 パスワードは、 データ

ベースでセキュ リティが有効な場合にのみ必要です。 パスワードが必

要な場合は、 システム管理者からパスワードを入手して ください。

Persist Security Info:セキュ リティで保護された情報を ConnectionStringプロパティにク リア テキス トで表示するかど うかを選択します。

True に設定する と、Password 接続文字列オプシ ョ ンの値はク リ ア テキ

ス トで表示されます。

False (デフォルトの初期値) に設定する と、データ プロバイダーはセ

キュ リティで保護された情報をク リ ア テキス トで表示しません。

User ID:Pervasive PSQL データベースへの接続に使用するデフォルト

の Pervasive PSQL ユーザー名を入力します。

Standard Connection( 標準接続)

Database Name:接続するデータベースの内部名を特定する文字列を

入力します。

このフ ィールドに値を入力した場合は、 Server DSN フ ィールドを使用

できません。

Host : 接続する Pervasive PSQL サーバーの名前または IP アドレスを

入力します。

Port : Pervasive PSQL データベースで動作している リ スナーの TCPポート を入力します。

デフォルトのポート番号は 1583 です。

Server DSN: DEMODATA など、 サーバー上のデータ ソ ースの名前

です。

このフ ィールドに値を入力した場合は、 Database Name フ ィールドを

使用できません。

Tracing( ト レース)

Enable Trace : 1 以上の値を入力する と、 ト レースが有効になり ます。

0 (デフォルトの初期値)に設定する と、 ト レースは有効になり ません。

Trace File : ト レース ファ イルのパス と名前を入力します。 デフォル

トの初期値は \PVSW_NETTrace.txt です。 この ト レース ファ イルが存

在しない場合はデータ プロバイダーが作成します。

8 [接続の確認] をク リ ッ ク します。 構成処理中のどの時点であっても、

[接続の確認] をク リ ッ ク して、 [接続の追加] ウ ィンド ウで指定した

接続プロパテ ィ を使ってデータ ソースへ接続してみる こ とができま

す。

4-10

Page 99: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

データ プロバイダーは接続に成功したら、 その接続を停止した

後、 " テス ト接続に成功しました " という メ ッセージを表示しま

す。 [OK] をク リ ッ ク します。

不適当な環境であるか、 または接続値が正し くないためにデータ

プロバイダーが接続できない場合は、適切なエラー メ ッセージが

表示されます。

[OK] をク リ ッ ク します。

メモ : 接続フェイルオーバー機能で使用するための代替サーバーを構

成している場合には、[接続の確認] ボタンでテス ト されるのはプライ

マ リ サーバーのみで、代替サーバーはテス ト されないという こ とを承

知しておいてください。

9 [OK] または [キャンセル] をク リ ッ ク します。 [OK] をク リ ッ ク し

た場合は、指定した値がデータ ソースへ接続する と きのデフォルトに

な り ます。 これらのデフォルト設定は、 この手順を使ってデータ ソー

スを再構成するこ とによって変更できます。 また、 これらの代わりの

値を含む接続文字列を使ってデータ ソースに接続すれば、デフォルト

設定を無効にするこ とができます。

データソース構成ウィザードによる接続の追加

データ ソース構成ウ ィザードを使用して、アプリ ケーシ ョ ンに新しい接続

を追加するこ とができます。

接続を追加するには

1 Visual Studio の [データ] メニューから [新しいデータ ソースの追加]

を選択します。 データ ソース構成ウ ィザードが表示されます。

2 [データベース] を選択し、 [次へ] をク リ ッ ク します。 [データ接続の

選択] ウ ィンド ウが表示されます。

4-11

Page 100: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

3 [新しい接続] をク リ ッ ク します。 [接続の追加] ウ ィンド ウが表示さ

れます。 「サーバー エクスプローラーでの接続の追加」 (4-2 ページ)

の手順 2 から処理を続けます。

[サーバー名] ノードの定義

[サーバー名] ノードは、現在接続されているデータベースを示す 上位レ

ベルのノードについて説明します。 ノードの名前は F2 キーを押して変更

できます。 ただし、 デフォルトで、 次のスキーマに従って名前を表示する

必要があ り ます。

ホス ト .データベース名 . ユーザー名

ソ リ ューシ ョ ン エクスプローラーで [サーバー名] ノードを選択する と、

プロパティ パネルが表示されます。

4-12

Page 101: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

接続の追加

プロパティにデフォルト値がある場合、 またはデフォルト以外の値を明示

的に設定した場合は、プロパティ とその値がプロパティ パネルに表示され

ます。

たとえば、 前の図で Database Name プロパティが DEMODATA と定義され

ている と、 その値が表示されます。 一方、 AlternateServers プロパティのデ

フォルト値は変更されなかったので、AlternateServers はプロパティ パネル

に表示されません。

4-13

Page 102: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

Visual Studio の Pervasive Performance Tuning Wizard

Pervasive Performance Tuning Wizard は、 アプリ ケーシ ョ ンについて一連の

質問を通して手順を段階的に案内します。 ウ ィザードに対する答えに基づ

き、 Pervasive PSQL データ プロバイダーのパフォーマンスに関する接続文

字列オプシ ョ ンに 適な設定が用意されます。

Visual Studio から Pervasive Performance Tuning Wizard を起動する と、 以下

のこ とが行えます。

パフォーマンスに関する接続文字列オプシ ョ ンの値を生成します。 こ

れらの値は接続文字列にコピーされます。

既存の接続を変更します。

お使いの環境に 適化された接続文字列を持つ、 あらかじめ設定され

た新規アプ リ ケーシ ョ ンを生成します。 Performance Tuning Wizard はアプリ ケーシ ョ ンの種類および使用する ADO.NET コードのバージ ョ

ンを選択するオプシ ョ ンを提供します。

Pervasive Performance Tuning Wizard を使用するには

1 Performance Tuning Wizard を起動するには次のいずれかを行います。

新しい接続を作成するには、[ツール|Pervasive|Run PervasivePerformance Tuning Wizard] を ク リ ッ ク し ます。 PerformanceTuning Wizard の Welcome ダイアログが表示されたら、 [Next] を

ク リ ッ ク します。 手順 2 から処理を続けます。

既存の接続を変更するには、サーバー エクスプローラーでデータ

接続を右ク リ ッ ク し、 [Pervasive Performance Tuning Wizard の実行] をク リ ッ ク します。 Performance Tuning Wizard の Welcomeダイアログが表示されたら、[Next] をク リ ッ ク します。手順 2 から処理を続けます。

2 ウ ィザードは、 お使いの環境に関する一連の質問を行います。 [Next]をク リ ッ ク してウ ィザードの処理を進めます。

図 4-1 は、 尋ねられる質問の例を示します。

4-14

Page 103: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio の Pervasive Performance Tuning Wizard

図 4-1 Pervasive Performance Tuning Wizard

3 データ プロバイダーに関する質問に答え終わる と、 [Result] ダイア

ロ グが表示され、 接続文字列が表示されます。 図 4-2 は PervasivePerformance Tuning Wizard が生成するパフォーマンスに関する接続文

字列オプシ ョ ンを示します。

4-15

Page 104: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

図 4-2 Pervasive Performance Tuning Wizard の [Result] ダイアログ

次のいずれかの動作を選択します。

接続文字列をほかのアプリ ケーシ ョ ンでも使用できるよ うにする

には (デフ ォル ト の初期値) 、 [Copy the connection string toclipboard] を ク リ ッ ク し ます。 この接続文字列をほかのアプ リ

ケーシ ョ ンでも使用できます。

Performance Tuning Wizard を既存の接続から起動した場合は、

[Re-configure the connection with the additional PerformanceTuning Wizard connection string options] をク リ ッ ク します。

新規 ア プ リ ケ ー シ ョ ン を 作成す る に は、 [Generate a newapplication pre-configured with these connection settings] を ク

リ ッ ク します。 この例では、 Pervasive Project テンプレート を使用

して Pervasive アプリ ケーシ ョ ンを生成します。プロバイダー固有

のテンプレートの詳細については、「プロジェク トの新規作成」(4-18 ページ) を参照してください。

新規アプリ ケーシ ョ ンの場合は以下の追加情報を定義します。

ADO.NET 1.x 仕様に準拠したアプリ ケーシ ョ ンを作成するに

は、[Using ADO.NET 1.0 provider-specific interfaces] を選択

します。

ADO.NET 共通プログラ ミ ング モデルを使用するアプリ ケー

シ ョ ンを作成するには、 [Using ADO.NET 2.0 commonprogramming interfaces] を選択します。

4-16

Page 105: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio の Pervasive Performance Tuning Wizard

プロジェ ク ト の場所を入力するか [Browse] を ク リ ッ ク し

て、 場所を選択します。

プロジェク トの種類を選択します。デフォルトでは、ウ ィザー

ドは C# アプリ ケーシ ョ ンを作成します。

4 [Finish] をク リ ッ ク して Pervasive Performance Tuning Wizard を終了し

ます。

4-17

Page 106: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

プロバイダー固有テンプレートの使用

Visual Studio は SQL レベル調整などの機能を自動的に含めるアプ リ ケー

シ ョ ンの構築を助けるテンプレートのセッ ト を提供します。

プロジェク トの新規作成 Visual Studio で新規プロジェク ト を作成する場合、 Pervasive PSQL データ

プロバイダー固有のテンプレート を使用するか、 汎用コードを持つアプリ

ケーシ ョ ンを作成するテンプレート を使用するこ とができます。

次の例では、 Pervasive PSQL データ プロバイダー用のテンプレート を使用

して Visual Studio で新規プロジェク ト を作成します。

1 [ファイル|新規作成|プロジェク ト ] をク リ ッ ク します。 [新しいプ

ロジェク ト ] ダイアログが表示されます。

2 プロジェク トの種類ペインで [Visual C#] を選択します。

3 [新しいプロジェク ト ] ダイアログのフィールドに必要な変更を加えます。

a. テンプレート ペインで Pervasive PSQL Project を選択します。

b. [プロジェク ト名] フ ィールドに My Pervasive Project などの名前

を入力するか、 デフォルトの名前をそのまま使用します。

c. [場所] フ ィールドでプロジェク ト を保存する場所を入力するか、

[参照] をク リ ッ ク してそのディ レク ト リに移動します。

4-18

Page 107: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

プロバイダー固有テンプレートの使用

d. [ソリューシ ョ ン名]フ ィールドにソ リ ューシ ョ ンの名前を入力し

ます。

e. Visual Studio 2008 をお使いの場合は、 ウ ィンドウの上部にあるド

ロップダウン リ ス トで使用する .NET Framework を選択できます。

4 [OK] をク リ ッ ク します。

5 新規プロジェク トがソ リ ューシ ョ ン エクスプローラーに表示されま

す。Pervasive PSQL ADO.NET データ プロバイダー用の名前空間が、プ

ロジェク トに自動的に追加されます。

メモ : ADO.NET 2.0 共通プログラ ミ ング モデルを使用している場合は、

Pervasive Generic Provider Project テンプレート を選択してください。この場

合、 プロジェク トはアセンブリへの特定の参照を必要と しません。

4-19

Page 108: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

既存のプロジェク トへのテンプレートの追加

Pervasive PSQL テンプレートを既存のプロジェク トに追加するには

1 ソ リ ューシ ョ ン エク スプローラーでプロジェ ク ト を右ク リ ッ ク し、

[追加|新しい項目] をク リ ッ ク します。

2 [新しい項目の追加] ダイアログで Pervasive PSQL Class を選択しま

す。

3 [追加] をク リ ッ ク します。 Pervasive PSQL データ プロバイダー用の

クラスがプロジェク トに追加されます。

4-20

Page 109: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Visual Studio Wizard の使用

Pervasive Visual Studio Wizard の使用

ウ ィザードは、 アプリ ケーシ ョ ン作成時に一般的に実行される作業です。

「Add Table Wizard でのテーブルの作成」 (4-21 ページ)

「Add View Wizard でのビューの作成」 (4-26 ページ)

この手順を開始する前に、 「プロジェク トの新規作成」 (4-18 ページ) で説

明したよ うに Pervasive テンプレー ト を使用してプロジェ ク ト を作成し、

データ接続を追加します。

Add Table Wizard でのテーブルの作成

Visual Studio で Pervasive PSQL ADO.NET Add Table Wizard を使用して、 新

規テーブルをすばやく簡単に定義できます。

1 [表示|サーバー エクスプローラー] をク リ ッ ク します。

2 データ ソース 接続をダブルク リ ッ ク して、その下部のノードを表示し

ます。

3 [Tables] ノードを右ク リ ッ ク し、 [Add New Table] をク リ ッ ク しま

す。 Pervasive ADO.NET Add Table Wizard が表示されます。

4 [Next] をク リ ッ ク します。 [Specify Table Name] ダイアログが表示さ

れます。

5 [Table Name] フ ィールドにテーブルの名前を入力します。

6 [Next] をク リ ッ ク します。 [Specify Column(s)] ダイアログが表示さ

れます。

4-21

Page 110: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

7 新規テーブルの列を定義します。 この選択によ り、 データ型オプシ ョ

ン ペインに追加フ ィールドが表示されます。

[Add] をク リ ッ ク してテーブルに列を追加します。列名とデータ

型のフ ィールドが編集可能になり ます。

[Column Name] フ ィールドに列の名前を入力します。 列のデータ型を選択し、 必要に応じて追加情報を指定します。

文字データ型を選択した場合は、 Data Type Options ペインに

[Length] フ ィールドが表示されます。列の 大サイズをバイ

ト単位で入力します。

数値を選択した場合、 Data Type Options ペインに [Precision]と [Scale] フ ィールドが表示されます。

列にヌル値を含むこ とができ る場合は、 [Allow Null] チェ ッ ク

ボッ クスをオンにします。

テーブルから列を削除するには、 列名を選択して [Remove] を

ク リ ッ ク します。

8 [Next] をク リ ッ ク します。[Specify Primary Key] ダイアログが表示さ

れます。

4-22

Page 111: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Visual Studio Wizard の使用

テーブルに主キーを指定したくない場合は [No Primary Key] を

ク リ ッ ク し、 [Next] をク リ ッ ク します。 [Specify Unique Key(s)]ダイアログが表示されます。 手順 11 から処理を続けます。

テーブルに主キーを指定する場合は [Create Primary Key] をク

リ ッ ク して手順 9 に進みます。

9 [Specify Primary Key] ダイアログのフ ィールドを完成します。

[Primary Key Name] フ ィールドで主キーの名前を入力するか、デ

フォルトの名前をそのまま使用します。

[Available Columns]フィールドから列を選択して[Selected Columns]フ ィールドへ移動します。

10 [Next] をク リ ッ ク します。 [Specify Unique Key(s)] ダイアログが表示

されます。

11 (省略可能) テーブルに 1 つ以上の一意なキーを指定します。

テーブルに一意なキーを指定したくない場合は、[Next] をク リ ッ

ク し ます。 [Specify Foreign Key(s)] ダイアログが表示されます。

手順 14 から処理を続けます。

テーブルに 1 つ以上の一意なキーを指定する場合は、手順 12 から

処理を続けます。

4-23

Page 112: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

12 [Add] をク リ ッ ク します。ダイアログ上のフ ィールドが選択可能にな

り ます。

[Unique Keys]ド ロ ップダウン リ ス トで一意なキーを選択します。

[Unique Key Name] フ ィールドで名前を編集するか、 デフォル

トの名前をそのまま使用します。 [Available Columns] リ ス ト ボッ クスで一意なキーの指定に使用

する列を 1 つ以上選択し、 [Selected Columns] リ ス ト ボッ クス

に移動します。

13 [Next] をク リ ッ ク します。[Specify Foreign Key(s)] ダイアログが表示

されます。

4-24

Page 113: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Visual Studio Wizard の使用

14 (省略可能) テーブルに 1 つ以上の外部キーを指定します。

テーブルに外部キーを指定した くない場合は、 [Next] を ク リ ッ

ク します。 [Review SQL] ダイアログが表示されます。 手順 17 から処理を続けます。

テーブルに 1 つ以上の外部キーを指定する場合は、手順 15 から処

理を続けます。

15 [Add] をク リ ッ ク します。ダイアログ上のフ ィールドが選択可能にな

り ます。

[Foreign Keys] ド ロ ップダウン リ ス トで外部キーを選択します。

[Foreign Key Name] フ ィールドで名前を編集するか、 デフォル

トの名前をそのまま使用します。

[Table Schema] ド ロ ップダウン リ ス トでテーブル スキーマを選

択します。

[Table Name] ド ロ ップダウン リ ス トでテーブルを選択します。

[Foreign Table Column] ド ロ ップダウン リ ス トで、 外部キーの

指定に使用する 1 つ以上の外部キーを選択します。

[Parent Table Column] ド ロ ップダウン リ ス トで、 親テーブルか

ら対応する列を選択します。

16 [Next] をク リ ッ ク します。[Review SQL] ダイアログが表示されます。

4-25

Page 114: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

17 選択した内容によって生成された SQL ステート メン ト を確認します。

SQL ステート メン トに問題がなければ、[Finish] をク リ ッ ク しま

す。作成したテーブルは、サーバー エクスプローラー内のこの接

続の [Tables] ノード下に表示されます。

SQL ステート メン ト を追加したい場合、 たとえば、 ビューや特定

のキーワードを追加するには、 手順 18 から処理を続けます。

18 [Edit SQL]チェ ッ ク ボッ クスをオンにします。[Generated SQL]フ ィー

ルド内のテキス トが編集可能になり ます。

メモ : [Edit SQL] チェ ッ ク ボッ クスをオンにする と、 [Back] ボタン

が無効になり ます。

19 SQL ステート メン トの変更に問題がなければ [Finish] をク リ ッ ク し

ます。作成したテーブルは、サーバー エクスプローラー内のこの接続

の [Tables] ノード下に表示されます。

Add View Wizard でのビューの作成

Visual Studio で Pervasive Add View Wizard を使用して、 新規ビューをすば

やく簡単に定義できます。

1 [表示|サーバー エクスプローラー] をク リ ッ ク します。

2 データ ソース 接続をダブルク リ ッ ク して、その下部のノードを表示し

ます。

3 [Views] ノードを右ク リ ッ ク し、[Add New View] をク リ ッ ク します。

Pervasive Add View Wizard の Welcome ダイアログが表示されます。

4-26

Page 115: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Visual Studio Wizard の使用

4 [Next] をク リ ッ ク します。 [Specify View Name] ダイアログが表示さ

れます。

5 [View Name] フ ィールドにビューの名前を入力します。

6 [Next] をク リ ッ ク します。 [Select Table(s) and/or Column(s)] ダイアロ

グが表示されます。

7 [List of Tables and columns] リ ス ト ボッ クスでビューを構成するテー

ブルまたは列を選択し、 それを [Selected Columns] 列に移動します。

8 [Next] をク リ ッ ク します。[Review SQL] ダイアログが表示されます。

9 選択した内容によって生成された SQL ステート メン ト を確認します。

4-27

Page 116: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

SQL ステート メン トに問題がなければ、[Finish] をク リ ッ ク しま

す。作成したビューは、サーバー エクスプローラー内のこの接続

の [ビュー] ノード下に表示されます。

SQL ステート メン ト を追加したい場合、 たとえば、 ビューや特定

のキーワードを追加するには、 手順 10 から処理を続けます。

10 [Edit SQL]チェ ッ ク ボッ クスをオンにします。[Generated SQL]フ ィー

ルド内のテキス トが編集可能になり ます。

メモ : [Edit SQL] チェ ッ ク ボッ クスをオンにする と、 [Back] ボタン

が無効になり ます。

11 SQL ステート メン トの変更に問題がなければ [Finish] をク リ ッ ク し

ます。作成したビューは、サーバー エクスプローラー内のこの接続の

[ビュー] ノード下に表示されます。

4-28

Page 117: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ツールボックスからのコンポーネン トの追加

ツールボックスからのコンポーネン トの追加 Visual Studio のツールボッ クスから Windows フォーム アプリ ケーシ ョ ンに

コンポーネン ト を追加するこ とができます。Windows フォーム アプリ ケー

シ ョ ンの作成については、 Visual Studio オンライン ヘルプを参照して くだ

さい。

この手順を開始する前に、Windows フォーム アプリ ケーシ ョ ンを作成して

データ接続を追加して ください。

Windows フォーム アプリケーシ ョ ンに Pervasive PSQL データ プロバ

イダー コンポーネン ト を追加するには

1 [表示|ツールボ ッ ク ス] を ク リ ッ ク し ます。 ツールボ ッ ク スで

Pervasive ADO.NET Provider が表示されるまで下へスクロールします。

2 PsqlCommand ウ ィジェッ ト を選択して Windows フォーム アプリ ケー

シ ョ ンにド ラ ッグします。

4-29

Page 118: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

3 必要に応じて、アプリ ケーシ ョ ンへのウ ィジェッ トの追加を続けます。

4-30

Page 119: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー統合のシナリオ

データ プロバイダー統合のシナリオ Pervasive PSQL データ プロバイダーは Visual Studio に統合されているた

め、 多くのデータ アクセス作業を簡略化するこ とができます。 たとえば、

データベースへの接続を作成した後、クエ リ ビルダーを使用してクエ リ を

作成するこ とができます。

クエ リ ビルダーによって、データベース クエ リ をグラフ ィカルに設計でき

ます。

単純なクエリを作成するには

1 データ ソース接続を確立します (「Pervasive Visual Studio Wizard の使

用」 (4-21 ページ) を参照して ください)。

2 サーバー エクスプローラーでデータ ソースを選択します。

3 [Tables] を右ク リ ッ ク し、 次に [新しいクエリ] をク リ ッ ク します。

4 [テーブルの追加] ウ ィ ンド ウが表示されます。使用するデータが入っ

ているテーブルを選択したら、 [追加] をク リ ッ ク します。

5 [閉じる] をク リ ッ ク して、[テーブルの追加] ウ ィンド ウを閉じます。

6 返したい列を選択します。 この例では、 employee テーブルの id、 nameおよび salary 列を選択します。

4-31

Page 120: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Visual Studio でのデータ プロバイダーの使用

7 ツール バーの [SQL の実行] ボタンをク リ ッ ク します。

8 クエ リ ビルダーの結果ペインで返された結果を調べます。

4-32

Page 121: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

5

Microsoft Enterprise Library の使用

アプ リ ケーシ ョ ンでのデータ アクセス アプリ ケーシ ョ ン ブロ ッ クの使用

Microsoft Enterprise Library を使用する と、 データ アクセスのよ うな一般的

なタ ス ク を移植性の高いコードにラ ッ ピングする こ とによって、 ある

DBMS から別の DBMS へのアプ リ ケーシ ョ ンの移行を容易にし、 アプ リ

ケーシ ョ ン開発を簡略化するこ とができます。データ アクセス アプリ ケー

シ ョ ン ブロ ッ ク (DAAB) のク ラスは ADO.NET で も頻繁に使用される

機能へのアクセスを提供します。 アプリ ケーシ ョ ンは、 アプリ ケーシ ョ ン

レイヤーを介してデータを渡したり、 変更されたデータをデータベースに

返したりするよ うな作業に DAAB を使用できます。 DAAB を使用する と、

アプ リ ケーシ ョ ンを新規作成または修正するたびに同じデータ アクセス

作業のコードを書き続ける必要がなくなるため、 時間をよ り生産的に使う

こ とができます。

Pervasive PSQL データ プロバイダーは、 データ アクセス アプリ ケーシ ョ

ン ブロ ッ クで使用できます。こ こでは、アプリ ケーシ ョ ンでデータ アクセ

ス アプリ ケーシ ョ ン ブロ ッ クを使用する方法を説明します。

5-1

Page 122: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Microsoft Enterprise Library の使用

データ アクセス アプリケーシ ョ ン ブロックの概要

データ ア ク セス アプ リ ケーシ ョ ン ブロ ッ ク (DAAB) は、 開発者が

ADO.NET で常用されるコードを日常的なデータベース作業用の標準化さ

れたコードに置き換えるこ とを可能にしました。データベース ク ラスには

次のよ うなオーバーロード メ ソ ッ ドがあ り ます。

スカラー値または XmlReaders を返す

どのパラ メーターが必要かを判断しそれらを作成する

ト ランザクシ ョ ンにコマンドを含める

アプリ ケーシ ョ ンで特定の DBMS 機能を扱う必要がある場合は、PervasivePSQL データ プロバイダーを使用できます。

DAAB の使用に適する場合

DAAB には、 データベースにアクセスする も一般的なメ ソ ッ ドを簡略化

する少数のメ ソ ッ ドがあ り ます。 それぞれのメ ソ ッ ドは、 データを取得し

てデータベースへの接続を管理するのに必要なロジッ クをカプセル化しま

す。 アプリ ケーシ ョ ンが標準データ アクセス技法を使用する場合は、 アプ

リ ケーシ ョ ン ブロ ッ クの使用を考慮してください。

DAAB は ADO.NET と一緒に使用して、 ADO.NET 用のアプリケーシ ョ ン作

成時の効率 と 生産性を向上 さ せます。 抽象データベース ク ラ スは、

DbCommand ク ラスで使用されるのと同じ ExecuteNonQuery、ExecuteReader、ExecuteScalar などのいくつかのメ ソ ッ ドを提供します。 データベース固有

のコードを使用している場合は、OracleCommand のよ うなデータ プロバイ

ダー固有のクラスを提供します。

開発中にはデフォルトの DAAB を使用するのが便利ですが、その結果作成

されたアプ リ ケーシ ョ ンは移植性に欠けます。 プロバイ ダー固有の

Pervasive PSQL DAAB を使用する と、アプリ ケーシ ョ ンには Pervasive PSQLデータ プロバイダーの SQL レベル調整機能が含められます。 アプ リ ケー

シ ョ ンが複数のデータベースにアクセスする必要があろ う と、 目的のデー

タ ソースが変更される と予想されていよ う と、よ り高い柔軟性を持つこ と

ができます。

汎用クラスおよびデータベース固有のクラス

アプリ ケーシ ョ ン ブロ ッ クは、異種のデータベースで同じコードを使用で

き る コード を ADO.NET に補完します。 DAAB を Pervasive PSQL データ

ベース プロバイダーと一緒に使用する場合、 次の 2 つの選択肢があ り ま

す。

GenericDatabase ク ラス

プロバイダー固有の Pervasive PSQL DAAB 実装

5-2

Page 123: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ アクセス アプリケーシ ョ ン ブロックの概要

GenericDatabase ク ラス オプシ ョ ンは、データベースの動作に特殊な制御を

必要とするアプ リ ケーシ ョ ンにはあま り適しません。 移植性のためには、

プロバイダー固有のソ リ ューシ ョ ンが 適な方法です。

アプリ ケーシ ョ ンでデータを特殊な方法で取得する必要がある場合、 また

は、 Pervasive PSQL 固有の機能を利用するためにコードのカスタマイズが

必要な場合は、 Pervasive PSQL データ プロバイダーがよ り適しています。

5-3

Page 124: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Microsoft Enterprise Library の使用

DAAB の構成

アプリ ケーシ ョ ンで DAAB を使用できるよ う構成する前に、環境を設定す

る必要があ り ます。

1 まず、 http://msdn.microsoft.com/ja-jp/library/aa480453(en-us).aspx から

Microsoft Enterprise Library 3.1 (May 2007) をダウンロード します。

2 データ プロバイダーの Pervasive PSQL DAAB プロジェク ト を開きます

(プロジェク トは、Pervasive PSQL ADO.NET SDK インス トールの一部

と してインス トールされます)。 プロジェク トは、All Users\ApplicationData 下の Pervasive Software\PSQL\ado.net\3.2\samples\EnterpriseLibrary にあ り ます。

注意 : "Application Data" の場所は、 オペレーティング システムおよび

オペレーティング システムのビッ ト アーキテクチャによって異な り

ます。 『Getting Started With Pervasive PSQL』 の 「Pervasive PSQL ファ

イルがインス トールされる場所」 (7-2 ページ) を参照してください。

3 プロジェク ト をコンパイルして出力ディ レク ト リ を書き留めます。

データ アクセス アプリ ケーシ ョ ン ブロ ッ クの構成は、 次の 2 つの手順か

ら成り ます。

「新しい DAAB エン ト リ を追加するには」 (5-4 ページ)

「アプ リ ケーシ ョ ンへのデータ アクセス アプリ ケーシ ョ ン ブロ ッ ク

の追加」 (5-5 ページ)

新しい DAAB エン ト リを追加するには

こ こで、 Enterprise Library Configuration ツールを使用して新規 DAAB エン

ト リ を追加します。

1 [Enterprise Library Configuration]を右ク リ ッ ク し、[New Application]を選択します。

2 [Application Configuration]を右ク リ ッ ク し、次に[New | Data AccessApplication Block] を選択します。 Enterprise Library Configuration ウ ィ

ンド ウが現れます。

3 [Name] フ ィールドに DAAB ブロ ッ クの名前を入力します。

4 [ConnectionString] フ ィールドに接続文字列を入力します。

5 [ProviderName] フ ィールドに 「Pervasive.Data.SqlClient」 と

入力します。

6 [Custom Provider Mappings] を右ク リ ッ ク して [New | ProviderMappings] を選択します。

5-4

Page 125: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

DAAB の構成

7 [Name] フ ィールドに手順 2 で入力した DAAB 名または手順 5 で入力

したデータ プロバイダー名を入力します。

8 [TypeName] フ ィールドで [...] (参照) ボタンをク リ ッ ク し、 構築す

る Pervasive PSQL DAAB のデバッグ出力ディ レク ト リに移動します。

次に、 TypeName を選択します。 たとえば、 Pervasive PSQL TypeNameは Pervasive.EnterpriseLibrary.Data.Pervasive.dll です。

9 [Enterprise Library Configuration] ウ ィ ンド ウは当分開いたままにして

おき、 次のセクシ ョ ンを完了するまで構成を保存しないでください。

アプリケーシ ョ ンへのデータ アクセス アプリケーシ ョ ン ブロックの追加

DAAB を新規または既存のアプリ ケーシ ョ ンに追加するには、 以下の手順

を行います。

1 Visual Studio 2005 ソ リ ューシ ョ ンに次の 2 つの参照を追加します。

Enterprise Library Shared LibraryEnterprise Library Data Access Application Block

2 ソース コードに次のディ レクティブを追加します。

using Microsoft.Practices.EnterpriseLibrary.Data;

using System.Data;

3 ソ リ ューシ ョ ンを リ ビルド して新しい従属物が確実に機能するよ うに

します。

4 現在のソ リ ューシ ョ ンでの出力の Debug または Release パスの場所を

決定して、 Enterprise Library Configuration ウ ィンド ウに戻り ます (「新

しい DAAB エン ト リ を追加するには」 (5-4 ページ) を参照して くださ

い)。

5 [Application Configuration] ノードを右ク リ ッ ク します。

6 現在のソ リ ューシ ョ ンの Debug または Release 出力ディ レク ト リに移

動し、 現在のソ リ ューシ ョ ンの .exe ファ イルを見つけます。

7 ファ イル名を 1 回ク リ ッ ク し、 .config を名前に追加します (たとえば

MyPSQLconfig)。

8 保存するファイルの種類に "All Files" が選択されているこ とを確認し

て [Save] を選択します。

9 ファ イル エクスプローラーを使用して、Pervasive DAAB ディ レク ト リ

から Pervasive.EnterpriseLibrary.Data.Pervasive.dll をコピーします。

10 この DLL のコピーを現在のソ リ ューシ ョ ンの Debug または Release 出力ディ レク ト リのいずれかに配置します。

5-5

Page 126: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Microsoft Enterprise Library の使用

アプリケーション コードでのデータ アクセス アプリケーション ブロックの使用

これで DAAB の構成が終わったので、 この DAAB 上にアプリ ケーシ ョ ン

を構築するこ とができます。

下の例では、 DAAB MyPSQL および DatabaseFactory を使用して PervasivePSQL データ ソースによって支持される Database オブジェク トのインスタ

ンスを生成します。

using System;using System.Data.Common;using System.Text;using Microsoft.Practices.EnterpriseLibrary.Data;using System.Data;

namespace DAAB_Test_App_1{ class Program { static void Main(string[] args) {

Database database = DatabaseFactory.CreateDatabase("MyPSQL"); DataSet ds = database.ExecuteDataSet(CommandType.TableDirect, "SQLCOMMANDTEST_NC_2003SERVER_1");

} }}

これで、 Microsoft Enterprise Library DAAB コーディング パターンは自由に

使用できます。

5-6

Page 127: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

アプリケーシ ョ ン ブロックを使用する上でのその他のリソース

アプリケーシ ョ ン ブロックを使用する上でのその他のリソース

次のソースは、アプリ ケーシ ョ ン ブロ ッ ク使用に関する追加情報を提供し

ます。

Microsoft patterns & practices Developer Center にはアプリ ケーシ ョ ン ブロ ッ クに関するセクシ ョ ンが含まれています。

データ アクセス アプリ ケーシ ョ ン ブロ ッ クを使用する作業やアプリ

ケーシ ョ ンの概要については、 次のサイ ト で "Introduction to the DataAccess Application Block" を参照してください。

http://msdn.microsoft.com/en-us/library/cc309168.aspx

Microsoft Channel 9 Enterprise Library FAQ にはアプリ ケーシ ョ ン ブロ ッ クの使用に関する概念情報が含まれています。 次のサイ ト を参照

して ください。

http://channel9.msdn.com/wiki/default.aspx/Channel9.EnterpriseLibraryFAQ

5-7

Page 128: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Microsoft Enterprise Library の使用

5-8

Page 129: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

6

サポート される .NET オブジェクト

.NET オブジェク トの使用

ADO.NET 2.0 は、アプリ ケーシ ョ ンおよびデータ ソース間のよ り汎用的な

追加インターフェイスを提供する新しいク ラスのセッ ト を提供します。

ADO.NET 2.0 よ り以前に使われていたものは、 アプリ ケーシ ョ ンが使用す

るデータ プロバイダーのそれぞれの特定のインスタンスに、データ プロバ

イダーをよ り密接な要因の 1 つと して含めるこ とを選択しました。 それと

は対照的に、ADO.NET 2.0 は、今日の ODBC および JDBC が行うのと非常

によ く似た、 1 つの API でアプリ ケーシ ョ ンに異種のデータ ソースのセッ

トの操作を許可する新しいベース ク ラスのセッ ト を提供します。 つま り、

ADO.NET 2.0 では、すべてのデータ ク ラスはベース ク ラスから派生し、特

定の専用名前空間である System.Data.Common に存在します。

データ プロバイダーでは、 以下が使用できます。

「.NET のベース ク ラス」 (6-2 ページ)

「データ プロバイダー固有のク ラス」 (6-3 ページ)

「Pervasive Common Assembly ク ラス」 (6-20 ページ)

6-1

Page 130: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

.NET のベース クラス

ADO.NET 1.0 および ADO.NET 1.1 データ プロバイダーのインターフェイ

スは、 アプ リ ケーシ ョ ンの互換性を維持するために構築されま した。

ADO.NET 2.0 のベース ク ラスは以下の追加機能を提供します。

DbCommand

DbCommandBuilder

DbConnection

DbDataAdaptor

DbDataReader

DBDataPermission

DbParameter

DbParameterCollection

DbConnectionStringBuilder

DbTransaction

日々のプログラ ミ ングという観点から、 これらのク ラスは抽象実装と して

提供されます。つま り、これらは直接インスタンス化できず、プロバイダー

フ ァ ク ト リ で使用する必要があ り ます。 各データ プ ロバ イ ダーは、

DbFactory ク ラスから派生する一連の静的メ ソ ッ ドを含む PsqlFactory のよ

うな Factory ク ラスを提供する必要があ り ます。 これらの静的メ ソ ッ ドは、

それぞれベース ク ラスのインスタンスを生成するファ ク ト リ メ ソ ッ ドで

す。

これは、 データ プロバイダーのインス トール時に .NET Framework に登録

されます。 これによ り、 共通 .NET Framework DbFactory は、 アプ リ ケー

シ ョ ンが必要とする登録済みデータ プロバイダーを見つけて、データ ソー

スへの接続を確立するための共通メカニズムを提供するこ とができます。

終的に、.NET Framework は ADO.NET データ ソース用の完全に成熟した

共通プログラ ミ ング API を提供します。

6-2

Page 131: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

データ プロバイダー固有のクラス

Pervasive PSQL データ プロバイダーはすべての .NET パブリ ッ ク オブジェ

ク ト をサポート しています。 Pervasive PSQL データ プロバイダーでは、 固

有のプレフ ィ ッ クス 「Psql 」 を .NET のパブリ ッ ク オブジェク トに付けま

す (例 : PsqlCommand)。

この付録では、 以下のオブジェク トについて説明します。

「PsqlBulkCopy」 (6-3 ページ)

「PsqlBulkCopyColumnMapping」 (6-4 ページ)

「PsqlBulkCopyColumnMappingCollection」 (6-4 ページ)

「PsqlCommand オブジェク ト 」 (6-4 ページ)

「PsqlCommandBuilder オブジェク ト 」 (6-7 ページ)

「PsqlConnection オブジェク ト 」 (6-9 ページ)

「PsqlConnectionStringBuilder オブジェク ト 」 (6-11 ページ)

「PsqlDataAdapter オブジェク ト 」 (6-11 ページ)

「PsqlDataReader オブジェク ト 」 (6-12 ページ)

「PsqlError オブジェク ト 」 (6-13 ページ)

「PsqlErrorCollection オブジェク ト 」 (6-13 ページ)

「PsqlException オブジェク ト 」 (6-14 ページ)

「PsqlFactory オブジェク ト 」 (6-15 ページ)

「PsqlInfoMessageEventArgs オブジェク ト 」 (6-15 ページ)

「PsqlParameter オブジェク ト 」 (6-16 ページ)

「PsqlParameterCollection オブジェク ト 」 (6-17 ページ)

「PsqlTrace オブジェク ト 」 (6-18 ページ)

「PsqlTransaction オブジェク ト 」 (6-19 ページ)

パブ リ ッ ク オブジェ ク ト に関する詳細については、 Microsoft .NETFramework Version 2.0 SDK のドキュ メン ト を参照してください。

PsqlBulkCopyPsqlBulkCopy オブジェク トは ADO.NET Bulk API に類似した API パターン

を使用し、プロバイダー固有のプロパティやメ ソ ッ ドを持ちません。サポー

ト されるプロパティおよびメ ソ ッ ドについては、データ プロバイダーのオ

ンライン ヘルプおよび Microsoft .NET Framework SDK のマニュアルを参照

してください。

6-3

Page 132: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

PsqlBulkCopyColumnMappingPsqlBulkCopyColumnMapping オブジェク トは ADO.NET Bulk API に類似し

た API パターンを使用し、 プロバイダー固有のプロパティやメ ソ ッ ドを持

ちません。 サポート されるプロパティおよびメ ソ ッ ドについては、 データ

プロバイダーのオンライン ヘルプおよび Microsoft .NET Framework SDK のマニュアルを参照して ください。

PsqlBulkCopyColumnMappingCollectionPsqlBulkCopyColumnMappingCollection オ ブ ジ ェ ク ト は MicrosoftSqlBulkCopyColumnMappingCollection ク ラスに類似した API パターンに従

い、 プロバイダー固有のプロパティやメ ソ ッ ドを持ちません。 サポート さ

れるプロパティおよびメ ソ ッ ドについては、データ プロバイダーのオンラ

イン ヘルプおよび Microsoft .NET Framework SDK のマニュアルを参照して

ください。

PsqlCommand オブジェク ト

表 6-1 では、PsqlCommand オブジェク トのパブリ ッ ク プロパティについて

説明します。

表 6-1 PsqlCommand オブジェク トのパブリ ック プロパティ

プロパティ 説明

AddRowID ROWID を SQL ステート メン ト選択リ ス トの一部と して追加します。

True に設定した場合、 PsqlCommandBuilder を使用する際には、 よ り効率的な

Insert、 Delete、 および Update コマンドを生成するために、 ROWID に返された値

が利用されます。

False (デフォル トの初期値) に設定する と、 データ プロバイダーは ROWID 列を選択リ ス トに追加しません。

ArrayBindCount 使用されるパラ メーターの行数を指定します。アプ リ ケーシ ョ ンでは、パラ メー

ター配列バイン ドを使用するコマン ドを実行する前にこのプロパテ ィ を設定し

ておく必要があ り ます。この数はパラ メーター値ごとに設定される各配列の長さ

と等し くなるよ うにして ください。

デフォルトの初期値は 0 で、アプ リ ケーシ ョ ンはパラ メーター配列バインドを使

用しません。

6-4

Page 133: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

ArrayBindStatus 行の状態値の配列を返します。 このプロパティは、パラ メーター配列バインドを

使用するコマンドを実行した後、アプ リ ケーシ ョ ンで行ごとの状態を調べるこ と

ができるよ うにします。 このプロパティの型は PsqlRowStatus の配列です。

パラ メーター配列バイン ドは単独のア ト ミ ッ ク操作と して実行されます。 つま

り、操作が成功した場合はすべてのエン ト リに OK が設定されますが、失敗した

場合にはどのエン ト リにも OK が設定されないという こ とです。

PsqlRowStatus 列挙で設定可能な値は以下のとおりです。

OK。操作は正常に終了しました。 エン ト リはすべて OK と してマーク されま

す。

Failed。 操作は失敗しました。 データ プロバイダーでは、 エラーが発生した

行以外のすべてのステータス エン ト リにこの値を割り当てます。

SchemaViolation。操作が失敗した場合、データ プロバイダーはこの値をエラー

が発生した行に割り当てます。

BindByName ス ト アド プロシージャの実行時にデータ プロバイダーが名前付きパラ メーター

をどのよ うに処理するかを指定します。アプ リ ケーシ ョ ンは、ス ト アド プロシー

ジャに対して名前付きパラ メーターまたはパラ メーターのデフォル ト値を使用

できます。

True に設定する と、データ プロバイダーは Pervasive PSQL サーバーへのパラ メー

ター バインドに PsqlParameter オブジェク トで提供されるパラ メーターの名前を

使用します。

別の方法と して、ユーザーは以下の方法のいずれかを使用して名前付きパラ メー

ターのデフォルト値を指定するこ とができます。

アプ リ ケーシ ョ ンは名前付きパラ メーターを使用してパラ メーターをバイン

ド し ま す が、 ア プ リ ケ ー シ ョ ン が デ フ ォ ル ト 値 を 使 用 し た い

PsqlParameterCollection には PsqlParameter オブジェク ト を追加しません。

アプリ ケーシ ョ ンは PsqlParameter オブジェク トの Value プロパティにヌルを

設定します。データ プロバイダーはこのパラ メーターをサーバーに送信せず、

ス ト アド プロシージャ実行時にパラ メーターのデフォルト値を使用します。

BindByName に True を設定し て Parameter Mode 接続文字列オプシ ョ ンが

BindByName または BindByOrdinal と定義されている場合、 接続文字列に定義さ

れたこれらの値は Command オブジェク トの存続期間中、 無効にされます。

False (デフォル トの初期値) に設定する と、データ プロバイダーは PsqlParameterオブジェク トで提供されるパラ メーターの名前を無視し、パラ メーターが CreateProcedure ステート メン トで指定されたのと同じ順序であるものと仮定します。

CommandText データ ソースで実行するテキス ト コマンドを取得または設定します。

ス ト ア ド プロシージャを使 う場合、 CommandText にはそのス ト ア ド プロシー

ジャの名前を設定します。 たとえば次のよ うにな り ます。

myCmd.CommandText = "GetEmpSalary";

表 6-1 PsqlCommand オブジェク トのパブリ ック プロパティ

プロパティ 説明

6-5

Page 134: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

CommandTimeout コマンド実行の試行を終了し、エラーを生成するまでの待機時間を取得または設

定します。

デフォルトの初期値は 30 秒です。

CommandTimeout プロパティには、 サーバーで 大のデフォルトのタイムアウ ト

値よ り も大きな値を設定する こ と をお勧めします。 これによって、 アプ リ ケー

シ ョ ンはタ イムアウ ト した場合にもっ と意味のある応答を得られるよ うにな り

ます。

CommandType CommandText プロパティの解釈方法を指示または指定します。

ス ト アド プロシージャを使用するには、 CommandType に StoredProcedure を設定

します。

Connection この IDbCommand のインスタンスで使用する IDbConnection を取得または設定し

ます。

Parameters PsqlParameterCollection を取得します。

RowSetSize この Command オブジェク トで実行されるクエ リによって返される行数を、 実行

時に指定される値までに制限します。 Read-Write プロパテ ィは符号付き整数で

す。

有効な値は 0 から 2147483647 です。

0 (デフォルトの初期値) を設定する と、 データ プロバイダーは返される行数を

制限しません。

StatementCacheBehavior ステート メン ト キャ ッシュの動作を取得、 または PsqlStatementCacheBehavior 列挙のいずれかの値のステート メ ン ト キャ ッシュ動作を設定します。 詳細につい

ては、「ステート メン ト キャ ッシングの有効化」(3-6ページ)を参照してください。

Implicit (デフォル ト ) に設定する と、 Statement Cache Mode 接続文字列オプシ ョ

ンに Auto が設定され、 ステート メン ト キャ ッシュは暗黙的に行われます。

Cache に設定して Statement Cache Mode 接続文字列オプシ ョ ンに ExplicitOnly を設定する と、 ステート メン トは Cache がキャ ッシュされている と認識します。

DoNotCache に設定する と、 ステート メン ト キャ ッシュは行われません。

Transaction PsqlCommand オブジェ ク ト を実行する ト ランザクシ ョ ンを取得または設定しま

す。

UpdatedRowSource DataAdapter の Update メ ソ ッ ドで DataRow が使用されたと き、コマンドの結果を

DataRow に適用する方法を取得または設定します。

UpdateBatchSize プロパテ ィ に 1 以外の値が設定される と、 UpdateCommand、DeleteCommand および InsertCommand の UpdatedRowSource プロパティには Noneまたは OutputParameters が設定されます。

None を設定する と、 返されたパラ メーターや行は無視されます。

OutputParameters を設定する と、 出力パラ メーターは DataSet の変更された行に

マップされます。

表 6-1 PsqlCommand オブジェク トのパブリ ック プロパティ

プロパティ 説明

6-6

Page 135: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

表 6-2 では、PsqlCommand オブジェク トのパブリ ッ ク メ ソ ッ ドについて説

明します。

PsqlCommandBuilder オブジェク ト PsqlCommandBuilder オブジェク ト を使用する と、パフォーマンスに悪影響

を及ぼす恐れがあ り ます。同時実行が制限されるため、PsqlCommandBuilderでは効率のよい SQL ステート メン ト を生成するこ とができません。多くの

場合、エンド ユーザーの方が、PsqlCommandBuilder オブジェク トで生成さ

れるものよ り効率のよい Update ステート メ ン トや Delete ステート メ ン ト

を作成するこ とができます。

表 6-3 では、PsqlCommandBuilder オブジェク トのパブリ ッ ク プロパティに

ついて説明します。

表 6-4 では、PsqlCommandBuilder オブジェク トのパブリ ッ ク メ ソ ッ ドにつ

いて説明します。

表 6-2 PsqlCommand オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

Cancel IDbCommand の実行のキャンセルを試みます。

CreateParameter IDbDataParameter オブジェク トの新しいインスタンスを作成します。

Dispose コンポーネン トで使用した リ ソースを解放します。 オーバーロード されます。

ExecuteNonQuery PsqlConnection オブジェク トに対して SQL ステート メン ト を実行し、影響を受け

た行数を返します。 これは結果を返さないコマンドを対象と したメ ソ ッ ドです。

ExecuteReader 接続に対して CommandText を実行し、 IDataReader を構築します。

ExecuteScalar クエ リ を実行し、 そのクエ リが返す結果セッ ト の 初の行の 初の列を返しま

す。 残りの行も列も無視されます。

Prepare Pervasive PSQL のインスタンスに対する準備済みのコマンドを作成します。

メ モ: Prepare メ ソ ッ ドは本リ リースのデータ プロバイダーでは無効です。

表 6-3 PsqlCommandBuilder オブジェク トのパブリ ック プロパティ

プロパティ 説明

DataAdapter この PsqlCommandBuilder に関連付けられている PsqlDataAdapter オブジェク ト を

取得または設定します。

6-7

Page 136: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

表 6-4 PsqlCommandBuilder オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

DeriveParameters PsqlCommand で指定したス ト ア ド プロシージャのパラ メーター情報を取得し、

指定した PsqlCommand オブジェク トの Parameters コレクシ ョ ンにパラ メーター

を格納します。

GetDeleteCommand アプリ ケーシ ョ ンが PsqlDataAdapter に対して Delete を呼び出したと きに、 デー

タベースで削除処理を実行するための、 自動生成された PsqlCommand オブジェ

ク ト を取得します。

GetInsertCommand アプリ ケーシ ョ ンが PsqlDataAdapter に対して Insert を呼び出したと きに、データ

ベースで挿入処理を実行するための、 自動生成された PsqlCommand オブジェク

ト を取得します。

GetUpdateCommand アプリ ケーシ ョ ンが PsqlDataAdapter に対して Update を呼び出したと きに、 デー

タベースで更新処理を実行するための、 自動生成された PsqlCommand オブジェ

ク ト を取得します。

QuoteIdentifier 正しいカタログの中に引用符で囲まれていない識別子がある と、その識別子の引

用符で囲まれた正しい形式を返します。識別子内の埋め込み引用符もすべて適切

にエスケープされます。

UnquoteIdentifier 引用符で囲まれた識別子がある と、その識別子の引用符で囲まれていない正しい

形式を返します。識別子内の埋め込み引用符のエスケープ処理も適切に除かれま

す。

6-8

Page 137: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

PsqlConnection オブジェク ト 表 6-5 では、 PsqlConnection オブジェク トのパブリ ッ ク プロパティについ

て説明します。 いくつかのプロパティでは、 対応する接続文字列オプシ ョ

ンに指定 さ れた値を返し ます。 接続文字列オプシ ョ ン と は異な り、

PsqlConnection プロパティ名にはスペースは含められません。

表 6-5 PsqlConnection オブジェク トのパブリ ック プロパティ

プロパティ 説明

ConnectionString データベースを開くために使用する文字列を取得または設定します。設定可能な

値の説明については、「接続文字列オプシ ョ ン」(2-4 ページ)を参照してください。

ConnectionTimeout データ プロバイダーが接続の試行を中断してエラーを生成するまでの、 接続の

確立を待機する時間を取得または設定します。

ConnectTimeout プロパティ または Connection Timeout 接続文字列オプシ ョ ンを使

用する と、 接続がタイムアウ トするのを待つ時間を設定できます。

接続フェイルオーバーが有効になっている (AlternateServers プロパテ ィに代替

データベース サーバーが 1 つ以上定義されている) 場合は、 代替サーバーへの

接続の試行ごとにこのプロパティが適用されます。接続の再試行も有効になって

いる (Connection Retry Count 接続文字列オプシ ョ ンに 0 よ り大きい整数が設定さ

れている) 場合は、再試行ごとに ConnectionTimeout プロパティが適用されます。

Database 現在のデータベースの名前、または接続を開く と きに使用するデータベースの名

前を取得します。

Host Host 接続文字列オプシ ョ ンに指定された値を返します。 読み取り専用です。

Port Port 接続文字列オプシ ョ ンに指定された値を返します。 読み取り専用です。

ServerDSN Server DSN 接続文字列オプシ ョ ンに指定された値を返します。 読み取り専用で

す。 Server DSN は ODBC エンジン DSN ではなく、 Pervasive PSQL データベース

名を指定します。

ServerName Server Name 接続文字列オプシ ョ ンに指定された値を返します。 読み取り専用で

す。

ServerVersion このオブジェク ト が現在接続している Pervasive PSQL サーバーのバージ ョ ンが

示された文字列を返します。

PsqlConnection オブジェク トが現在接続されていない場合、データ プロバイダー

では InvalidOperation 例外を生成します。

State 現在の接続の状態を取得します。

StatisticsEnabled 統計情報の収集を有効にします。

True に設定する と、 現在の接続に関する統計情報の収集が有効になり ます。

6-9

Page 138: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

表 6-6 では、 PsqlConnection オブジェク トのパブリ ッ ク メ ソ ッ ドについて

説明します。

PsqlConnection オブジェク トの InfoMessage イベン ト を使用する と、データ

ベースから警告や情報メ ッセージを取得するこ とができます。 データベー

スからエラーが返される場合は、 例外が発生します。 データベース サー

バーから送られる警告や情報メ ッセージを処理したいク ラ イアン ト は、

PsqlInfoMessageEventHandler デリゲート を作成してこのイベン トに登録し

てください。

InfoMessage イ ベ ン ト で は、 こ の イ ベ ン ト に 関す る デー タ を 含む

PsqlInfoMessageEventArgs の引数を受け取り ます。

表 6-6 PsqlConnection オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

BeginTransaction データベース ト ランザクシ ョ ンを開始します。

オーバーロード された BeginTransaction(IsolationLevel) メ ソ ッ ドの使用時、データ

プロバイダーでは ReadCommitted および Serializable 分離レベルが使用できます。

詳細については、 「分離レベル」 (2-28 ページ) を参照して ください。

ChangeDatabase 開いている Connection オブジェク トの現在のデータベースを変更します。

ClearAllPools データ プロバイダーの接続プールを空にします。

ClearPool 接続に関連付けられている接続プールを空にします。

呼び出し時、 接続プールに関連付けられている追加の接続が使用中である場合、

それらには適切なマーク付けがされ、 Close を呼び出した時点で破棄されます。

Close データベースへの接続を閉じます。

CreateCommand PsqlConnection に関連付けられている PsqlCommand オブジェク ト を作成し、返し

ます。

Dispose PsqlConnection オブジェク トで使用した リ ソースを解放します。

Open PsqlConnection オブジェク ト の ConnectionString プロパティで指定した設定を使

用して、 データベース接続を開きます。

ResetStatistics 接続上の現在の統計収集セッシ ョ ンのすべての値をゼロにリセッ ト します。

接続が閉じられて接続プールに戻る と、統計情報収集はオフに切り替えられてカ

ウン トが リセッ ト されます。

RetrieveStatistics 統計情報収集が有効になっている接続の一連の統計情報を取得します。返される

" 名前 = 値 " の組み合わせは、 このメ ソ ッ ドが呼び出された時点の接続状態のス

ナップシ ョ ッ ト を形成します。

6-10

Page 139: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

PsqlConnectionStringBuilder オブジェク ト PsqlConnectionStringBuilder プロパティ名は PsqlConnection オブジェク トの

接続文字列オプシ ョ ン名と同じです。 ただし、 接続文字列オプシ ョ ン名は

単語の間にスペースを入れるこ とができます。 たとえば、 接続文字列オプ

シ ョ ン Min Pool Size はプロパティ名 MinPoolSize に相当します。 接続文字

列オプシ ョ ンの詳細については、「接続文字列オプシ ョ ン」 (2-4 ページ) を

参照して ください。

PsqlConnectionStringBuilder オブジェク トにはプロバイダー固有のメ ソ ッ ド

はあ り ません。サポート される メ ソ ッ ドの情報については、データ プロバ

イダーのオンライン ヘルプおよび Microsoft .NET Framework SDK ドキュ メ

ン ト を参照して ください。

PsqlDataAdapter オブジェク ト

PsqlDataAdapter オブジ ェ ク ト は PsqlCommand オブジ ェ ク ト を使って

Pervasive PSQL データベースに対して SQL コマン ド を実行し、 取得した

データを DataSet に読み込んだり、 DataSet で変更されたデータをデータ

ベース と照合したり します。

表 6-7 では、 PsqlDataAdapter オブジェク トのパブリ ッ ク プロパティについ

て説明します。

表 6-7 PsqlDataAdapter オブジェク トのパブリ ック プロパティ

プロパティ 説明

UpdateBatchSize バッチで実行可能なコマンド数を指定する値を取得または設定します。

アプ リ ケーシ ョ ンで切断された DataSet を使用してこれらの DataSet を更新する

場合、 このプロパテ ィ の値を 1 よ り大き く設定する こ とによ り、 積極的にパ

フォーマンスを操作するこ とができます。 デフォルトでは、データ プロバイダー

は利用可能な 大バッチ サイズの使用を試みます。 ただし、 これがアプ リ ケー

シ ョ ンでの 適なパフォーマンスに一致する とは限り ません。 DataSet で通常更

新する行数に基づいて値を設定します。 たとえば、 50 未満の行を更新する場合、

このプロパティの推奨設定は 25 です。

0 に設定する と、 PsqlDataAdapter はデータ ソースで利用可能な 大バッチ サイ

ズを使用し ます。 InsertCommand、 UpdateCommand、 および DeleteCommand のUpdatedRowSource プロパティは、 None または OutputParameters に設定する必要

があ り ます。

1 に設定する と、 バッチ更新は無効になり ます。

1 よ り大きい値に設定する と、バッチ内で指定した数のコマンドが実行されます。

InsertCommand、UpdateCommand、および DeleteCommand の UpdatedRowSource プロパティは、 None または OutputParameters に設定する必要があ り ます。

DeleteCommand Pervasive PSQL データ ソースからレコードを削除するための SQL ステート メン

ト を取得または設定します。

InsertCommand Pervasive PSQL データ ソースに新しいレコードを挿入するための SQL ステート

メン ト を取得または設定します。

6-11

Page 140: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

PsqlDataReader オブジェク ト PsqlDataReader オブジェク トは、 データベースから読み取り専用のレコー

ドを取得する前方スクロール カーソルです。PsqlDataAdapter を使用するよ

り もパフォーマンスは高くな り ますが、 結果セッ トは変更できません。

表 6-8 では、 PsqlDataReader オブジェク トのパブリ ッ ク プロパティについ

て説明します。

表 6-9 では、 PsqlDataReader オブジェク トのパブリ ッ ク メ ソ ッ ドの一部に

ついて説明します。

SelectCommand Pervasive PSQL データベースのレコードを選択するための SQL ステート メ ン ト

を取得または設定します。

UpdateCommand データ ソースのレコードを更新するための SQL ステート メン ト を取得または設

定します。

表 6-7 PsqlDataAdapter オブジェク トのパブリ ック プロパティ

プロパティ 説明

表 6-8 PsqlDataReader オブジェク トのパブリ ック プロパティ

プロパティ 説明

Depth 現在の行の入れ子の深さを示す値を取得します。

HasRows この PsqlDataReader に 1 行以上の行が格納されているかど うかを示す値を取得し

ます。

IsClosed データ リーダーが閉じているかど うかを示す値を取得します。

RecordsAffected SQL ステート メン トの実行によって変更、挿入または削除された行数を取得しま

す。

表 6-9 PsqlDataReader オブジェク トでサポート されるメ ソッ ド

メ ソッ ド 説明

Close DataReader を閉じます。 DataReader オブジェ ク ト の使用を終了する と きは必ず

Close メ ソ ッ ドを呼び出してください。

GetSchemaTable PsqlDataReader の列メ タデータを記述する DataTable を返します。 詳細について

は、 表 7-1 を参照して ください。

NextResult バッチ SQL ステート メン トの結果を読み込むと きに、 データ リーダーを次の結

果に進めます。

Read IDataReader を次の結果に進めます。

6-12

Page 141: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

PsqlError オブジェク ト PsqlError オブジェク トは、 Pervasive PSQL サーバーで生成されたエラーや

警告に関する情報を収集します。

表 6-10 では、 PsqlError オブジェク トのパブリ ッ ク プロパティについて説

明します。

PsqlErrorCollection オブジェク ト PsqlErrorCollection オブジェ ク ト は、 PsqlException によ って作成され、

Pervasive PSQL サーバーによって生成されたすべてのエラーを格納します。

表 6-11 では、 PsqlErrorCollection オブジェク トでサポート されるプロバイ

ダー固有のパブリ ッ ク プロパティについて説明します。サポート されるそ

の他のプロパティおよびメ ソ ッ ドの情報については、データ プロバイダー

のオンライン ヘルプおよび Microsoft .NET Framework SDK ドキュ メン ト を

参照して ください。

表 6-12 では、 PsqlErrorCollection オブジェク トのパブリ ッ ク メ ソ ッ ドにつ

いて説明します。

表 6-10 PsqlError オブジェク トのパブリ ック プロパティ

プロパティ 説明

Message Pervasive PSQL サーバーから返されるエラー メ ッセージ テキス ト を取得します。

Number Pervasive PSQL から返されるエラー番号を取得します。

SQLState Pervasive PSQL データ プロバイダーが例外をスローしたと きに SQLState の文字

列表記を取得します。 例外に対応するエラーがない場合は 0 です。 このプロパ

ティは読み取り専用です。

表 6-11 PsqlErrorCollection オブジェク トのパブリ ック プロパティ

プロパティ 説明

Count Pervasive PSQL サーバーで生成される PsqlError オブジェク トの数を取得します。

表 6-12 PsqlErrorCollection オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

CopyTo PsqlError オブジェク ト を ErrorCollection から指定した配列にコピーします。

GetEnumerator 指定した配列の IEnumerator インターフェイスを返します。

6-13

Page 142: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

PsqlException オブジェク ト プロバイダー固有の例外は System.Data interface インターフェイスから直

接派生します。 System.Exception オブジェク ト全般で直接使用できるのは、

Message プロパテ ィ などのパブ リ ッ ク プロパテ ィおよびメ ソ ッ ドのみで

す。 SQLState および Number プロパティは、 プロバイダー固有のコードを

介して、 または参照を使用してのみアクセスできます。

ADO.NET 2.0 は、 DbException ク ラスに新しいプロパティ Data を導入しま

した。 このプロパティは、 例外に関する追加のユーザー定義情報を提供す

る、 キーと値の組のコレクシ ョ ンを返します。 Pervasive PSQL データ プロ

バイダーは、 SQLState、 Number、 および ErrorPosition などのキー / 値ペア

のコレクシ ョ ンを取得します。

Psql.Data.SqlClient プレフ ィ ッ クスは各キーに適用されます。 たとえば、 次

のよ うにな り ます。

Psql.Data.SqlClient.Data["SQLState"] = 28000;

複数のエラーが存在する場合、表 6-13 で説明しているプロパティは 後に

生成されたエラーに対して適用されます。 複数のエラーが発生したかど う

かを判断するには、 このオブジェ ク ト の Errors プロパテ ィ で返される

PsqlErrorCollection の Count プロパティをチェッ ク します。詳細については、

「PsqlErrorCollection オブジェク ト 」 (6-13 ページ) を参照してください。

表 6-13 PsqlException オブジェク トのパブリ ック プロパティ

プロパティ 説明

Errors PsqlError オブジェク トの うち 1 つの PsqlErrorCollection を取得または設定します。

Message Pervasive PSQL サーバーから返されるエラー メ ッセージ テキス ト を指定します。

Number Pervasive PSQL サーバーから返される数を取得または設定します。

SQLState Pervasive PSQL データ プロバイダーが例外をスローしたと きに SQLState の文字

列表記を返します。 例外に対応するエラーがない場合は 0 です。 このプロパティ

は読み取り専用です。

6-14

Page 143: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

PsqlFactory オブジェク ト プロバイダー ファ ク ト リ ク ラスを使用する と、ユーザーは汎用オブジェク

トのプログラムを作成できます。 DbProviderFactory からインスタンス化す

れば、 ファ ク ト リが正しいタイプの具体的なク ラスを生成します。

表 6-14 は、Pervasive PSQL データ プロバイダーの選択や DbProviderFactoryのインスタンス化を調整するために使用される静的メ ソ ッ ドを示していま

す。

PsqlInfoMessageEventArgs オブジェク ト PsqlInfoMessageEventArgs オブジェク トは、 PsqlInfoMessageEventHandler に入力と して渡され、 Pervasive PSQL サーバーで生成される警告に関する情

報を格納します。

表 6-15 では、 PsqlInfoMessageEventArgs オブジェク トのパブリ ッ ク プロパ

ティについて説明します。

表 6-14 PsqlFactory オブジェク トのメ ソッ ド

メ ソッ ド 説明

CreateCommand 厳密に型指定された DbCommand インスタンスを返します。

CreateCommandBuilder 厳密に型指定された DbCommandBuilder インスタンスを返します。

CreateConnection 厳密に型指定された DbConnection インスタンスを返します。

CreateConnectionStringBuilder 厳密に型指定された DbConnectionString インスタンスを返します。

CreateDataAdapter 厳密に型指定された DbDataAdapter インスタンスを返します。

CreateDataSourceEnumerator 厳密に型指定された PsqlDataSourceEnumerator インスタンスを返します。

CreateParameter 厳密に型指定された DbParameter インスタンスを返します。

表 6-15 PsqlInfoMessageEventArgs のパブリ ック プロパティ

プロパティ 説明

Errors Pervasive PSQL サーバーか ら送られる警告のコ レ ク シ ョ ンを格納する

PsqlErrorCollection を指定します。詳細については、「PsqlErrorCollection オブジェ

ク ト 」 (6-13 ページ) を参照してください。

Message Pervasive PSQL サーバーから返される 新のテキス ト メ ッセージを返します。複

数の警告が発生したかど うかを判断するには、アプリ ケーシ ョ ンはこのオブジェ

ク トの Errors プロパティで返される PsqlErrorCollection の Count プロパティを調

べる必要があ り ます。

6-15

Page 144: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

PsqlParameter オブジェク ト PsqlParameter オブジェ ク トは PsqlCommand オブジェ ク ト のパラ メーター

を表します。

表 6-16 では、 PsqlParameter オブジェク トのパブリ ッ ク プロパティについ

て説明します。

表 6-16 PsqlParameter オブジェク トのパブリ ック プロパティ

プロパティ 説明

ArrayBindStatus PsqlParameterStatus エン ト リの配列内のすべての値を null と してバインドする

必要があ るかど う かを決定し ます。 PsqlParameterStatus 列挙はエン ト リ

NullValue を含んでいます。

このプロパテ ィ を設定しなければ、 値は null にな り ません。 配列の長さは、

PsqlCommand オブジェク トの ArrayBindCount プロパティで指定された値と一

致する必要があ り ます (「PsqlCommand オブジェク ト 」 (6-4 ページ) を参照し

て ください)。

デフォルトの初期値は null です。

DbType パラ メーターの DbType を取得または設定します。

Direction パラ メーターが入力専用、出力専用、双方向、あるいはス ト アド プロシージャ

の戻り値パラ メーターかど うかを示す値を取得または設定します。

IsNullable パラ メーターが null 値を受け入れるかど うかを示す値を取得または設定しま

す。

ParameterName PsqlParameter オブジェク トの名前を設定または取得します。

Precision Value プロパティを表す場合の 大桁数を取得または設定します。

Scale Value プロパティを解決する小数点以下の桁数を取得または設定します。

Size 列内のデータの 大サイズをバイ ト単位で取得または設定します。

SourceColumn DataSet に割り当てられており、Value プロパティの読み込みまたは返却に使用

されるソース列の名前を取得または設定します。

SourceColumnNullMapping ソース列がヌル値を許可するかど うかを示す値を設定または取得します。

6-16

Page 145: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

PsqlParameterCollection オブジェク ト PsqlParameterCollection オブジェ ク ト は PsqlCommand に関するパラ メー

ターのコレクシ ョ ンです。また、DataSet の列へのマッピングも含まれてい

ます。

表 6-17 では、 PsqlParameterCollection オブジェ ク ト のパブ リ ッ ク プロパ

ティについて説明します。

SourceVersion Value プロパティの読み込み時に使用する DataRowVersion を取得または設定

します。

Value パラ メーターの値を取得または設定します。

デフォルトの初期値は null です。

メ モ: 配列バインドが有効な場合 (「PsqlCommand オブジェク ト 」 (6-4 ページ)

の ArrayBindCount プロパティを参照して ください)、 このプロパティは値の配

列と して指定されます。 各配列の長さは ArrayBindCount プロパティの値と一

致させる必要があ り ます。 バイナリ型の列に配列の値を指定する場合、 その

データは実質的には byte[] と して指定されます。これはバイ トの配列の配列で

す。 データ プロバイダーは複数のパラ メーターにバインドするパラ メーター

配列を使用するよ うな場合には、 「ジャグ (Jagged)」 配列を予測します。

ス ト アド プロシージャ パラ メーターに null を設定する と、 データ プロバイ

ダーはそのパラ メーターをサーバーに送り ません。 代わりに、 ス ト アド プロ

シージャを実行する際はパラ メーターのデフォルト値が使用されます。

表 6-16 PsqlParameter オブジェク トのパブリ ック プロパティ

プロパティ 説明

表 6-17 PsqlParameterCollection のパブリ ック プロパティ

プロパティ 説明

Count コレクシ ョ ン内の PsqlParameter オブジェク トの数を取得します。

IsFixedSize PsqlParameterCollection が固定サイズかど うかを示す値を取得します。

IsReadOnly PsqlParameterCollection が読み取り専用かど うかを示す値を取得します。

IsSynchronized PsqlParameterCollection がスレッ ド セーフかど うかを示す値を取得します。

Item 指定されたインデッ クス位置にあるパラ メーターを返します。 C# の場合、 この

プロパティは IDataParameterCollection ク ラス用のインデクサーです。

SynchRoot PsqlParameterCollection への同期アクセスに使用するオブジェク ト を取得します。

6-17

Page 146: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

表 6-18 では、 PsqlParameterCollection オブジェク トのパブリ ッ ク メ ソ ッ ド

について説明します。

PsqlTrace オブジェク ト PsqlTrace オブジェ ク ト は、 開発時に問題をデバッグするためアプ リ ケー

シ ョ ンによって作成されます。PsqlTrace オブジェク トのプロパティを設定

する と、その値を優先し環境変数の設定を無効にします。詳細については、

「接続文字列オプシ ョ ン」 (2-4 ページ) を参照して ください。 アプ リ ケー

シ ョ ンが 終的なものになったら、PsqlTrace オブジェク トへの参照を必ず

削除してください。

次のコードでは MyTrace.txt という名前の Trace オブジェク ト を作成してい

ます。その結果、データ プロバイダーへの呼び出しはすべてそのファイル

へト レースされます。

PsqlTrace MyTraceObject = new PsqlTrace(); MyTraceObject.TraceFile="C:\\MyTrace.txt"; MyTraceObject.RecreateTrace = 1; MyTraceObject.EnableTrace = 1;

表 6-19 では、 PsqlTrace オブジェク トのパブリ ッ ク プロパティについて説

明します。

表 6-18 PsqlParameterCollection オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

Contains コレクシ ョ ン内のパラ メーターに、 指定したソース テーブル名が格納されてい

るかど うかを示す値を取得します。

IndexOf コレクシ ョ ン内における IDataParameter の位置を取得します。

RemoveAt コレクシ ョ ンから IDataParameter を削除します。

表 6-19 PsqlTrace のパブリ ック プロパティ

プロパティ 説明

EnableTrace 1 以上に設定する と、 ト レースが有効になり ます。

デフォルトの初期値は 0 で、 ト レースは無効です。

RecreateTrace 1 に設定する と、アプ リ ケーシ ョ ンを開始するたびに ト レース ファイルが再作成

されます。

0 (デフォルトの初期値) に設定する と、 ト レース ファイルは追加されます。

6-18

Page 147: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データ プロバイダー固有のクラス

表 6-20 では、 PsqlTrace オブジェク トのパブリ ッ ク メ ソ ッ ドについて説明

します。

PsqlTransaction オブジェク ト 表 6-21 では、PsqlTransaction オブジェク トのパブリ ッ ク プロパティについ

て説明します。

表 6-22 では、PsqlTransaction オブジェク トのパブリ ッ ク メ ソ ッ ドについて

説明します。

TraceFile ト レース ファ イルのパス と名前を指定します。

デフォルトの初期値は \PVSWNET_Trace.txt です。 このファイルが存在しない場

合はデータ プロバイダーが作成します。

メ モ: EnableTrace で ト レース を有効にする よ う 設定する と ト レース処理が開始し ます。 し たがって、

EnableTrace を設定する前に ト レース ファ イル用のプロパティ値を定義しておく必要があ り ます。 いったん

ト レース処理が開始されたら、 TraceFile および RecreateTrace プロパティの値を変更するこ とはできません。

表 6-19 PsqlTrace のパブリ ック プロパティ

プロパティ 説明

表 6-20 PsqlTrace オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

DumpFootprints 1 つのデータ プロバイダーのすべてのソース ファ イルのフッ トプ リ ン ト を表示

します。

表 6-21 PsqlTransaction オブジェク トのパブリ ック プロパティ

プロパティ 説明

Connection ト ランザクシ ョ ンに関連付けられる PsqlConnection オブジェク ト を指定します。

詳細については、「PsqlConnection オブジェク ト 」 (6-9 ページ) を参照してくださ

い。

IsolationLevel ト ランザクシ ョ ン全体の分離レベルを定義します。値を変更する と、その新しい

値が実行時に使用されます。

表 6-22 PsqlTransaction オブジェク トのパブリ ック メ ソ ッ ド

メ ソッ ド 説明

Commit 派生ク ラスで上書きされた場合、その結果生じる 1 つ以上の例外の根本原因であ

る Exception を返します。

Rollback ト ランザクシ ョ ンをコ ミ ッ トする前に、その ト ランザクシ ョ ンで行った変更を取

り消します。

6-19

Page 148: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

Pervasive Common Assembly クラス

Pervasive PSQL データ プロバイダーでは、バルク ロードなどの拡張機能を

提供する追加クラスが使用できます。すべてのクラスはマネージ コードの

みで作成されています。 以下のク ラスが Pervasive.Data.Common.dll アセン

ブリで提供されます。

「CsvDataReader」 (6-20 ページ)

「CsvDataWriter」 (6-22 ページ)

「DbBulkCopy」 (6-23 ページ)

「DbBulkCopyColumnMapping」 (6-23 ページ)

「DbBulkCopyColumnMapping」 (6-23 ページ)

バルク ロードに使用されるク ラスは、汎用プログラ ミ ング モデルを実装し

ます。 これらは、 DataDirect Bulk Load をサポー ト する任意の DataDirectTechnolgies ADO.NET データ プロバイダーまたは ODBC ド ラ イバーおよび

サポート される任意のデータベースと共に使用するこ とができます。

CsvDataReaderCsvDataReader ク ラスは、 Pervasive Bulk Load が定義した CSV ファ イル形

式用の DataReader 構文を提供します。

表 6-23 は、 CsvDataWriter オブジェク トのパブリ ッ ク プロパティの一覧で

す。

表 6-23 CsvDataReader オブジェク トのパブリ ック プロパティ

プロパティ 説明

BulkConfigFile WriteToFile メ ソ ッ ドが呼び出されたと きに作成された CSV バルク構成ファ イル

を指定します。 バルク ロード構成ファ イルは、 バルク ロード データ ファ イル内

の列の名前とデータ型を、 データをエクスポート したテーブルや結果セッ ト と同

じ方法で定義します。 バルク ロード構成ファイルは、 基となる XML スキーマに

よってサポート されます。CSV バルク構成ファイルの例については、「バルク ロー

ド構成ファイル」 (11-1 ページ) を参照してください。

パスには絶対パスを使用します。 そ う しないと、 ファ イルは現在の作業ディレク

ト リにあるものと見なされます。

メ モ: このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ

設定できます。 それ以外の場合、 InvalidOperationException がスローされます。

6-20

Page 149: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Common Assembly クラス

表 6-24 は CsvDataReader オブジェク トのパブリ ッ ク メ ソ ッ ドの一覧です。

BulkFile CSV 形式のバルク データを含むバルク ロード データ ファイルを指定します。 こ

のファ イル名は、 バルク データの書き出し (エクスポート ) および読み込み (イ

ンポート ) で使用されます。 指定したファ イル名に拡張子が含まれない場合は、

".csv" と見なされます。

パスには絶対パスを使用します。 そ う しない場合、 ファ イルはデフォルトで現在

の作業ディ レク ト リにある ものと見なされます。 この値が設定されていないと、

InvalidOperationException がスローされます。

メ モ: このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ

設定できます。 それ以外の場合、 InvalidOperationException がスローされます。

ReadBufferSize バルク ロードを使用してデータ ソースからデータをインポートする場合の読み

取りバッファーのサイズを指定します。

デフォルトの初期値は 2048 KB です。

ゼロまたはゼロよ り小さい値を設定する と、System.ArgumentOutOfRangeExceptionがスローされます。

RowOffset バルク ロード読み取り を開始する行を指定します。RowOffset は先頭行 (第 1 行)

からの相対位置です。

デフォルトの初期値は 1 です。

ゼロまたはゼロよ り小さい値を設定する と、System.ArgumentOutOfRangeExceptionがスローされます。

メ モ: このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ

設定できます。 それ以外の場合、 InvalidOperationException がスローされます。

SequentialAccess パフォーマンス改善のための手法で列にアクセスするかど うかを決定します。

デフォルトの初期値は False です。

メ モ: このプロパティは Open() 呼び出しの前および Close() 呼び出しの後にのみ

設定できます。 それ以外の場合、 InvalidOperationException がスローされます。

表 6-23 CsvDataReader オブジェク トのパブリ ック プロパティ

プロパティ 説明

表 6-24 CsvDataReader オブジェク トのパブリ ック メ ソ ッ ド

プロパティ 説明

Open 処理に必要なバルク ファ イルのインスタンスおよび関連付けられたメ タデータ

ファイルを開きます。

6-21

Page 150: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

CsvDataWriterCsvDataWriter ク ラ スは、 Pervasive Bulk Load によって書き出される CSVファ イル形式の Pervasive DataWriter 構文を提供します。

詳細については、データ プロバイダーのオンライン ヘルプを参照して くだ

さい。

表 6-25 は、 CsvDataWriter オブジェク トのパブリ ッ ク プロパティの一覧で

す。

表 6-26 は CsvDataWriter オブジェク トのパブリ ッ ク メ ソ ッ ドの一覧です。

表 6-25 CsvDataWriter オブジェク トのパブリ ック プロパティ

プロパティ 説明

BinaryThreshold バルク アンロード中にバイナリ データを格納するのに、 どのサイズでファ イル

を分けて生成するかを決定するしきい値 (KB 単位) を指定します。

デフォルトの初期値は 32 です。

ゼロよ り小さい値を指定する と System.ArgumentOutOfRangeException がスローさ

れます。

CharacterThreshold バルク アンロード中に文字データを格納するのに、どのサイズでファ イルを分け

て生成するかを決定するしきい値 (KB 単位) を指定します。

デフォルトの初期値は 64 です。

ゼロよ り小さい値を指定する と System.ArgumentOutOfRangeException がスローさ

れます。

CsvCharacterSetName サポート される IANA コード ページの中から、 使用されるコード ページ名を値

で指定します。 サポート される値については、 「IANA コード マッピング」 (12-1ページ) を参照してください。

アプリ ケーシ ョ ンは、 PsqlConnection.DatabaseCharacterSetName プロパティを使用

してデータベースに設定されている文字セッ ト を取得できます。

認識されない CharacterSetName を使用する と、 無効な文字セッ トが使用されたこ

とを示す例外がスローされます。

デフォルトの初期値は UTF-16 です。

このプロパティは、 CSV データ ファ イルおよび追加されるオーバー フロー ファ

イルでこの文字セッ トが必ず使用されるよ うにします。

表 6-26 CsvDataWriter オブジェク トのパブリ ック メ ソ ッ ド

プロパティ 説明

Open 処理に必要なバルク ファ イルのインスタンスおよび関連付けられたメ タデータ

ファイルを開きます。

WriteToFile IDataReader の内容をバルク データ ファ イルに書き出します。

6-22

Page 151: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive Common Assembly クラス

DbBulkCopyDbBulkCopy ク ラスは 1 つのデータ ソースから別のデータ ソースへ行をコ

ピーするのを容易にします。

DbBulkCopy オブジェ ク ト は、 事実上の業界標準であ る MicrosoftSqlBulkCopy ク ラスの定義に従っており、 プロバイダー固有のプロパティ

やメ ソ ッ ドを持ちません。 サポート されるプロパティおよびメ ソ ッ ドにつ

いては、 データ プロバイダーのオンラ イン ヘルプおよび Microsoft .NETFramework SDK のマニュアルを参照して ください。

DbBulkCopyColumnMappingDbBulkCopyColumnMapping ク ラ スは、 データ ソース テーブルから宛先

テーブルへの列のマップを表します。

DbBulkCopyColumnMapping オブジェ ク ト は、 事実上の業界標準であ る

Microsoft SqlBulkCopyColumnMapping ク ラスの定義に従っており、 プロバ

イダー固有のプロパティやメ ソ ッ ドを持ちません。 サポート されるプロパ

ティおよびメ ソ ッ ドについては、データ プロバイダーのオンライン ヘルプ

および Microsoft .NET Framework SDK のマニュアルを参照してください。

DbBulkCopyColumnMappingCollectionDbBulkCopyColumnMappingCollection ク ラスは DbBulkCopyColumnMappingオブジェク トのコレクシ ョ ンです。

DbBulkCopyColumnMappingCollection オブジェ ク トは、 事実上の業界標準

である Microsoft SqlBulkCopyColumnMappingCollection ク ラスの定義に従っ

ており、 プロバイダー固有のプロパティやメ ソ ッ ドを持ちません。 サポー

ト されるプロパティおよびメ ソ ッ ドについては、データ プロバイダーのオ

ンライン ヘルプおよび Microsoft .NET Framework SDK のマニュアルを参照

してください。

6-23

Page 152: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

サポート される .NET オブジェク ト

6-24

Page 153: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

7

スキーマ情報の入手

データベースのメ タデータの検索および取り出し

アプリ ケーシ ョ ンは、データベースのメ タデータを検索して返すよ う、デー

タ プロバイダーに要求するこ とができます。各データ プロバイダー固有の

スキーマ コレクシ ョ ンは、テーブルや列などのデータベース スキーマ要素

を公開します。 データ プロバイダーは Connection ク ラスの GetSchema メソ ッ ドを使用します。スキーマ情報は 「GetSchemaTable メ ソ ッ ドによって

返される列」 (7-2 ページ) で説明されているよ うに、 結果セッ トから も取

得できます。

データ プロバイダーにもプロバイダー固有のスキーマ コレクシ ョ ンが含

まれています。 スキーマ コレ クシ ョ ン名 MetaDataCollections を使用する

と、サポート されるスキーマ コレクシ ョ ンの一覧と、それらがサポートす

る制限の数を返すこ とができます。

7-1

Page 154: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

GetSchemaTable メ ソ ッ ドによって返される列 PsqlDataReader が開いている間は、 結果セッ トからスキーマ情報を取得す

るこ とができます。PsqlDataReader.GetSchemaTable() で生成された結果セッ

トは、 表 7-1 に説明されている列を、 指定された順序で返します。

表 7-1 PsqlDataReader の GetSchemaTable で返される列

列 説明

ColumnName 列の名前。 列名は一意でない場合もあ り ます。 判断できない場合は、 null 値が

返されます。 この名前は、 現在のビュー内またはコマンド テキス ト内の列に

対する 新の名前変更を常に反映した名前になり ます。

ColumnOrdinal 列の序数。 この列に null 値を含める こ とはできません。 行のブッ クマーク列

(ある場合) はゼロにな り ます。その他の列は 1 から順に番号が付けられます。

ColumnSize 列の値に許容される 大長。固定長データ型を使用する列では、そのデータ型

のサイズにな り ます。

NumericPrecision 列の精度。 これは ProviderType での列の定義方法によって決ま り ます。

ProviderType が数値データ型の場合、 これは列の 大精度になり ます。

ProviderType が数値データ型以外の場合は、 null 値になり ます。

NumericScale 小数点の右側の桁数。 これは、 ProviderType が DBTYPE_DECIMAL または

DBTYPE_NUMERIC の場合です。 それ以外の場合は、 null 値になり ます。

この値は、 ProviderType での列の定義方法によって決ま り ます。

DataType 列を .NET Framework の型にマップします。

ProviderType 列のデータ型のインジケーター。 この列に null 値を含めるこ とはできません。

列のデータ型が行によって異なる場合は、 Object である必要があ り ます。

IsLong 非常に長いデータを格納する BLOB が列に含まれている場合に設定されます。

このフラグの設定は、データ型の、PROVIDER_TYPES 行セッ ト内の IS_LONG列の値に対応します。

非常に長いデータの定義は、 プロバイダーによって異なり ます。

AllowDBNull コンシューマーが列に null 値を設定できる場合や、 コンシューマーが列に null値を設定できるかど うかをデータ プロバイダーが判断できない場合に、 設定

されます。 それ以外の場合は、 設定されません。

列を null 値に設定できない場合でも、null 値が含まれている可能性があ り ます。

IsReadOnly 列を変更できるかど うかを決定します。

列が変更できない場合は true、 それ以外の場合は false です。

IsRowVersion 書き込み禁止で、 行の識別以外に意味のない値を持つ永続的な行 ID が列に格

納されている場合に、 設定されます。

7-2

Page 155: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

GetSchemaTable メ ソ ッ ドによって返される列

IsUnique 列自体がキーを構成しているか、あるいは、その列だけに適用される UNIQUE型の制約があるかど うかを示します。

true に設定した場合、 ベース テーブル (BaseTableName で返されるテーブル)

の行は、 この列に同じ値を格納できません。

false (デフォルトの初期値) に設定した場合は、ベース テーブルでこの列に重

複する値を格納できます。

IsKey 列のセッ トが行セッ トの 1 行を一意に識別するかど うかを指定します。この列

のセッ トは、 ベース テーブルの主キー、 一意の制約、 または重複のないイン

デッ クスから生成するこ とができます。

列が、行セッ ト内の列のセッ トの うちの 1 つで、 これらを基に行を一意に識別

する場合は true です。 列が行を一意に識別する必要がない場合は false です。

IsAutoIncrement 新しい行に固定インク リ メ ン トで値を割り当てるかど うかを指定します。

VARIANT_TRUE に設定する と、 列は新しい行に固定インク リ メ ン トで値を割

り当てます。

VARIANT_FALSE (デフォル トの初期値) に設定する と、 列は新しい行に固定

インク リ メン トで値を割り当てません。

BaseSchemaName 列を格納している、データベース内のスキーマの名前。基本スキーマ名を判断

できない場合は null 値です。

デフォルトの初期値は null です。

BaseCatalogName 列を格納している、 データ ス ト ア内のカタログの名前。 基本カタログ名を判

断できない場合は null 値が使用されます。

デフォルトの初期値は null です。

BaseTableName 列を格納している、データ ス ト ア内のテーブルまたはビューの名前。基本テー

ブル名を判断できない場合は null 値が使用されます。

デフォルトの初期値は null です。

BaseColumnName データ ス ト ア内での列名。エイ リ アスが使用された場合は、ColumnName 列に

返される列名とは異なる こ とがあ り ます。 基本列名を判断できない場合や、

データベース内の列から派生した行セッ ト列であるのにそれと一致しない場

合は、 null 値が使用されます。

デフォルトの初期値は null です。

IsAliased 列の名前がエイ リ アスであるかど うかを指定します。列名がエイ リ アスであれ

ば、 値 true が返されます。 そ うでなければ、 false が返されます。

IsExpression 列の名前が式であるかど うかを指定します。列が式であれば、値 true が返され

ます。 そ うでなければ、 false が返されます。

表 7-1 PsqlDataReader の GetSchemaTable で返される列

列 説明

7-3

Page 156: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

IsIdentity 列の名前が ID 列であるかど うかを指定します。列が ID 列であれば、値 true が返されます。 そ うでなければ、 false が返されます。

IsHidden 列の名前が非表示であるかど うかを指定します。列が表示されない場合は、値

true が返されます。 そ うでなければ、 false が返されます。

表 7-1 PsqlDataReader の GetSchemaTable で返される列

列 説明

7-4

Page 157: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

GetSchema メ ソ ッ ドによるスキーマ メ タデータの取得

GetSchema メ ソ ッ ドによるスキーマ メ タデータの取得

アプ リ ケーシ ョ ンでデータ プロバイダーおよびデータ ソースに関するス

キーマ メ タデータを取得する場合は、Connection オブジェク トの GetSchemaメ ソ ッ ドを使用を使用します。 各プロバイダーには 5 つの標準メ タデータ

コレクシ ョ ンも含め、 多数のスキーマ コレクシ ョ ンが実装されています。

「MetaDataCollections スキーマ コレクシ ョ ン」 (7-5 ページ)

「DataSourceInformation スキーマ コレクシ ョ ン」 (7-6 ページ)

「DataTypes コレクシ ョ ン」 (7-7 ページ)

「ReservedWords コレクシ ョ ン」 (7-9 ページ)

「Restrictions コレクシ ョ ン」 (7-9 ページ)

追加のコレクシ ョ ンを指定したら、データ プロバイダーからスキーマ情報

を返す機能がサポート されるよ うにしておく必要があ り ます。

データ プロバイダーでサポート されるその他のコレクシ ョ ンの詳細につい

ては、「追加のスキーマ コレクシ ョ ン」 (7-10 ページ) を参照してください。

メモ :各 ColumnName で必要なデータ型など、 さ らなるバッ クグラウンド

機能要件については、 .NET Framework ドキュ メン ト を参照して ください。

MetaDataCollections スキーマ コレクシ ョ ン

MetaDataCollections スキーマ コレク ショ ンは、ログインしているユーザー

が利用できるスキーマ コレク ショ ンの一覧です。 MetaDataCollection は、

表 7-2 に記載されているサポート される列を任意の順序で返すこ とができ

ます。

表 7-2 MetaDataCollections スキーマ コレクシ ョ ンによって返される列

列名 説明

CollectionName コレクシ ョ ンを返すために GetSchema メ ソ ッ ドに渡すコレクシ ョ ンの名前。

NumberOfRestrictions コレクシ ョ ンに指定されている可能性のある制限の数。

NumberOfIdentifierParts 複合識別子 / データベース オブジェク ト名の構成要素の数。

7-5

Page 158: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

DataSourceInformation スキーマ コレクシ ョ ン

DataSourceInformation スキーマ コレクシ ョ ンは、 表 7-3 に記載されている

サポート される列を任意の順序で返すこ とができます。 1 行のみ返される

こ とに注意して ください。

表 7-3 DataSourceInformation コレクシ ョ ンによって返される列名

列名 説明

CompositeIdentifierSeparatorPattern 複合識別子内の複合識別子に一致する正規表現。

DataSourceProductName データ プロバイダーがアクセスする製品の名前。

DataSourceProductVersion データ プロバイダーがアクセスする製品のバージ ョ ンをデータ

ソースのネイティブ形式で示します。

DataSourceProductVersionNormalized デ ー タ ソ ー ス の 標 準 化 さ れ た バ ー ジ ョ ン。 こ れ に よ り、

String.Compare() を使ってバージ ョ ンを比較できるよ うにな り ます。

GroupByBehavior GROUP BY 句内の列と、選択リ ス ト内の集計されない列の間の関係

を指定します。

Host データ プロバイダーが接続しているホス ト。

IdentifierCase 引用符で囲まれていない識別子の大文字小文字を区別して処理す

るかど うかを示します。

IdentifierPattern 識別子に一致する正規表現で、 識別子の適合値を持ちます。

OrderByColumnsInSelect ORDER BY 句内の列は選択リ ス ト内にある必要があるかど うかを

指定します。 true の値は、 当該列が選択リ ス トに存在しなければな

らないこ とを示し、false の値は選択リ ス トに存在しなくてもよいこ

とを示します。

ParameterMarkerFormat パラ メーターの書式設定方法を示す書式文字列。

ParameterMarkerPattern パラ メーター マーカーに一致する正規表現。 もしあれば、パラ メー

ター名の適合値を持ちます。

ParameterNameMaxLength パラ メーター名の 大長 (文字単位)。

ParameterNamePattern 有効なパラ メーター名に一致する正規表現。

QuotedIdentifierCase 引用符で囲まれた識別子の大文字小文字を区別して処理するかど

うかを示します。

QuotedIdentifierPattern 引用符で囲まれた識別子に一致する正規表現で、引用符の付いてい

ない識別子自体の適合値を持ちます。

StatementSeparatorPattern ステート メン ト区切り文字に一致する正規表現。

7-6

Page 159: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

GetSchema メ ソ ッ ドによるスキーマ メ タデータの取得

DataTypes コレクシ ョ ン

表 7-4 では、 DataTypes スキーマ コレクシ ョ ンでサポート される列につい

て説明します。 列は任意の順序で取得できます。

StringLiteralPattern 文字列リテラルに一致する正規表現で、 リ テラル自体の適合値を持

ちます。

SupportedJoinOperators データ ソースでサポート される、 SQL 結合ステート メ ン トの種類

を指定します。

表 7-3 DataSourceInformation コレクシ ョ ンによって返される列名

列名 説明

表 7-4 DataTypes コレクシ ョ ンによって返される列名

列名 説明

ColumnSize 数値以外の列またはパラ メーターの長さは、 この型の 大長もし くは、 データ プロ

バイダーがこの型に対して定義している長さを参照します。

CreateFormat CREATE TABLE など、 この列をデータ定義ステート メン トに追加する方法を示す書

式文字列。

CreateParameters このデータ型の列を作成する と きに指定する必要のある作成パラ メーター。 各作成

パラ メーターは文字列で、 それらを提供する順にカンマで区切って列挙します。

たとえば、 SQL データ型の DECIMAL には精度と小数点以下の桁数が必要です。 こ

の場合は、文字列 "精度 , 小数位 " を作成パラ メーターに含める必要があ り ます。

精度 10、 小数位 2 の DECIMAL 列を作成するテキス ト コマンドでは、 CreateFormat列の値を "DECIMAL({0},{1})" と する こ と ができ ます。 完全な型指定は

DECIMAL(10,2) とな り ます。

DataType データ型に対する .NET Framework 型の名前。

IsAutoIncrementable データ型の値を自動インク リ メ ン トするかど うかを指定します。

true : このデータ型の値は自動インク リ メ ン トできます。

false : このデータ型の値は自動インク リ メ ン トできません。

IsBestMatch このデータ型は、 データ ス ト ア内のすべてのデータ型と、 DataType 列の値によって

示される .NET Framework データ型の間で 適なものであるかど うかを指定します。

true : 適なデータ型です。

false : 適なデータ型ではあ り ません。

IsCaseSensitive データ型は文字型で、 大文字小文字を区別するかど うかを指定します。

true : 文字型で、 大文字小文字を区別します。

false : 文字型でないか、 も し くは大文字小文字を区別しません。

7-7

Page 160: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

IsConcurrencyType true : このデータ型は行が変更されるたびにデータベースによって更新され、列の値

は以前のあらゆる値と異なるものにな り ます。

false : このデータ型は行が変更されるたびにデータベースによって更新されません。

IsFixedLength true :データ定義言語 (DDL) によって作成されるこのデータ型の列は固定長になり

ます。

false : DDL によって作成されるこのデータ型の列は可変長になり ます。

IsFixedPrecisionScale true : データ型は固定の精度と小数点以下の桁数を持ちます。

false : データ型は固定の精度と小数点以下の桁数を持ちません。

IsLiteralsSupported true : データ型を リテラルで表すこ とができます。

false : データ型を リ テラルで表すこ とはできません。

IsLong true :データ型は非常に長いデータを格納します。非常に長いデータの定義は、 プロ

バイダーによって異なり ます。

false : データ型は非常に長いデータを格納しません。

IsNullable true : データ型はヌル値を許可します。

false : データ型はヌル値を許可しません。

IsSearchable true :データ型は非常に長いデータを格納します。非常に長いデータの定義は、 プロ

バイダーによって異なり ます。

false : データ型は非常に長いデータを格納しません。

IsSearchableWithLike true : LIKE 述部で使用できません。

false : LIKE 述部で使用できません。

IsUnisgned true : データ型は符号なしです。

false : データ型は符号付きです。

LiteralPrefix 指定された リテラルに適用するプレフ ィ ッ クス。

LiteralSuffix 指定された リテラルに適用するサフ ィ ッ クス。

MaximumScale 型インジケーターが数値型の場合は、 これは小数点の右側に割り当てられる 大桁

数になり ます。

それ以外の場合、 これは DBNull.Value になり ます。

MinimumScale 型インジケーターが数値型の場合は、 これは小数点の右側に割り当てられる 小桁

数になり ます。

それ以外の場合、 これは DBNull.Value になり ます。

ProviderDbType パラメ ーターの型を指定する場合に使用する必要のあるプロバイダー固有の型の値。

TypeName プロバイダー固有のデータ型名。

表 7-4 DataTypes コレクシ ョ ンによって返される列名

列名 説明

7-8

Page 161: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

GetSchema メ ソ ッ ドによるスキーマ メ タデータの取得

ReservedWords コレクシ ョ ン

このスキーマ コレクシ ョ ンは、データ プロバイダーが接続するデータベー

スで予約されている語句についての情報を公開します。 表 7-5 では、 デー

タ プロバイダーがサポートする列について説明します。

Restrictions コレクシ ョ ン

Restrictions スキーマ コレ クシ ョ ンは、 現在データベースに接続している

データ プロバイダーでサポート される制限に関する情報を公開します。表

7-6 では、 データ プロバイダーから返される列について説明します。 列は

任意の順序で取得できます。

Pervasive PSQL データ プロバイダーは標準化された名前を制限に使用しま

す。 データ プロバイダーが Schema メ ソ ッ ドの制限をサポート している場

合は、 制限に対して常に同じ名前を使用します。

制限値の大文字小文字の区別は基になるデータベースによって決定されま

す が、 DataSourceInformation コ レ ク シ ョ ン の IdentifierCase 値 お よ び

QuotedIdentifierCase 値 に よ っ て も 決 定 す る こ と が で き ま す

(「DataSourceInformation スキーマ コレクシ ョ ン」 (7-6 ページ) を参照して

ください)。

サポート される追加のスキーマ コレ クシ ョ ンそれぞれに適用する制限に

ついては、 「追加のスキーマ コレクシ ョ ン」 (7-10 ページ) を参照して くだ

さい。

表 7-5 ReservedWords スキーマ コレクシ ョ ン

列名 説明

Reserved Word プロバイダー固有の予約語。

表 7-6 Restrictions コレクシ ョ ンによって返される列名

列名 説明

CollectionName 指定した制限を適用するコレクシ ョ ンの名前。

RestrictionName コレクシ ョ ン内の制限の名前。

RestrictionDefault 無視されます。

RestrictionNumber この制限の、 コレクシ ョ ン Restrictions 内における実際の場所。

IsRequired 制限が必要かど うかを指定します。

7-9

Page 162: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

追加のスキーマ コレクシ ョ ン Pervasive PSQL データ プロバイダーは、以下に示す追加のスキーマ コレク

シ ョ ンをサポート しています。

「Columns スキーマ コレクシ ョ ン」 (7-10 ページ)

「ForeignKeys スキーマ コレクシ ョ ン」 (7-12 ページ)

「Indexes スキーマ コレクシ ョ ン」 (7-13 ページ)

「PrimaryKeys スキーマ コレクシ ョ ン」 (7-14 ページ)

「ProcedureParameters スキーマ コレクシ ョ ン」 (7-15 ページ)

「Procedures スキーマ コレクシ ョ ン」 (7-17 ページ)

「TablePrivileges スキーマ コレクシ ョ ン」 (7-18 ページ)

「Tables スキーマ コレクシ ョ ン」 (7-19 ページ)

「Views スキーマ コレクシ ョ ン」 (7-20 ページ)

Columns スキーマ コレクシ ョ ン

説明 : Columns スキーマ コレクシ ョ ンは、 指定したユーザーがアクセスで

きるカタログに定義されているテーブル (ビューも含む) の列を識別しま

す。 表 7-7 では、 指定したユーザーがアクセスできるカタログに定義され

ているテーブルの列を示します。

制限の数 : 3

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME、 COLUMN_NAME

ソート順 : TABLE_CATALOG、 TABLE_NAME、 ORDINAL_POSITION

表 7-7 Columns スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

CHARACTER_MAXIMUM_LENGTH Int32 列の値に許容される 大長。文字、バイナリ、ま

たはビッ トの列の場合、 これは次のいずれかに

なり ます。

いずれかの列が定義されている場合は、それ

ぞれ文字単位、バイ ト単位、 ビッ ト単位の列

の 大長。

列の長さが定義されていない場合は、それぞ

れ文字単位、バイ ト単位、 ビッ ト単位のデー

タ型の 大長。

列にもデータ型にも 大長が定義されてい

ない場合、あるいは列が文字、バイナリ、ビッ

トのいずれでもない場合は、 ゼロ (0)。

7-10

Page 163: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

追加のスキーマ コレクシ ョ ン

CHARACTER_OCTET_LENGTH Int32 列の型が文字またはバイナ リの場合は、 8 進数

(バイ ト単位) で表す列の 大長。

値ゼロ (0) は、 その列が 大長を持たないか、

あるいは、 文字またはバイナリの列でないこ と

を意味します。

COLUMN_DEFAULT String 列のデフォルト値。

COLUMN_HASDEFAULT Boolean TRUE : 列にはデフォルト値があ り ます。

FALSE : 列にデフォル ト値がないか、 も し くは

デフォルト値があるかど うかが不明です。

COLUMN_NAME String 列の名前。これは一意でない可能性があ り ます。

DATA_TYPE Object 列のデータ型のインジケーター。

この値をヌルにするこ とはできません。

IS_NULLABLE Boolean TRUE : 列はヌル値を許可する可能性があ り ま

す。

FALSE : 列がヌル値を許可するかど うかわかり

ません。

NATIVE_DATA_TYPE String 型のデータ ソース記述。

この値をヌルにするこ とはできません。

NUMERIC_PRECISION Int32 列のデータ型が数値データのものである場合、

これは列の 大精度 (有効桁数) にな り ます。

NUMERIC_PRECISION_RADIX Int32 どの数を基礎と して NUMERIC_PRECISION および NUMERIC_SCALE で値を表現するかを示

す基数。2 または 10 を返す場合にのみ有効です。

NUMERIC_SCALE Int32 列の型が小数位を持つ数値型の場合、 これは小

数点よ り右側の桁数です。

ORDINAL_POSITION Int32 列の序数。 列には 1 から始まる番号が付けられ

ています。

PROVIDER_DEFINED_TYPE Int32 列のデータ ソース定義の型は、データ プロバイ

ダーの型の列挙 (たとえば PsqlDbType 列挙) に

マップされています。

この値をヌルにするこ とはできません。

PROVIDER_GENERIC_TYPE Int32 列 の プ ロ バ イ ダ ー 定 義 の 型 は

System.Data.DbType 列挙にマップされています。

この値をヌルにするこ とはできません。

表 7-7 Columns スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

7-11

Page 164: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

ForeignKeys スキーマ コレクシ ョ ン

説明 : ForeignKeys スキーマ コレクシ ョ ンは、 指定したユーザーによって

カテゴ リ内に定義された外部キー列を識別します。

制限の数 : 2

使用可能な制限 : FK_TABLE_CATALOG、 PK_TABLE_NAME

ソート順 : FK_TABLE_CATALOG、 FK_TABLE_NAME

TABLE_CATALOG String データベース名。

TABLE_NAME String テーブル名。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-7 Columns スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

表 7-8 ForeignKeys スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

DEFERRABILITY String 外部キーを延期できるか。次のいずれかの値になり ます。

INITIALLY DEFERRED

INITIALLY IMMEDIATE

NOT DEFERRABLE

DELETE_RULE String 削除規則が指定された場合は、 次のいずれかの値にな り

ます。

CASCADE : CASCADE の参照操作が指定されました。

SET NULL : SET NULL の参照操作が指定されました。

SET DEFAULT : SET DEFAULT の参照操作が指定されま

した。

NO ACTION :NO ACTION の参照操作が指定されました。

FK_COLUMN_NAME String 外部キー列の名前。

FK_NAME String 外部キー名。 この制限は必須です。

FK_TABLE_CATALOG String 外部キー テーブルが定義されているカタログ名。

FK_TABLE_NAME String 外部キー テーブル名。 この制限は必須です。

7-12

Page 165: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

追加のスキーマ コレクシ ョ ン

Indexes スキーマ コレクシ ョ ン

説明 : Indexes スキーマ コレクシ ョ ンは、 指定したユーザーが所有してい

るカテゴ リ内に定義されたインデッ クスを識別します。

制限の数 : 2

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME

ソート順 : UNIQUE、 TYPE、 INDEX、 CATALOG、 INDEX_NAME、ORDINAL_POSITION

ORDINAL Int32 キーにおける列名の順序。 たとえば、 あるテーブルに別

のテーブルへの外部キー参照がいくつか含まれている と

します。 序数は参照ご とに 初から始ま り ます。 3 列の

キーへの 2 つの参照ならば、 1, 2, 3, 1, 2, 3 を返します。

PK_COLUMN_NAME String 主キー列の名前。

PK_NAME String 主キー名。

PK_TABLE_CATALOG String 主キー テーブルが定義されているカタログ名。

PK_TABLE_NAME String 主キー テーブル名。

UPDATE_RULE String 更新規則が指定された場合は、 次のいずれかの値にな り

ます。

CASCADE : CASCADE の参照操作が指定されました。

SET NULL : SET NULL の参照操作が指定されました。

SET DEFAULT : SET DEFAULT の参照操作が指定されま

した。

NO ACTION :NO ACTION の参照操作が指定されました。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-8 ForeignKeys スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

表 7-9 Indexes スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

CARDINALITY Int32 インデッ クスに含まれる一意な値の数。

COLLATION String 次のいずれかの値になり ます。

ASC : 列の並べ替え順は昇順です。

DESC : 列の並べ替え順は降順です。

7-13

Page 166: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

PrimaryKeys スキーマ コレクシ ョ ン

説明 : PrimaryKeys スキーマ コレクシ ョ ンは、 指定したユーザーによって

カテゴ リ内に定義された主キー列を識別します。

制限の数 : 2

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME

ソート順 : TABLE_CATALOG、 TABLE_NAME

COLUMN_NAME String 列名。

FILTER_CONDITION String フ ィルター制限を識別する WHERE 句。

INDEX_CATALOG String カタログ名。

INDEX_NAME String インデッ クス名。

ORDINAL_POSITION Int32 インデッ クスにおける列の位置を表す、1 から始まる序数。

PAGES Int32 インデッ クスの格納に使用されるページ数。

TABLE_CATALOG String カタログ名。

TABLE_NAME String テーブル名。

TYPE String インデッ クスの種類。 次のいずれかの値になり ます。

BTREE : インデッ クスは B+- ツ リーです。

HASH : インデッ クスは、 直線的なハッシュや伸縮可能な

ハッシュを用いたハッシュ ファイルです。

CONTENT:インデッ クスはコンテンツ インデッ クスです。

OTHER:インデッ クスは上記の種類以外のインデッ クスで

す。

UNIQUE Boolean インデッ クス キーは一意である必要があるかど うかを決

定します。 次のいずれかの値になり ます。

TRUE : インデッ クス キーは一意でなければなり ません。

FALSE : 重複キーが許されます。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-9 Indexes スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

7-14

Page 167: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

追加のスキーマ コレクシ ョ ン

ProcedureParameters スキーマ コレクシ ョ ン

説明:ProcedureParameters スキーマ コレクシ ョ ンは、Procedures コレクシ ョ

ンの一部であるプロシージャのパラ メーターおよびリ ターン コードに関

する情報を返します。

制限の数 : 3

使用可能な制限 : PROCEDURE_CATALOG、 PROCEDURE_NAME、PARAMETER_NAME

ソート順 : PROCEDURE_CATALOG、 PROCEDURE_NAME、ORDINAL_POSITION

表 7-10 PrimaryKeys スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

COLUMN_NAME String 主キー列の名前。

ORDINAL Int32 キーにおける列名の順序。

PK_NAME String 主キー名。

TABLE_CATALOG String テーブルが定義されているデータベース名。

TABLE_NAME String テーブル名。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-11 ProcedureParameters スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

CHARACTER_OCTET_LENGTH Int32 パラ メーターの型が文字またはバイナリの場合は、 8 進数

(バイ ト単位) で表すパラ メーターの 大長。

パラ メーターが 大長を持たない場合、 値はゼロ (0) に

な り ます。

上記の型以外のパラ メーターでは、 値は -1 になり ます。

DATA_TYPE Object 列のデータ型のインジケーター。

この値をヌルにするこ とはできません。

DESCRIPTION String パラ メーターの記述。 たとえば、新しい従業員を追加する

プロシージャの Name パラ メ ーターの記述を Employeename と してもかまいません。

7-15

Page 168: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

IS_NULLABLE Boolean TRUE : パラ メーターはヌル値を許可する可能性があ り ま

す。

FALSE : パラ メーターはヌル値を許可しません。

NATIVE_DATA_TYPE String 型のデータ ソース記述。

この値をヌルにするこ とはできません。

NUMERIC_PRECISION Int32 列のデータ型が数値である場合、 これは列の 大精度 (有

効桁数) にな り ます。

列のデータ型が数値でない場合、 これは DbNull になり

ます。

NUMERIC_SCALE Int32 列の型が小数位を持つ数値型の場合、 これは小数点よ り右

側の桁数です。

それ以外の場合、 これは DbNull になり ます。

ORDINAL_POSITION Int32 パラ メーターが入力、入出力、 または出力パラ メーターで

ある場合、 これはプロシージャ呼び出しにおけるパラ メー

ターの位置を表す、 1 から始まる序数です。

パラ メーターが戻り値の場合、 これは DbNull になり ま

す。

PARAMETER_DEFAULT String パラ メーターのデフォルト値。

デフォルト値が NULL の場合、

PARAMETER_HASDEFAULT 列は TRUE を返し、

PARAMETER_DEFAULT 列は存在しなくな り ます。

PARAMETER_HASDEFAULT に FALSE を設定する と、

PARAMETER_DEFAULT 列が存在しなくな り ます。

PARAMETER_HASDEFAULT Boolean TRUE : パラ メーターにはデフォルト値があ り ます。

FALSE :パラ メーターにデフォルト値がないか、 も し くは

デフォルト値があるかど うかが不明です。

PARAMETER_NAME String パラ メーター名。 パラ メーターに名前が付いていない場

合、 これは DbNull になり ます。

表 7-11 ProcedureParameters スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

7-16

Page 169: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

追加のスキーマ コレクシ ョ ン

Procedures スキーマ コレクシ ョ ン

説明 : Procedures スキーマ コレクシ ョ ンは、 カタログに定義されているプ

ロシージャを識別します。 可能であれば、 接続ユーザーが EXECUTE 権限

を持っているプロシージャのみを返すよ うにして ください。

制限の数 : 2

使用可能な制限 : PROCEDURE_CATALOG、 PROCEDURE_NAME、PROCEDURE_TYPE

ソート順 : PROCEDURE_CATALOG、 PROCEDURE_NAME

PARAMETER_TYPE String 次のいずれかの値になり ます。

INPUT : パラ メーターは入力パラ メーターです。

INPUTOUTPUT:パラ メ ーターは入出力パラメ ーターです。

OUTPUT : パラ メーターは出力パラ メーターです。

RETURNVALUE:パラ メーターはプロシージャの戻り値で

す。

UNKNOWN : データ プロバイダーには不明なパラ メー

ターの種類です。

PROCEDURE_CATALOG String カタログ名。

PROCEDURE_NAME String プロシージャ名。

PROVIDER_DEFINED_TYPE Int32 列のデータ ソース定義の型は、データ プロバイダーの型の

列挙(たと えば PSQLDbType 列挙)にマッ プされています。

この値をヌルにするこ とはできません。

PROVIDER_GENERIC_TYPE Int32 列のデータ ソース定義の型は System.Data.DbType 列挙に

マップされています。

この値をヌルにするこ とはできません。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-11 ProcedureParameters スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

7-17

Page 170: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

TablePrivileges スキーマ コレクシ ョ ン

説明 : TablePrivileges スキーマ コレクシ ョ ンは、 カタログに定義されてい

るテーブルについて、 指定したユーザーが利用できる、 つま り許可されて

いる権限を識別します。

制限の数 : 3

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME、 GRANTEE

ソート順 : TABLE_CATALOG、 TABLE_NAME、 PRIVILEGE_TYPE

表 7-12 Procedures スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

PROCEDURE_CATALOG String データベース名。

PROCEDURE_NAME String プロシージャ名。

PROCEDURE_TYPE String 次のいずれかの値になり ます。

UNKNOWN : 値が返されるかど うかわかり ません。

PROCEDURE : プロシージャ。 値は返されません。

FUNCTION : 関数。 値が返されます。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

表 7-13 TablePrivileges スキーマ コレクシ ョ ン

列名 型インジケーター1 説明

GRANTEE String 権限が付与されているユーザー名 (または PUBLIC)。

PRIVILEGE_TYPE String 権限のタイプ。 次のいずれかのタイプにな り ます。

DELETE

INSERT

REFERENCES

SELECT

UPDATE

TABLE_CATALOG String テーブルが定義されているデータベースの名前。

TABLE_NAME String テーブル名。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

7-18

Page 171: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

追加のスキーマ コレクシ ョ ン

Tables スキーマ コレクシ ョ ン

説明 : Tables スキーマ コレクシ ョ ンは、 指定したユーザーがアクセスでき

るカタログに定義されているテーブル (ビューも含む) を識別します。

制限の数 : 3

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME、 TABLE_TYPE

ソート順 : TABLE_TYPE、 TABLE_CATALOG、 TABLE_NAME

表 7-14 Tables スキーマ コレクシ ョ ン

列名 .NET Framework データ型 1

説明

DESCRIPTION String テーブルの記述。

列に関連付けられている記述がない場合、データ プロバイ

ダーは DbNull を返します。

TABLE_CATALOG String テーブルが定義されているデータベースの名前。

TABLE_NAME String テーブル名。

TABLE_TYPE String テーブルの種類。 次のいずれかです。

ALIAS

GLOBAL TEMPORARY

LOCAL TEMPORARY

SYNONYM

SYSTEM TABLE

SYSTEM VIEW

TABLE

VIEW

この列に空文字列を含めるこ とはできません。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

7-19

Page 172: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スキーマ情報の入手

Views スキーマ コレクシ ョ ン

説明 : Views スキーマ コレクシ ョ ンは、 指定したユーザーがアクセスでき

るカタログに定義されているビューを識別します。

制限の数 : 2

使用可能な制限 : TABLE_CATALOG、 TABLE_NAME

ソート順 : TABLE_CATALOG、 TABLE_NAME

表 7-15 Views スキーマ コレクシ ョ ン

列名 型インジケーター1 説明

TABLE_CATALOG String テーブルが定義されているデータベースの名前。

TABLE_NAME String テーブル名。

VIEW _DEFINITION String ビュー定義。 これはクエ リ式です。

1 ク ラスはすべて System.XXX です。 たとえば、 System.String とな り ます。

7-20

Page 173: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

8

.NET の SQL エスケープ シーケンス

エスケープ シーケンスの使用

通常、 外部結合やスカラー関数の呼び出しなどの言語機能の多くは、 デー

タベース管理システム (DBMS) によって実装されます。 これらの機能の

標準的な構文が定義されていても、 DBMS 特有の構文が使われる場合がよ

くあ り ます。 .NET では、次の言語機能の標準的な構文を含む、エスケープ

シーケンスをサポート します。

日付、 時刻およびタイムスタンプのリテラル

数値、 文字列およびデータ型変換関数などのスカラー関数

外部結合

.NET で使用するエスケープ シーケンスは次のとおりです。

{extension}

このエスケープ シーケンスは Pervasive PSQL データ プロバイダーによっ

て認識および解析されます。 このデータ プロバイダーはこのエスケープ

シーケンスをデータ ス ト ア固有の文法で置き換えます。

8-1

Page 174: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

.NET の SQL エスケープ シーケンス

日付、 時刻、 タイムスタンプのエスケープ シーケンス

日付、時刻、およびタイムスタンプ リ テラルのエスケープ シーケンスは次

のとおりです。

{literal-type '値 '}

literal-type は以下に示すタイプのうちの 1 つです。

例: UPDATE Orders SET OpenDate={d '1997-01-29'} WHERE OrderID=1023

リ テラルの型 説明 値の形式

d 日付 yyyy-mm-dd

t 時刻 hh:mm:ss [1]

ts タイムスタンプ yyyy-mm-dd hh:mm:ss[.f...]

8-2

Page 175: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

スカラー関数

スカラー関数

SQL 文で使用できるスカラー関数の構文は、 次のとおりです。

{fn scalar-function}

scalar-function は、 表 8-1 に列挙されている Pervasive PSQL データ プロ

バイダーでサポート されるスカラー関数です。

例:

SELECT {fn UCASE(NAME)} FROM EMP

表 8-1 サポート されるスカラー関数

文字列関数 数値関数 日付時刻関数 システム関数

ASCIIBIT_LENGTHCHARCHAR_LENGTHCHARACTER_LENGTHCONCATLCASE または LOWERLEFTLENGTHLOCATELTRIMOCTET_LENGTHPOSITIONREPLACEREPLICATERIGHTRTRIMSPACESTUFFSUBSTRINGUCASE または UPPER

ABSACOSASINATANATAN2CEILINGCOSCOTDEGREESEXPFLOORLOGLOG10MODPIPOWERRADIANSRANDROUNDSIGNSINSQRTTANTRUNCATE

CURDATECURRENT_DATECURTIMECURRENT_TIMECURRENT_TIMESTAMPDAYNAMEDAYOFMONTHDAYOFYEAREXTRACTHOURMINUTEMONTHMONTHNAMENOWQUARTERSECONDTIMESTAMPADDTIMESTAMPDIFFWEEKYEAR

DATABASEUSER

8-3

Page 176: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

.NET の SQL エスケープ シーケンス

外部結合のエスケープ シーケンス

.NET では SQL92 の左外部結合、 右外部結合、 および完全外部結合の構文

をサポート しています。外部結合用のエスケープ シーケンスは次のとおり

です。

{oj outer-join}

この outer-join には次のよ うな構文が入り ます。

table-reference {LEFT | RIGHT | FULL} OUTER JOIN {table-reference | outer-join} ON search-condition

この場合、

table-reference はテーブル名で search-condition はテーブルを結合す

るのに使用する条件です。

例:

SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID} WHERE Orders.Status='OPEN'

Pervasive PSQL データ プロバイダーは、以下の外部結合エスケープ シーケ

ンスを Pervasive PSQL 9.x 以上と同様にサポート します。

左外部結合

右外部結合

完全外部結合

8-4

Page 177: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

9

ロック レベルと分離レベル

ロ ッ ク レベルと分離レベルの使用

ここでは、ロ ッ ク レベルおよび分離レベルについて、またこれらの設定が、

取得するデータにどのよ うに影響するかについて説明します。 データベー

ス システムによって、サポートするロ ッ ク レベルおよび分離レベルは異な

り ます。 Pervasive PSQL では ReadCommitted と Serializable の分離レベルを

サポート します。 Pervasive PSQL はレコード レベルのロ ッ ク もサポート し

ます。

詳細については、 「分離レベル」 (2-28 ページ) を参照して ください。

9-1

Page 178: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ロック レベルと分離レベル

ロック

ロ ッ ク とは、 ユーザーがデータベースのテーブルやレコードにアクセスす

るのを制限する処理です。 複数のユーザーが同じテーブルやレコードに同

時にアクセスする可能性がある場合に、 ロ ッ クをかけます。 テーブルやレ

コードをロ ッ クする と、 一度に 1 人のユーザーだけがデータに影響する処

理を行えるよ うにな り ます。

ロ ッ ク制御は、 複数のユーザーが、 データベースの同じレコードに同時に

アクセスした り変更する場合に特に重要です。 複数のユーザーが同時に使

えるデータベースは便利ですが、 問題が発生するこ と もあ り ます。 たとえ

ば、 ロ ッ ク していない場合、 2 人のユーザーが同時に同じレコードを変更

しよ う とする と、 正確なデータが取得できなかったり、 一方のユーザーが

必要とするデータをも う一方のユーザーが削除してしま う可能性があ り ま

す。しかし、いったん 1 人のユーザーがアクセスしたレコードを、他のユー

ザーが一時的に変更できないよ うにロ ッ クできるよ うにしておく と、 この

よ うな問題は発生しません。 ロ ッ クするこ とによって、 データベースへの

同時アクセスによる問題の発生を 小限に抑えるこ とができます。

9-2

Page 179: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

分離レベル

分離レベル

分離レベルとは、データの一貫性を高めるためにデータベース システムで

採用される特別なロ ッ ク方法です。 分離レベルが高いほど、 そのロ ッ ク方

法も複雑になり ます。データベースで使用される分離レベルによって、デー

タの一貫性に関連する次の事象がト ランザクシ ョ ンで発生するかど うかが

決ま り ます。

分離レベルとは、データベース システムで、上記の事象が発生するのを防

げるかど うかを示すレベルです。ANSI(American National Standards Institute:米国規格協会) によって、 次の 4 つの分離レベルが定められています

Read uncommitted (0) (コ ミ ッ ト されていない読み取り)

Read committed (1) (コ ミ ッ ト された読み取り)

Repeatable read (2) (反復可能な読み取り)

Serializable (3) (直列化可能)

メモ Read committed (1) (コ ミ ッ ト された読み取り)および Serializable(3) (直列化可能) 分離レベルは Pervasive PSQL v10 SP3 でのみサポー

ト されます。

0 から 3 へとレベルが高くなるほど、 ト ランザクシ ョ ンのデータの一貫性

も高くな り ます。 一番低いレベルでは、 上の 3 つの事象がすべて発生する

可能性があ り ます。 一番高いレベルでは、 どの事象も発生しません。 この

よ うな事象が発生するのを防げるかど うかは、 各レベルで使う、 次のよ う

なロ ッ ク方法によって決ま り ます。

Dirty reads(ダーティー リード)

ユーザー 1 が行を変更します。 ユーザー 1 がコ ミ ッ ト

する前に、 ユーザー 2 が同じ行を読み取り ます。 ユー

ザー 1 がロールバッ ク します。 ユーザー 2 は、 実際に

はデータベースに存在しない行を読み取ったこ とにな

り ます。 これによって、 ユーザー 2 は誤ったデータに

対して判断を下すこ とになるかもしれません。

Non-repeatable reads(反復不可能な読み取

り)

ユーザー 1 が行を読み取り ましたがコ ミ ッ ト しません。

ユーザー 2 がその同じ行を修正または削除し、 それを

コ ミ ッ ト します。 ユーザー 1 がも う一度同じ行を読み

取ったと きは、 その行が変更または削除されています。

Phantom reads(ファン ト ム リード)

ユーザー 1 は、 検索条件を使用して複数行のセッ ト を

読み取り ましたがコ ミ ッ ト はしません。 ユーザー 2 がこの検索条件を満たす行を挿入し、 コ ミ ッ ト し ます。

ユーザー 1 が検索条件を使っても う一度読み取ったと

きには、 前になかった行が存在するこ とになり ます。

9-3

Page 180: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ロック レベルと分離レベル

表 9-1 では各分離レベルにおいて発生するデータ一貫性の事象を示しま

す。

分離レベルが高いほどデータの一貫性は高くな り ますが、逆に、個々のユー

ザーの同時処理性は低くな り ます。 同時処理とは、 複数のユーザーが同時

にデータにアクセスして変更するこ とです。分離レベルが上がるに従って、

使用されるロ ッ ク制御が原因で、 同時処理上の問題が発生する確率が高く

な り ます。

Read uncommitted (0)(コ ミ ッ ト されていな

い読み取り)

データベースを変更する と きにロ ッ クがかか り、 ト ラ

ンザクシ ョ ンの終わり (EOT) まで維持されます。デー

タベースの読み取りには、 ロ ッ クがかかり ません。

Read committed (1) (コ ミ ッ ト された読み

取り) 1

データベースの読み取り と変更時にロ ッ クがかかり ま

す。 読み取り後にロ ッ クは解除されますが、 変更され

たオブジェク トのロ ッ クは EOT まで維持されます。

Repeatable read (2) (反復可能な読み取り)

データベースの読み取り と変更時にロ ッ クがかかり ま

す。 変更されたすべてのオブジェク トのロ ッ クは EOTまで維持されます。 データの読み取り ロ ッ クは、 EOTまで維持されます。 変更不可能なアクセス構造 (イン

デッ ク スおよびハッシュ構造など) のロ ッ クは読み取

り後に解除されます。

Serializable (3) (直列化可能) 1

DataSet の影響を受ける行に、 EOT までロ ッ クがかかり

ます。 変更されたアクセス構造、 およびクエ リ で使わ

れた構造がすべて EOT までロ ッ ク されます。

1Pervasive PSQL v10 SP3 でサポート されます。

表 9-1 分離レベルとデータの一貫性

レベル Dirty Read( ダーティ ー リ ード )

Nonrepeatable Read( 反復不可能な

読み取り )

Phantom Read( ファ ント ム リ ード )

0, Read uncommitted(コ ミ ッ ト されていない読

み取り)

可 可 可

1, Read committed(コ ミ ッ ト された読み取り)

不可 可 可

2, Repeatable read(反復可能な読み取り)

不可 不可 可

3, Serializable(直列化可能)

不可 不可 不可

9-4

Page 181: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

分離レベル

検討事項 : 分離レベルが高くなるほどロ ッ ク制御が厳し くな り、 ユーザー

が、別のユーザーによってかけられたロッ クが解除されるのを待つ時間が長

くなり ます。 分離レベルと同時処理性には、 このよ う な逆比例的な関係が

あるので、 分離レベルを選択する前にユーザーがデータベースをどのよ う

に使用するか検討しておく必要があ り ます。 データの一貫性と同時処理性

のどちらがよ り重要かを考慮して、使用する分離レベルを決めてください。

9-5

Page 182: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ロック レベルと分離レベル

ロック モード とレベル

データベース システムによって使用するロッ ク モードは異なり ますが、通

常、「共有ロッ ク」 と 「排他ロッ ク」 という 2 種類の基本モードがあ り ます。

共有ロ ッ クでは、 複数のユーザーが単一オブジェク ト を参照するこ とが可

能です。1 人のユーザーがレコードに共有ロッ クをかける と、2 番目に同じ

レコードにアクセスしたユーザーも共有ロ ッ クをかける こ とができます。

ただし、 2 番目のユーザーは、 そのレコードに排他ロ ッ クをかけるこ とは

できません。 排他ロ ッ ク とは、 そのロ ッ クを取得したユーザーへの独占的

な権利です。1 人のユーザーがレコードに排他ロッ クをかける と、2 番目の

ユーザーは、 同じレコードにどの種類のロ ッ ク もかけられなくな り ます。

データベース システムで使用するロッ ク レベルは、パフォーマンスと同時

処理性にも影響します。 ロ ッ ク レベルによって、データベース内でロ ッ ク

されるオブジェク トのサイズが決ま り ます。 たとえば、データベース シス

テムの多くで、 テーブル全体、 および個々のレコードをロ ッ クするこ とが

できます。 また、ページ レベルのロ ッ ク (ロ ッ ク レベルは中程度) もよ く

使われます。1 ページには 1 つまたは複数のレコードが入っていますが、こ

れは通常、 1 回のディ スク アクセスでディ スクから読み取られるデータの

量です。 ページ レベルのロッ クの大きな欠点は、 1 人のユーザーがレコー

ドをロ ッ クする と、 同じページに保存されているほかのレコードを 2 番目

のユーザーがロ ッ クできないこ とです。

9-6

Page 183: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

10

パフォーマンスの最適化を図る.NET アプリケーションの設計

.NET アプ リ ケーシ ョ ンの 適化

パフォーマンス重視の .NET アプリ ケーシ ョ ンを開発するこ とは容易では

あ り ません。 ADO.NET データ プロバイダーは、 コードの実行速度が非常

に遅くても、 それを伝える例外をスローしません。

10-1

Page 184: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パフォーマンスの最適化を図る .NET アプリケーシ ョ ンの設計

データの取得

データを効率よ く取得するには、 必要なデータのみを返す も効率のよい

方法を選択します。 こ こでは、 .NET アプリ ケーシ ョ ンでデータを取得する

と きに、 システムのパフォーマンスを 適化する方法を説明します。

アーキテクチャについての理解 ADO.NET は ADO.NET データ プロバイダーを使用してデータにアクセス

します。 .NET の実行時のデータ アクセスは、 すべて ADO.NET データ プロバイダーを介して行われます。

ADO.NET の開発ウ ィザードでは、OLE DB を使用してウ ィザードのグ リ ッ

ド を埋めていきます。 設計時にこれらのウ ィザードがアクセスするのは

OLE DB ですが、 生成されたランタイム コンポーネン トがデータのアクセ

スに使用するのは ADO.NET データ プロバイダーです。 .NET アプ リ ケー

シ ョ ンで OLEDB を介したデータ アクセスを 適化するのは実用的ではあ

り ません。 代わりに ADO.NET データ プロバイダーを、 実行時のすべての

作業を行う コンポーネン ト と して 適化します。

長いデータの取得

ネッ ト ワーク経由で長いデータを取得するのには時間がかかり、 リ ソース

も消費するので、 特に必要な場合以外は、 アプリ ケーシ ョ ンから長いデー

タを要求しないよ うにします。

ユーザーが長いデータを必要とするこ とはほとんどあ り ません。 ユーザー

がこのよ うな結果項目の確認を要求する場合は、 選択リ ス トに長いデータ

の列だけを指定して、 アプリ ケーシ ョ ンからも う一度データベースを照会

します。このよ うにする と、平均的なユーザーは、ネッ ト ワーク ト ラフ ィ ッ

クのパフォーマンスにさほど影響を与えずに結果セッ ト を取得するこ とが

できます。

アプリ ケーシ ョ ンによっては、 ADO.NET データ プロバイダーにクエリ を

送信する前に選択リ ス ト を編成しないものもあ り ます (一部のアプリ ケー

シ ョ ンでは、select * from <table name> ... などの構文を使用し

ます)。長いデータが選択リ ス トに入っている と、アプリ ケーシ ョ ンが長い

データを結果セッ トにバインド していなくても、 フェッチ時に長いデータ

を取得する必要があるデータ プロバイダーもあ り ます。できれば、 テーブ

ルの一部の列のみを取得する方法を試して ください。

場合によっては長いデータを取得しなければならないこ とがあ り ます。 こ

のよ うな場合でも、 一般に 100 KB を超えるよ う な大量のテキス ト を画面

に表示させるのは望まし くあ り ません。

10-2

Page 185: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データの取得

取得するデータのサイズの縮小

ネッ ト ワーク ト ラフ ィ ッ クを減ら してパフォーマンスを向上させるため

に、 大行数や 大フ ィールド サイズの設定を呼び出したり、行サイズや

フ ィールド サイズを制限するほかのデータベース固有のコマンドを呼び

出したり して、 取得するデータのサイズを扱いやすいサイズまで下げるこ

とができます。 取得するデータのサイズを下げるも う 1 つの方法は、 列の

サイズを小さ くするこ とです。データ プロバイダーでパケッ ト サイズを定

義できる場合は、 必要な 小パケッ ト サイズを指定します。

また、 必要な行のみが返されるよ うにして ください。 たとえば、 2 列しか

必要でないのに 5 列を返すよ うにしていた場合、 不要な列に長いデータが

入っている と、 パフォーマンスが低下します。

CommandBuilder オブジェク トの使用

CommandBuilder オブジェク トは SQL ステート メン ト を生成するには便利

だと思われがちです。 しかし、 これを使用する とパフォーマンスに悪影響

を及ぼす恐れがあ り ます。同時処理の制限が原因で、CommandBuilder オブ

ジェク トは効率のよい SQL ステート メン ト を生成するこ とができません。

たとえば、次の SQL ステート メン トは Command Builder で作成されたもの

です。

CommandText:UPDATE TEST01.EMP SET EMPNO = ?, ENAME = ?, JOB = ?, MGR = ?, HIREDATE = ?, SAL = ?, COMM = ?, DEPT = ? WHERE

( (EMPNO = ?)AND ((ENAME IS NULL AND ?IS NULL) OR (ENAME = ?))AND ((JOB IS NULL AND ?IS NULL) OR (JOB = ?))AND ((MGR IS NULL AND ?IS NULL) OR (MGR = ?))AND ((HIREDATE IS NULL AND ?IS NULL) OR (HIREDATE = ?))AND ((SAL IS NULL AND ?IS NULL) OR (SAL = ?))AND ((COMM IS NULL AND ?IS NULL) OR (COMM = ?))AND ((DEPT IS NULL AND ?IS NULL) OR (DEPT = ?)) )

ほとんどの場合、 Command Builder で生成される Update ステート メン トや

Delete ステート メン ト よ り も、 エンド ユーザーの方が効率のよいステート

メン ト を記述できます。

も う 1 つの問題は、 CommandBuilder オブジェ ク ト の設計にあ り ます。

CommandBuilder オブジェク トは常に DataAdapter オブジェク ト と関連付け

られ、 DataAdapter オブジ ェ ク ト が生成する RowUpdating イベン ト と

RowUpdated イベン トのリ スナーと して CommandBuilder オブジェク ト自身

を登録します。 したがって、 行を更新するたびに、 この 2 つのイベン トが

処理されなければなり ません。

10-3

Page 186: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パフォーマンスの最適化を図る .NET アプリケーシ ョ ンの設計

正しいデータ型の選択

データ型によっては、 取得や送信に時間がかかるものがあ り ます。 スキー

マを設計する と きには、 も効率よ く処理できるデータ型を選択して くだ

さい。 たとえば、 整数データは浮動小数点データよ り速く処理できます。

浮動小数点データは、 内部データベース固有の形式に基づいて定義され、

通常、圧縮形式になっています。 このよ うなデータは、 ワイヤ プロ ト コル

で処理できるよ うに、 解凍して別の形式に変換する必要があ り ます。

処理時間が も短いデータ型は文字列で、 その次が整数です。 整数の場合

は、 通常、 何らかの変換またはバイ トの並べ替えが必要です。 浮動小数点

データ と タイムスタンプの処理には、 整数の少なく と も 2 倍の時間が必要

です。

10-4

Page 187: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

.NET オブジェク ト と メ ソ ッ ドの選択

.NET オブジェク ト と メ ソ ッ ドの選択

こ こでは、 .NET オブジェク ト と メ ソ ッ ドを選択して使用する と きに、シス

テムのパフォーマンスを 適化する方法を説明します。

ストアド プロシージャの引数としてのパラメーター マーカーの使用

ス ト アド プロシージャを呼び出す場合は、 リ テラル引数ではな く、 常に、

引数マーカーのパラ メーター マーカーを使用します。

Command オブジェ ク ト の CommandText プロパテ ィにス ト ア ド プロシー

ジャ名を設定する場合、そのリテラル引数を CommandText へ物理的にコー

ディングしないでください。 たとえば、 次のよ うな リ テラル引数は使いま

せん。

{call expense (3567, 'John', 987.32)}

ADO.NET データ プロバイダーでは、データベース サーバーのス ト アド プロシージャを呼び出すこ とができますが、 その際プロシージャをその他の

SQL クエ リ と して実行します。 ス ト アド プロシージャを SQL クエ リ と し

て実行する と、データベース サーバーがステート メン ト を解析し、引数の

型を検証し、 引数を正しいデータ型に変換します。

次の例で、 アプ リ ケーシ ョ ン プログ ラマは getCustName の引数を整数

12345 である と見なすでし ょ う。

{call getCustName (12345)}

しかし、 SQL は常に文字列と してデータベース サーバーに送信されます。

データベース サーバーが SQL クエ リ を解析し、 引数値を分離しても結果

はまだ文字列です。 データベース サーバーで文字列 "12345" を整数値

12345 に変換する必要があ り ます。 パラ メーター マーカーを使用するこ と

で文字列変換の必要がなくなるので、データベース サーバーでの処理量を

減らすこ とができます。

{call getCustName (?)}

10-5

Page 188: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パフォーマンスの最適化を図る .NET アプリケーシ ョ ンの設計

.NET アプリケーシ ョ ンの設計

こ こでは、 .NET アプリ ケーシ ョ ンを設計する と きに、 システム パフォー

マンスを 適化する方法を説明します。

接続の管理

アプリ ケーシ ョ ンのパフォーマンスを向上させるには、 接続を適切に管理

するこ とが重要です。 接続を複数回行う代わりに、 1 回の接続で複数のス

テー ト メ ン ト オブジェ ク ト を使用する こ とで、 アプ リ ケーシ ョ ンのパ

フォーマンスを 適化します。 初期接続の確立後は、 データソースへの接

続は行わないよ うにします。

接続プールを使用する と、 特に、 ネッ ト ワークまたは World Wide Web を介して接続するアプリ ケーシ ョ ンのパフォーマンスを大幅に向上させるこ

とができます。また、接続プールによって接続の再利用が可能になり ます。

接続を閉じても、 データベース との物理的接続を閉じるわけではあ り ませ

ん。アプリケーシ ョ ンが接続を要求すると、アクティブな接続が再利用され

るので、 新しい接続の作成に必要なネッ ト ワークへの I/O は発生しません。

接続は、 あらかじめ割り当てておきます。 まず、 どの接続文字列が必要か

を確認します。 1 つの固有な接続文字列で、 新しい接続プールが 1 つ作成

されます。

一度作成された接続プールは、 ア ク テ ィ ブなプロセスが終了するか、

Connection Lifetime に指定された時間が過ぎるまで破棄されません。 アク

テ ィ ブでないプールや空のプールを維持するのに必要なシステム オー

バーヘッ ドは、 ご くわずかです。

接続とステート メン トの処理は、 実装前に決めておく必要があ り ます。 接

続方法を慎重に管理するこ とで、 アプリ ケーシ ョ ンのパフォーマンスが向

上し、 メンテナンスも簡単になり ます。

ネイテ ィブの管理プロバイダーの使用

アンマネージ コード、 つま り .NET 環境外のコードへのブ リ ッジは、 パ

フォーマンスを低下させます。マネージ コードからアンマネージ コードを

呼び出すと、データ プロバイダーの実行速度はマネージ コードのみのデー

タ プロバイダーよ り も著し く遅くな り ます。このよ うなパフォーマンスが

大き く落ちる方法は、 極力避けます。

ブリ ッジを使用する場合は、 そのブリ ッジのためのコードを書く こ とにな

り ます。後でデータベース固有の ADO.NET データ プロバイダーが使用可

能になったと き、このコードを書き直す必要があ り ます。つま り、オブジェ

ク ト名、 スキーマ情報、 エラー処理、 およびパラ メーターを書き直さなけ

ればなり ません。ブリ ッジ用ではなく管理データ プロバイダー用にコード

化するこ とによって、 貴重な時間と リ ソースを節約できます。

10-6

Page 189: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

データの更新

データの更新

こ こでは、データベースのデータを更新する と きのシステム パフォーマン

スを 適化する方法を説明します。

切断された DataSet の使用

結果セッ トのサイズが、 なるべく小さ くなるよ うにします。 サーバーから

結果セッ ト をすべて取得してから、DataSet を埋める必要があ り ます。結果

セッ ト全体をク ライアン トのメモ リに保存します。

データソースへの変更の同期

データ ソースへの変更の同期を取るには、次の例で示すよ うに主キーを使

用して、 PsqlDataAdapter にロジッ クを作成する必要があ り ます。

string updateSQL As String = "UPDATE emp SET sal = ?, job = ?" + " = WHERE empno = ?";

10-7

Page 190: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パフォーマンスの最適化を図る .NET アプリケーシ ョ ンの設計

10-8

Page 191: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

11

バルク ロード構成ファイル

この付録は、 DataDirect によるバルク ロードで使用される構成ファイルに

ついて説明します。 この機能の詳細については、 「Pervasive Bulk Load の使

用」 (3-15 ページ) を参照して ください。

11-1

Page 192: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

バルク ロード構成ファイル

バルク データ構成ファイルのサンプル

バルク形式の構成ファイルは、テーブルまたは DataReader がバルク コピー

操作およびバルク ロード操作を使ってエクスポート (アンロード) された

場合に作成されます。

<?xml version="1.0"?><!--Sample DDL----------

CREATE_STMT = CREATE TABLE GTABLE (CHARCOL char(10), VCHARCOL varchar2(10), \

DECIMALCOL number(15,5), NUMERICCOL decimal(15,5), SMALLCOL number(38), \

INTEGERCOL integer, REALCOL number, \ FLOATCOL float, DOUBLECOL number, LVCOL clob, \ BITCOL number(1),TINYINTCOL number(19), BIGINTCOL

number(38), BINCOL raw(10), \ VARBINCOL raw(10), LVARBINCOL blob, DATECOL date, \ TIMECOL date, TSCOL date) -->

<table codepage="UTF-16" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///c:/Documents%20and%20Settings/jbruce/My%20Documents/Current%20Specs/BulkData.xsd">

<row> <column codepage="UTF-16" datatype="CHAR"

length="10" nullable="true">CHARCOL</column> <column codepage="UTF-16" datatype="LONGVARCHAR"

length="10">VCHARCOL</column> <column codepage="UTF-16" datatype="DECIMAL"

precision="15" scale="5">DECIMALCOL</column> <column codepage="UTF-16" datatype="DECIMAL"

precision="15" scale="5">NUMERICOL</column> <column codepage="UTF-16" datatype="DECIMAL"

precision="38">SMALLCOL</column> <column codepage="UTF-16"

datatype="INTEGER">INTEGERCOL</column> <column codepage="UTF-16"

datatype="SINGLEPRECISION"">REALCOL</column>

<!- こ こに、 さ らに定義を続けるこ とができます --> </row></table>

11-2

Page 193: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

バルク データ構成ファイル用の XML スキーマ定義

バルク データ構成ファイル用の XML スキーマ定義

バルク構成 XML スキーマは、 バルク構成ファ イルを管理します。 バルク

構成ファイルは、 DataDirect によるバルク ロードで処理されるバルク ロー

ド データ ファ イルを管理します。

DataDirect Technologies はこのスキーマを http://www.datadirect.com/ns/bulk/BulkData.xsd で公開し、 この DataDirect 標準を使用して作成されるサード

パーティ機能の土台を提供しています。 今後、 大量のデータを管理するカ

スタム アプリ ケーシ ョ ンまたはツールが、 ODBC、 JDBC および ADO.NETAPI 間や複数のプラ ッ ト フォーム間で、 疎結合型の DataDirect によるバル

ク ロード と してこのスキーマを採用するこ とが予測されます。

DataDirect によるバルク ロードで消費される CSV データを生成する場合、

XML 構成ファイル用の XML スキーマを提供する必要があ り ます。

各バルク操作では、作成されるバルク データ ファ イルを記述する XML 構成ファイルを UTF-8 形式で生成します。 バルク データ ファ イルが作成で

きなかった り XML 構成ファ イルに記述されているスキーマに準拠してい

ない場合は、 例外がスローされます。

11-3

Page 194: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

バルク ロード構成ファイル

11-4

Page 195: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

12

IANA コード マッピング

この付録では、 も広範に使用されている IBM コード ページの IANA コー

ド ページ名へのマップを示します。

表 12-1 IANA コード ページ マッピング

IBM 番号 IANA コード ページ名

37 IBM037

38 IBM038

290 IBM290

300 IBM300

301 IBM301

500 IBM500

813 ISO_8859-7:1987

819 ISO_8859-1:1987

857 IBM857

860 IBM860

861 IBM861

897 IBM897

932 IBM-942_P120-2000

939 IBM-939

943 Windows-932-2000 (Windows ク ライアン ト用)

943 IBM-943_P14A-2000 (UNIX ク ライアン ト用)

950 Big5

1200 UTF-16

1208 UTF-8

12-1

Page 196: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

IANA コード マッピング

1251 Windows -1251

1252 Windows -1252

4396 IBM-930

5025 IBM5025

5035 IBM5035

5297 UTF-16

5304 UTF-8

13488 UTF-16BE

表 12-1 IANA コード ページ マッピング

IBM 番号 IANA コード ページ名

12-2

Page 197: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

13

用語集

共通の用語の定義

.NET アーキテクチャ

Microsoft では Microsoft .NET を、 情報、 人々、 システム、 およびデバイス

を繋ぐ一連の Microsoft ソフ ト ウ ェア テク ノ ロジである と定義していま

す。 ソフ ト ウェアの統合を 適化するために、 .NET Framework では Webサービス と呼ばれる小規模で独立したビルド ブロ ッ クのアプ リ ケーシ ョ

ンを使用します。 この Web サービスは相互に接続するほかに、 インター

ネッ ト上の別の Web サービス、 多数のアプリ ケーシ ョ ンに接続します。

.NET Framework には 2 つの重要な役割があ り ます。

ASP.NET は、 洗練されたク ライアン ト アプリ ケーシ ョ ン (Windowsフォーム) を構築するための環境であ り、疎結合型データ アクセス サブシステム (ADO.NET) です。

共通言語ランタイムは、.NET Framework でアプリ ケーシ ョ ンを実行す

るための中核的なランタイム エンジンです。 共通言語ランタイムは、

作成した .NET コードが実行される安全な領域 " サンドボッ クス " と考えるこ とができます。 共通言語ランタイムで実行するコードは 「マ

ネージ コード」 と呼ばれます。

ADO.NET.NET Framework 用のデータ アクセス コンポーネン ト。ADO.NET はデータ

ベースへの接続に使用するク ラスのセッ トで構成されており、 リ レーシ ョ

ナル データ、 XML およびアプリ ケーシ ョ ン データにアクセスして結果を

取得するこ とができます。

アセンブリ

1 つ以上のク ラスがま と まったもの。 それぞれのアセンブリは自己完結型

です。 つま り、 個々のアセンブリにはアセンブリ全体のメ タデータが含ま

れています。 アセンブリには、 プライベート と共有の 2 種類があ り ます。

13-1

Page 198: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

用語集

プライベート アセンブリ とは、限られた数のアプリ ケーシ ョ ンで使わ

れるアセンブリで、アプリ ケーシ ョ ン フォルダーまたはそのサブフォ

ルダーの 1 つに配置されます。 たとえば、 ク ラ イアン トに 「formulas」とい うプラ イベート アセンブ リ を呼び出すアプ リ ケーシ ョ ンが 2 つあっても、それぞれのク ライアン ト アプリ ケーシ ョ ンで、正しいアセ

ンブリ を読み込むこ とができます。

共有アセンブリは、 複数のクライアン ト アプリ ケーシ ョ ンで使用で

き、グローバル アセンブリ キャ ッシュ (Global Assembly Cache:GAC)に配置されます。 名前やバージ ョ ンが重複しないよ うに、 各共有アセ

ンブリには、 厳密な名前が付けられます。

アンマネージ コード

共通言語ランタイム環境外で、オペレーティング システムによって直接実

行されるコード。 アンマネージ コードは .NET Framework が導入される以

前に作成されたすべてのコードを指します。 アンマネージ コードは .NET環境外なので、 .NET の管理機能を利用するこ とはできません。

共通言語ランタイム (CLR : Common Language Rruntime)共通言語ランタイム (CLR) は Microsoft .NET Framework の中核的なラン

タイム エンジンです。 共通言語ランタイムでは、 ク ロス言語の統合、 コー

ド アクセス セキュ リティ、オブジェク トの有効期間の管理およびデバッグ

のサポート などのサービスを提供します。 共通言語ランタイムで実行する

アプリ ケーシ ョ ンは " サンドボッ クス " で実行されている と言われるこ と

があ り ます。

クライアン ト ロード バランス

コンピューター環境で接続要求に対応できないサーバーがないよ う、 新し

い接続を分散する メカニズム。

グローバル アセンブリ キャッシュ (GAC)

コンピューター上の多数のアプリ ケーシ ョ ンで共有するためにインス トー

ルされる各種アセンブリ を格納するアセンブリ キャ ッシュの部分。グロー

バル アセンブリ キャ ッシュに配置されたアプリ ケーシ ョ ンは、名前やバー

ジ ョ ンの競合に対処するために厳密な名前を持つ必要があ り ます。

厳密な名前

アセンブリのテキス ト名、 バージ ョ ン番号およびカルチャ情報 (設定され

ている場合) と、 そのアセンブリについて生成される公開キーとデジタル

署名で構成される名前です。 同じ厳密な名前を持つ複数のアセンブリは同

一である とみなされます。

13-2

Page 199: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

コード アクセス セキュリテ ィ (CAS)マネージ コードがセキュ リ テ ィ ポ リ シーで権限を与えられる共通言語ラ

ンタイムによって提供される メカニズム。 権限が行使され、 コードが実行

できる操作を制限します。

スキーマ コレクシ ョ ン

一緒にグループ化する と さ らに効率よ く処理できる、 密接に関連するス

キーマ。テーブルや列などのデータベース スキーマ要素は、スキーマ コレ

クシ ョ ンを介して公開されます。

スト リーム

バイナリ データやテキス ト データの流れの抽象化。 Stream ク ラス とその

派生クラスは、これらのさまざまな種類の入出力のジェネ リ ッ ク ビューを

提供します。

接続の再試行

接続の再試行では、データ プロバイダーが 初の接続の試行に失敗した後

に、 プライマ リ サーバーおよび (設定している場合) 代替サーバーへ接続

を試行する回数を定義します。 接続の再試行は、 システム復旧の有力な方

策とな り ます。

接続プール

データ プロバイダーが、基本的なデータベースへの接続を確立する必要が

あるたびに新しい接続を作成するのではなく、 接続が再利用できるよ うに

する処理。

接続フェイルオーバー

ハード ウェア障害やト ラフ ィ ッ クの過負荷などによってプラ イマ リ デー

タベース サーバーが利用できなくなった場合でも、アプリ ケーシ ョ ンが代

替またはバッ クアップ データベース サーバーに接続するこ とができる メ

カニズム。

名前空間

関連する型をグループ化するための論理的な名前付けスキーム。 Microsoft.NET Framework では、階層型の名前付けスキームを使用して型を論理的な

カテゴ リ (ASP.NET 技術やリモート処理機能のよ うに関連する機能ごとの

カテゴ リ ) にグループ化しています。設計ツールで名前空間を使用すれば、

開発者はコード内の型を簡単に見つけたり参照するこ とができます。 つま

り、 1 つのアセンブ リには名前空間ルートが異なる階層名の型を複数含め

るこ とが可能であ り、 また、 1 つの論理的な名前空間ルートは複数のアセ

13-3

Page 200: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

用語集

ンブリ間にまたがるこ とができます。 .NET Framework では、論理設計時の

名前付けには名前空間が便利ですが、 アセンブ リは実行時に型の名前ス

コープを確立します。

パフォーマンス モニター

Windows SDK のツールで、パフォーマンスの問題が存在する領域を特定し

ます。パフォーマンス モニターではアプリ ケーシ ョ ンの CLR (共通言語ラ

ンタイム) 例外の回数や頻度を確認するこ とができます。 パフォーマンス

モニター (PerfMon) や VS パフォーマンス モニター (VSPerfMon) ユー

ティ リ ティ を使用する と、 アプリ ケーシ ョ ンのパラ メーターを記録し、 そ

の結果をレポートやグラフにして見るこ とができます。

バルク ロード

データベース ク ライアン トからデータベース サーバーへ行を送る と きに、

小さ く分割した多くのデータ パケッ ト と してではなく、連続したス ト リー

ムで送るこ と。 ネッ ト ワーク上での往復が大幅に減らせるため、 パフォー

マンスが向上します。

分離レベル

データの整合性を向上させるためにデータベース システムで採用される

特別なロ ッ ク方法。 分離レベルが高いほど、 そのロ ッ ク方法も複雑になり

ます。 データベースで使用される分離レベルによって、 ト ランザクシ ョ ン

におけるデータの一貫性の処理方法が決ま り ます。

ANSI (American National Standards Institute : 米国規格協会) によって、 次

の 4 つの分離レベルが定められています

Read uncommitted (0) (コ ミ ッ ト されていない読み取り)

Read committed (1) (コ ミ ッ ト された読み取り)

Repeatable read (2) (反復可能な読み取り)

Serializable (3) (直列化可能)

マネージ コード

.NET Framework、 特に共通言語ランタイムによって実行および管理される

コード。マネージ コードは共通言語ランタイムに必要な情報を与えるこ と

で、メモ リ管理やコード アクセス セキュ リティなどのサービスを利用する

こ とができます。

ロード バランス

「ク ラ イアン ト ロード バランス」 (13-2 ページ) を参照して ください。

13-4

Page 201: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ロック レベル

テーブルやレコードへアクセスするユーザーを 1 人に制限するデータベー

ス操作。 ロ ッ クは 2 人以上のユーザーが同時に同じテーブルやレコードを

使用する可能性がある状況で使用します。 テーブルやレコードをロ ッ クす

る と、 システムでは一度に 1 人のユーザーのみがデータを操作できるよ う

にします。

13-5

Page 202: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

用語集

13-6

Page 203: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

索引

記号?

パラ メーター マーカー用 .................... 2-22

AADO.NET

GetSchemaTable メ ソ ッ ドによって返される

列 ........................................................... 7-2OLE DB の使用...................................... 10-2PsqlCommandBuilder オブジェク ト ...... 6-7PsqlConnectionStringBuilder オブジェク ト 6-

11PsqlConnection オブジェク ト ................. 6-9PsqlDataReader オブジェク ト .............. 6-12PsqlErrorCollection オブジェク ト ........ 6-13PsqlError オブジェク ト ......................... 6-13PsqlException オブジェク ト ................. 6-14PsqlFactory オブジェク ト ..................... 6-15PsqlInfoMessageEventArgs オブジェク ト 6-15PsqlParameterCollection オブジェク ト 6-17PsqlParameter オブジェク ト ................. 6-16PsqlTrace オブジェク ト ........................ 6-18PsqlTransaction オブジェク ト .............. 6-19SQL エスケープ シーケンス ................. 8-1パフォーマンスの 適化 ..................... 10-1分離レベル ............................................... 9-1ロ ッ ク レベル .......................................... 9-1

AllowPartiallyTrustedCallers ....................... 3-14Alternate Servers 接続文字列オプシ ョ ン ... 2-4

BBulkConfigFile ............................................. 6-20BulkCopyColumnMappingCollection ク ラス 6-4BulkCopyColumnMapping ク ラス ............... 6-4BulkCopy ク ラス ........................................... 6-3BulkFile ........................................................ 6-21

CColumns スキーマ コレクシ ョ ン .............. 7-10CommandBuilder オブジェク ト

パフォーマンスへの影響 ..................... 10-3プロパティ ............................................... 6-7

CommandTimeout プロパティ ..................... 6-6Command オブジェク ト

ス ト アド プロシージャの有効化 ........ 2-24スレッ ドのサポート ............................. 2-26

Common Assembly ...................................... 3-16Connection Lifetime 接続文字列オプシ ョ ン

「Load Balance Timeout」 を参照

Connection Retry Count 接続文字列オプシ ョ ン 2-5

Connection Retry Delay 接続文字列オプシ ョ ン 2-5

ConnectionStringBuilder オブジェク ト ..... 6-11ConnectionTimeout ........................................ 6-9Connection オブジェク ト

スレッ ドのサポート ............................. 2-26プロパティ ............................................... 6-9

CSV「カンマ区切り値 (CSV) ファ イル」 を参照

CsvDataReader ............................................. 6-20CsvDataWriter .............................................. 6-22

コード例 ................................................. 3-17CSV ファ イル

バルク ロード データ ファ イル .......... 3-17文字セッ ト変換 ..................................... 3-19例 ............................................................. 3-18

DDataAdapter オブジェク ト

CommandBuilder オブジェク ト との関連 10-3プロパティ ............................................. 6-11

DataReader オブジェク ト

サポート されるプロパティ ................. 6-12サポート される メ ソ ッ ド ..................... 6-12

DataSourceInformation スキーマ コレクシ ョ ン

サポート される列名 ............................... 7-6DbBulkCopy ................................................. 6-23DbBulkCopyColumnMapping...................... 6-23DbBulkCopyColumnMappingCollection ..... 6-23DeriveParameters............................................ 6-7

索引 1

Page 204: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

EEncoding 接続文字列オプシ ョ ン ................ 2-6Encryption 接続文字列オプシ ョ ン .............. 2-6Encrypt 接続文字列オプシ ョ ン ................... 2-6ErrorCollection オブジェク ト

サポート されるプロパティ ................. 6-13複数エラーのチェッ ク ......................... 6-14

Error オブジェク ト , サポート されるプロパティ 6-13

externalfilecodepage 属性 ................... 3-18, 3-19

FForeignKeys スキーマ コレクシ ョ ン ........ 7-12Framework 型 ............................................... 2-15FullTrust........................................................ 3-14

GGetSchemaTable メ ソ ッ ド .......................... 6-12

IIANA コード マッピング........................... 12-1Indexes スキーマ コレクシ ョ ン ................ 7-13InfoMessageEventArgs オブジェク ト ........ 6-15Initialization 接続文字列オプシ ョ ン ........... 2-7

LLoad Balance Timeout 接続文字列オプシ ョ ン 2-7Load Balancing 接続文字列オプシ ョ ン ...... 2-8

MMetaDataCollections スキーマ コレクシ ョ ン 7-5Microsoft Enterprise Library アプリ ケーシ ョ ン ブ

ロ ッ ク .................................................. 5-1

N.NET

セキュ リティ ................................ 2-33, 3-14フレームワーク

サポート されるバージ ョ ン .............. 1-2データ型 ................................... 2-15, 2-19

プログラ ミ ング リ ソース .................... 2-33

PParameterCollection オブジェク ト

パラ メーター マーカー ........................ 2-22プロパティ ............................................. 6-17

Parameter オブジェク ト

コレクシ ョ ンへの追加 ......................... 2-22プロパティ ............................................. 6-16

Password 接続文字列オプシ ョ ン ................ 2-9PerfMon のサポート ................................... 3-23Performance Tuning Wizard

[Result] ダイアログ ............................. 4-16Visual Studio からの起動 ...................... 4-14

Persist Security Info 接続文字列オプシ ョ ン 2-9Pervasive Bulk Load

CSV 形式データを含むバルク ファ イルの指

定 ......................................................... 6-21CSV ファ イル形式用の DataReader 構文の提

供 ......................................................... 6-20外部オーバーフロー ファ イル ............ 3-20使用シナリオ ......................................... 3-15説明 ......................................................... 3-15データ ソース テーブルから宛先テーブルへ

の列のマップ ..................................... 6-23データを説明する CSV バルク構成ファイル

の指定 ................................................. 6-20ト ランザクシ ョ ンの使用 ..................... 3-21パフォーマンスを改善するためのシーケン

シャル アクセスの使用 .................... 6-21バルク ロード プロ ト コルの決定 ....... 3-19文字セッ ト変換 ..................................... 3-19

Pervasive Common Assembly説明 ......................................................... 3-16例 ............................................................... 1-6

Pervasive PSQL データ プロバイダー

DeriveParameters メ ソ ッ ド ..................... 6-7Unicode のサポート .............................. 2-27アセンブリ名 ........................................... 2-2イベン ト処理 ................................ 2-30, 6-10エラー処理 ............................................. 2-31オブジェク ト ........................................... 6-3外部結合のエスケープ構文 ................... 8-4スレッ ドのサポート ............................. 2-26接続の再試行 ........................................... 2-5接続プールの作成 ................................... 3-2接続プールの有効化 ............................... 2-9データ型 ................................................. 2-15ト ランザクシ ョ ンのサポート ............. 2-25

2 索引

Page 205: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

長いデータ パラ メーターに対する入力と し

てのス ト リーム ........................ 2-20, 2-21名前空間 ................................................... 2-2パラ メーター データ型のマッピング 2-17パラ メーター配列 ................................. 2-23パラ メーター マーカー ........................ 2-22バルク ロード操作

ト ランザクシ ョ ンでの使用............ 3-21プロパティ ............................................... 6-3分離レベル ............................................. 2-28方法 ........................................................... 6-3メ ソ ッ ド呼び出しの ト レース ............. 3-22ロード バランス ...................................... 2-8

PrimaryKeys スキーマ コレクシ ョ ン ....... 7-14ProcedureParameters スキーマ コレクシ ョ ン 7-

15Procedures スキーマ コレクシ ョ ン .......... 7-17PsqlBulkCopy................................................. 6-3PsqlBulkCopyColumnMapping...................... 6-4PsqlBulkCopyColumnMappingCollection ..... 6-4PsqlCommandBuilder オブジェク ト

パフォーマンスへの影響 ..................... 10-3プロパティ ............................................... 6-7

PsqlCommand オブジェク ト

ス ト アド プロシージャの有効化 ........ 2-24プロパティ ............................................... 6-4

PsqlConnectionStringBuilder オブジェク ト 6-11PsqlConnection オブジェク ト ...................... 6-9PsqlDataAdapter オブジェク ト .................. 6-11

UpdateBatchSize プロパティ ................ 6-11PsqlDataReader オブジェク ト ................... 6-12PsqlDbType ......................................... 2-15, 2-18PsqlDbTypes のマッピング ........................ 2-19PsqlErrorCollection オブジェク ト ............. 6-13PsqlError オブジェク ト .............................. 6-13PsqlException オブジェク ト ...................... 6-14PsqlFactory オブジェク ト .......................... 6-15PsqlInfoMessageEventArgs オブジェク ト . 6-15PsqlParameterCollection オブジェク ト ..... 6-17PsqlParameter オブジェク ト ...................... 6-16PsqlTrace オブジェク ト ............................. 6-18PsqlTransaction オブジェク ト .......... 2-25, 6-19

RReadCommitted 分離レベル ....................... 2-28ReservedWords スキーマ コレクシ ョ ン ..... 7-9

SSequentialAccess .......................................... 6-21Server DSN 接続文字列オプシ ョ ン .......... 2-10SQL エスケープ シーケンス

ADO.NET.................................................. 8-1外部結合 ................................................... 8-4スカラー関数 ........................................... 8-3全般 ........................................................... 8-1日付、 時刻、 タイムスタンプ ............... 8-2

Statement Cache Mode 接続文字列オプシ ョ ン 2-11, 3-6

StatementCacheBehavior プロパティ .... 3-6, 6-6System.Data.DbTypes .................................. 2-18

TTablePrivileges スキーマ コレクシ ョ ン ... 7-18Tables スキーマ コレクシ ョ ン .................. 7-19Timestamp 接続文字列オプシ ョ ン ........... 2-11Trace File 接続文字列オプシ ョ ン ............. 2-11Trace オブジェク ト

サポート されるプロパティ ................. 6-18使用 ......................................................... 3-22

Transaction オブジェク ト プロパティ ..... 6-19

UUnicode

サポート ................................................. 2-27バルク ロード データ ファ イルの文字変換

3-19User ID 接続文字列オプシ ョ ン................. 2-11

VViews スキーマ コレクシ ョ ン .................. 7-20Visual Studio

Add Table Wizard ................................... 4-21Add View ウ ィザード ........................... 4-26Performance Tuning Wizard ................... 4-14使用シナリオ

単純なクエ リにクエ リ ビルダーを使用す

る ..................................................... 4-31新規プロジェク トの作成 ..................... 4-18ツールボッ クスからの DataDirect コンポー

ネン トの追加 ..................................... 4-29Visual Studio 2005

索引 3

Page 206: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

Pervasive PSQL データ プロバイダーの使用 4-1

WWindows オペレーティング システムのサポー

ト .......................................................... xiv

XXML 構成ファイル

バルク ロード データ ファ イル形式の記述 3-18

例 ............................................................. 11-3

あアセンブリ

概要 ........................................................... 2-2名前 ........................................................... 2-2

宛先テーブル , 列のマップ........................ 6-23アプリ ケーシ ョ ン

ド ッ ト ネッ ト (.NET) アプ リ ケーシ ョ ンの

設計 「パフォーマンスの 適化」 を参照

暗号化されたネッ ト ワーク通信 , 有効化 2-6, 4-9

いイベン ト , ス ト アド プロシージャ と関数との使

用 ........................................................ 2-30イベン ト処理............................................... 2-30引用符で囲まれた識別子............................. 6-8

うウ ィザード

Add Table ウ ィザード Add Table う ぃざーど 4-21

Add View wizard..................................... 4-26Performance Tuning Wizard ................... 4-14

ウ ィジェ ッ ト , DataDirect の追加 ............. 4-29

えエスケープ シーケンス

ADO.NET.................................................. 8-1外部結合 ................................................... 8-4日付と時刻 ............................................... 8-2

エラー処理................................................... 2-31

おオブジェク ト

PsqlCommand ........................................... 6-4PsqlCommandBuilder ............................... 6-7PsqlConnection.......................................... 6-9PsqlConnectionStringBuilder.................. 6-11PsqlDataAdapter...................................... 6-11PsqlDataReader ....................................... 6-12PsqlError.................................................. 6-13PsqlErrorCollection ................................. 6-13PsqlException.......................................... 6-14PsqlInfoMessageEventArgs .................... 6-15PsqlParameter .......................................... 6-16PsqlTrace ................................................. 6-18PsqlTransaction .............................. 2-25, 6-19概要 .................................................. 7-1, 11-1公開 ......................................................... 2-32サポート されるパブリ ッ ク .NET オブジェク

ト ........................................................... 6-3プロバイダー固有のプレフ ィ ッ クス ... 6-3

オペレーティング システムのサポート 0-xiv

かカーソル , 前方のみ ................................... 6-12外部オーバーフロー ファ イル ................. 3-20外部結合のエスケープ シーケンス ........... 8-4カウンター , PerfMon ................................. 3-23カンマ区切り値 (CSV) ファ イル

バルク ロード データ ファ イル .......... 3-17バルク ロードでの使用 ........................ 3-18

きキーワード値のペア

パフォーマンスの 適化 ..................... 4-14共通プログラ ミ ング モデル

バルク ロード ク ラス ........................... 3-16共有アセンブリ ............................................ 2-2

くク イ ッ ク スタート ....................................... 1-1クエ リ ビルダー , 単純なクエリの実行 .. 4-31ク ラ イアン ト ロード バランス

説明 ......................................................... 3-10有効化 ....................................................... 2-8

グローバル アセンブリ キャ ッシュ .......... 2-2

4 索引

Page 207: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

け厳密な名前のアセンブリ ............................ 2-2

こ構成ファイル

サンプル バルク データ構成ファイル 11-2バルク データ構成ファイル ................ 3-18

コード ページ

サポート されるマッピング ................. 12-1ソース文字データの文字変換 ............. 3-19

コード例

接続情報の追加 ....................................... 1-4接続プールの作成 ................................... 3-2データベースに接続する ....................... 1-3統計情報項目の取得 ............................. 3-25名前空間の追加 ....................................... 1-4バルク ロード データ ファ イルの作成 3-17

コ ミ ッ ト された読み取り

分離レベルと ADO.NET ........................ 9-4コ ミ ッ ト されていない読み取り

分離レベルと ADO.NET ........................ 9-4コレクシ ョ ン , スキーマ

Columns................................................... 7-10ForeignKeys ............................................ 7-12PrimaryKeys............................................ 7-14ProcedureParameters ............................... 7-15TablePrivileges........................................ 7-18インデッ クス ......................................... 7-13テーブル ................................................. 7-19ビュー ..................................................... 7-20プロシージャ ......................................... 7-17

さノード , 定義 ............................................... 4-12ノードの定義 .............................................. 4-12...................................................................... 4-12サービス コンポーネン ト ......................... 2-33サポート されている関数 ............................ 8-3サポート されるプラ ッ ト フォーム ............. xiv

し識別子 , 引用符で囲む ................................. 6-8時刻リテラル エスケープ シーケンス ...... 8-2実行時の統計情報 ...................................... 3-24使用

アプリ ケーシ ョ ン コード内の DAAB.. 5-6ステート メン ト キャ ッシング .............. 3-6単純なクエリのためのクエ リ ビルダー 4-31

シ リ アライズ可能な分離レベル .............. 2-28新規プロジェク トの作成 .......................... 4-18診断のサポート

実行時の統計情報 ................................. 3-24メ ソ ッ ド呼び出しの ト レース ............. 3-22

すスカラー関数 ................................................ 8-3スキーマ コレクシ ョ ン

Columns................................................... 7-10DataSourceInformation ............................. 7-6ForeignKeys ............................................ 7-12MetaDataCollections ................................. 7-5PrimaryKeys............................................ 7-14ProcedureParameters ............................... 7-15ReservedWords ......................................... 7-9TablePrivileges........................................ 7-18TablesSchemas ........................................ 7-19インデッ クス ......................................... 7-13ビュー ..................................................... 7-20プロシージャ ......................................... 7-17

ステート メン ト キャ ッシング

概要 ........................................................... 3-6パフォーマンスへの影響の分析 ......... 3-25有効化 ................................................ 2-8, 3-6

ス ト アド プロシージャ

SQL ステート メン トで ? 記号を使用. 2-22キャ ッシング ........................................... 3-6サポート ................................................. 2-24出力配列のサポート ............................. 2-23パラ メーター マーカーを引数と して使用 .

10-5ス ト リーム オブジェク ト

サポート されるデータ型 ..................... 2-20長いデータ パラ メーターへの入力と して使

用 ......................................................... 2-21スレッ ドのサポート .................................. 2-26

せセキュ リティ

暗号化 ..................................................... 3-14さ らに詳しい情報 ................................. 2-33属性 ......................................................... 3-14

索引 5

Page 208: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ト レースの有効化 ................................. 3-22必要な権限 ............................................. 3-14

接続

概要 ........................................................... 2-4サーバー エクスプローラーで追加 ...... 4-2ステート メン ト キャ ッシング .............. 3-6接続の状態を リセッ ト ........................... 2-4データ ソース構成ウ ィザードによる追加 4-

11パフォーマンスの向上 ......................... 10-6

接続状態のリセッ ト ..................................... 2-4接続の再試行

概要 ......................................................... 3-11接続文字列オプシ ョ ン ........................... 2-5説明 ........................................................... 3-9

接続プール

概要 ........................................................... 3-2小接続数 ............................................... 2-8

作成 ........................................................... 3-2接続の削除 ............................................... 3-3接続の追加 ............................................... 3-3デフォルトの動作 ................................... 3-2パフォーマンスに関する考慮点 ......... 2-13有効化 ....................................................... 2-9

接続プールから接続を削除......................... 3-3接続フェイルオーバー

接続の再試行 ........................................... 3-9ロード バランス .................................... 3-10

切断された DataSet ..................................... 10-7専用のバルク プロ ト コル.......................... 3-19

そ相互運用性................................................... 3-15

た代替データベース サーバー , 指定............. 3-8タイムアウ ト

コマンド実行の試行を終了する前 ....... 6-6接続の試行を終了する前 ....................... 6-9接続プールから接続を削除する前 ....... 2-7

タイムスタンプ リ テラル エスケープ シーケン

ス .......................................................... 8-2タイムスタンプを文字列と して格納する 2-11

ち直列化可能

分離レベルと ADO.NET......................... 9-4

つ追加

アプリ ケーシ ョ ンに DAAB を .............. 5-5接続

接続プールへの.................................. 3-3データ ソース構成ウ ィザードによる 4-11

ソ リ ューシ ョ ン エクスプローラーの参照設

定 ........................................................... 1-3ツールボッ クス , DataDirect コンポーネン トの

追加.................................................... 4-29

てデータ アクセス アプリ ケーシ ョ ン ブロ ッ ク

新しい DAAB エン ト リの追加.............. 5-4アプリ ケーシ ョ ン コードでの使用 ...... 5-6アプリ ケーシ ョ ンへの追加 ................... 5-5概要 ........................................................... 5-2構成 ........................................................... 5-4コード移植性増大のために使用 ........... 5-1使用に適した状況 ................................... 5-2追加のリ ソース ....................................... 5-7

データ暗号化 ................................................ 2-6データ型

Pervasive ................................................. 2-15パフォーマンスを改善するための選択 10-4

データ ソース構成ウ ィザード , 接続の追加 4-11データ ソースへの変更の同期 ................. 10-7テーブル , Add Table ウ ィザードで追加 . 4-21デバッグ

Trace オブジェク ト を使用してセキュ リティ

を維持 ........................................ 3-22, 3-23概要 ......................................................... 6-18

テンプレート , Visual Studio概要 ......................................................... 4-18既存のプロジェク トに追加 ................. 4-20新規プロジェク トの作成 ..................... 4-18

と統計情報

概要 ......................................................... 3-25収集の有効化 .................................. 3-25, 6-9

6 索引

Page 209: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

パフォーマンスの分析 ......................... 3-24統計情報の収集 .......................................... 3-24統計情報の取得

概要 ......................................................... 3-25ド ッ ト ネッ ト (.NET)

OLE DB の使用...................................... 10-2サポート されるパブリ ッ ク オブジェク ト 6-

3ソ リ ューシ ョ ン エクスプローラーを使用す

る例 ....................................................... 1-3ト ラブルシューティング機能

実行時の統計情報 ................................. 3-24ト ランザクシ ョ ン

バルク ロード操作 ................................ 3-21ローカルのサポート ............................. 2-25

ト レース

概要 ......................................................... 3-22ト レース ファ イルの再作成 ................ 3-22ト レース ファ イルのパスの設定 ........ 3-22メ ソ ッ ドの呼び出し ............................. 6-18有効化

概要.................................................... 3-22環境変数の使用................................ 3-22静的メ ソ ッ ドの使用........................ 3-23

ト レースで環境変数を使用 ...................... 3-22ト レースの有効化 ...................................... 3-22

な長いデータの取得 ...................................... 10-2名前空間 ........................................................ 2-2

ねネイティブ管理プロバイダー , パフォーマンス

の利点................................................ 10-6

は配列 , パラ メーター ................................... 2-23配列バインド .............................................. 6-17

パラ メーターの行数の設定 ................... 6-4バルク ロード操作での使用 ................ 3-19

パスワード , ト レース ログで隠す . 3-22, 3-23バッチ処理のサポート , 有効化 ............... 6-11パフォーマンスの 適化

ADO.NET................................................ 10-1

CommandBuilder オブジェク ト を使用しない 10-3

PsqlCommandBuilder オブジェク トの使用 6-7

暗号化 ..................................................... 2-13取得するデータのサイズ ..................... 10-3接続の管理 ............................................. 10-6接続の状態を リセッ ト ........................... 2-4接続文字列の設定 ................................. 2-13切断された DataSet の使用 .................. 10-7正しいデータ型の選択 ......................... 10-4ネイティブ管理プロバイダーの使用 . 10-6バルク ロード操作でのシーケンシャル アク

セスの使用 ......................................... 6-21ローカル ト ランザクシ ョ ンの使用 .... 2-25

パブリ ッ ク オブジェク トのプレフ ィ ッ クス 6-3パラ メーター

ADO.NET でのス ト アド プロシージャ内の

マーカー ............................................. 10-5ス ト アド プロシージャ内 .................... 2-24配列のサポート ..................................... 2-23マーカー

? 記号の使用 ..................................... 2-22パラ メーター データ型 ............................. 2-17パラ メーター配列バインド ............... 6-4, 6-17バルク データ構成ファイル用の XML スキーマ

定義........................................... 11-3, 12-1バルク ロード

XML 構成ファイル

externalfilecodepage 属性 ................. 3-19例........................................................ 3-18

XML スキーマ定義 ...................... 11-3, 12-1概要 ......................................................... 3-15データ ファ イル .................................... 3-17ト ランザクシ ョ ンで ............................. 3-21バルク データ構成ファイル ....... 3-18, 11-2バルク ロード データ ファ イルの作成 3-17プロ ト コルの決定 ................................. 3-19

バルク ロード操作での文字変換 ............. 3-19バルク ロード操作のオーバーフロー ファ イル

3-20反復可能な読み取り

分離レベルと ADO.NET......................... 9-4

索引 7

Page 210: Pervasive Data Provider for .NET Guide and ……責事項 Pervasive Software Inc. は、本ソフトウェアおよびドキュメントの使用を、利用 者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記

ひ日付 , 時刻 , タイムスタンプ リ テラルのエス

ケープ シーケンス ............................. 8-2ビュー , Add View ウ ィザードで追加 ...... 4-26

ふプロパティ ..................................................... 6-3分離

ADO.NET のレベル ................................. 9-1分離レベル

ADO.NET との比較................................. 9-4コ ミ ッ ト された読み取り と ADO.NET. 9-4コ ミ ッ ト されていない読み取り と ADO.NET

9-4サポート ................................................. 2-28ダーティー リード と ADO.NET............ 9-3直列化可能と ADO.NET......................... 9-4データの同時処理性 ............................... 9-5反復可能な読み取り と ADO.NET......... 9-4反復不可能な読み取り と ADO.NET..... 9-3ファン ト ム リード と ADO.NET............ 9-3

へページ レベルのロ ッ ク ................................ 9-6変更 , データ ソースへの同期................... 10-7

ほ方法

呼び出しの ト レース ............................. 3-22

まマネージ コード ............................................ xiv

めメ ソ ッ ド

データ プロバイダー固有 .................... 6-10パブリ ッ クのサポート ........................... 6-3

も文字セッ ト変換........................................... 3-19

ゆ有効化

ステート メン ト キャ ッシング , 概要 ... 3-6

統計情報収集 , 概要 .............................. 3-25

よ用語集 .......................................................... 13-1

りリ テラル , エスケープ シーケンス ............ 8-2リ テラル パラ メーター値 ......................... 2-22

れ例

CSV バルク ロード データ ファ イル . 3-17単純なクエリの作成 ............................. 4-31

例外処理のコード例 .................................... 1-4

ろローカル ト ランザクシ ョ ン , 使用 .......... 2-25ロード バランス

「ク ラ イアン ト ロード バランス」 を参照

ロ ッ ク

ADO.NET のレベル................................. 9-1概要 ........................................................... 9-2モード とレベル ....................................... 9-6

わワイヤ暗号化 ......................................... 2-6, 4-9

8 索引