クイック スタート
ここでは、PSQL ADO.NET データ プロバイダーをインストールした後で、データベースに接続する基本的な操作について説明します。
PSQL ADO.NET データ プロバイダーの機能を最大限利用するには、当マニュアル内のほかの ADO.NET 関連トピックもお読みください。
サポートされる .NET Framework のバージョン
次の表では、Microsoft .NET Framework および Microsoft Entity Framework での使用にサポートされる PSQL データ プロバイダーの一覧を表示しています。表の各行で、これら 3 製品のバージョンの互換性のある組み合わせを表しています。
PSQL プロバイダー | Microsoft .NET Framework | Microsoft Entity Framework |
ADO.NET データ プロバイダー 4.2 | 2.0、3.0、3.5、3.5 SP1、4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2 | — |
ADO.NET データ プロバイダー 4.3 | 2.0、3.0、3.5、3.5 SP1、4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2 | — |
ADO.NET Entity Framework プロバイダー 4.2 | 4.5、4.5.1、4.5.2、4.6.1、4.6.2 | 5.0 |
ADO.NET Entity Framework プロバイダー 4.3 | 4.5、4.5.1、4.5.2、4.6.1、4.6.2 | 5.0 |
ADO.NET Entity Framework プロバイダー 4.2.0.6 | 4.5、4.5.1、4.5.2、4.6.1、4.6.2 | 6.0、6.0.1、6.0.2 |
ADO.NET Entity Framework プロバイダー 4.3.0.6 | 4.5、4.5.1、4.5.2、4.6.1、4.6.2 | 6.0、6.0.1、6.0.2、6.1、6.1.1、6.1.2 |
PSQL ADO.NET Entity Framework データ プロバイダーは、Microsoft Entity Framework の 5.0、6.0、および 6.1 という 3 つのバージョンをサポートします。
一覧に示したバージョンはすべて、.NET Framework の 32 ビットと 64 ビットのどちらのバージョンにも適用されます。
ADO.NET をカスタマイズしないで使用しているのであれば、以前のバージョンの .NET Framework と PSQL データ プロバイダー用に作成されたコードは、PSQL データ プロバイダー 4.2 および 4.3 と互換性があります。
PSQL ADO.NET Entity Framework 4.2 および 4.3 を使用するには、アプリケーションは .NET Framework 4.5 以上を対象にしなければなりません。
Microsoft Entity Framework 6.1、6.1.1 および 6.1.2 と互換性があるのは PSQL ADO.NET Entity Framework プロバイダー 4.3.0.6 のみです。
基本的な接続文字列の定義
データ プロバイダーでは、特定のデータベース サーバーへの接続に必要な情報の指定に接続文字列を使用します。この接続情報は接続文字列オプションで定義されます。
ADO.NET Entity Framework データ プロバイダーは、Entity Framework ウィザードで既存の接続を指定するか、または新しい接続を定義することができます。ADO.NET Entity Framework は接続文字列に含まれている情報を使用して、基となる Entity Framework をサポートする ADO.NET データ プロバイダーに接続します。接続文字列には、必要なモデルおよびマッピング ファイルに関する情報も含まれています。データ プロバイダーは、モデルにアクセスしたり、メタデータをマップしたり、データ ソースに接続したりする場合に接続文字列を使用します。
接続文字列オプションは次のような形式です。
"オプション名=値"
接続文字列オプション値の各ペアはセミコロンで区切ります。たとえば、次のようになります。
"Server DSN=DEMODATA;UID=test;PWD=test;Host=localhost"
サポートされるすべての接続文字列オプションの詳細については、表
27 を参照してください。
注記
•接続文字列オプション名内のスペースは任意です。
•接続文字列オプションでは大文字と小文字が区別されません。たとえば、User ID と user id は同じです。ただし、User ID や Password などいくつかのオプションの値の中には大文字と小文字が区別されるものもあります。
•接続文字列にポート番号が指定されていない場合、データ プロバイダーは 1583 を使用します。これはデフォルトのポート番号です。
表
1 は、PSQL サーバーへの接続に必要な最低限のオプションの名前とその説明です。
表 1 最低限必要な接続文字列オプション
オプション | 説明 |
Server DSN | 接続するサーバーのデータ ソース名を、DEMODATA のように指定します。 |
Host | 接続する PSQL サーバーの名前または IP アドレスを指定します。たとえば、Accountingserver などのサーバー名や、199.226.22.34(IPv4)または 1234:5678:0000:0000:0000:0000:9abc:def0(IPv6)などの IP アドレスを指定できます。 デフォルトの初期値は localhost です。 |
データベースへの接続
データ プロバイダーをインストールすると、接続文字列を使ってアプリケーションからデータベースに接続できるようになります。接続文字列オプションの一覧については、表
27 を参照してください。
メモ:アプリケーションで ADO.NET Entity Framework を使用する場合は、Entity Data Model ウィザードを使って新しい接続を作成したり、既存の接続を使用したりすることができます。詳細については、
モデルの作成を参照してください。
例:プロバイダー固有のオブジェクトの使用
次の例はプロバイダー固有のオブジェクトを使用した例です。C# を使って Visual Studio で開発したアプリケーションから ADO.NET データ プロバイダーを使用してデータベースに接続しています。
1 ソリューション エクスプローラーで[参照]を右クリックし、[参照の追加]を選択します。
2 [参照マネージャー]ウィザードで[参照]ボタンをクリックし、PSQL データ プロバイダー アセンブリが含まれるフォルダーに移動します。
3 "Pervasive.Data.SqlClient.dll" を選択して[追加]をクリックします。[参照マネージャー]ウィザードの[参照]タブで、[最近使用したファイル]項目に PSQL データ プロバイダー アセンブリが表示されます。
4 それを選択し、[OK]をクリックします。これで、ソリューション エクスプローラーに PSQL データ プロバイダーが含まれるようになります。
5 次の C# コード例のように、PSQL データ プロバイダーの名前空間をアプリケーションの先頭に追加します。
// PSQL へアクセスします
using System.Data;
using System.Data.Common;
using Pervasive.Data.SqlClient;
6 サーバーの接続情報と例外処理のコードを追加します。
PsqlConnection DBConn = new PsqlConnection("Server DSN=DEMODATA;Host=localhost");
try
{
// 接続を開きます
DBConn.Open();
Console.WriteLine("接続成功!");
}
catch(PsqlException ex);
{
// 接続に失敗しました
writer.WriteLine(ex.Message);
}
7 接続を閉じます。
// 接続を閉じます
DBConn.Close();
例:共通プログラミング モデルの使用
次の例は、C# と共通プログラミング モデルを使用して Visual Studio で開発したアプリケーションから PSQL データベースに接続する方法を示します。
1 アプリケーションの先頭部分を調べます。ADO.NET 名前空間が記述されていることを確認します。
// ファクトリを使用して PSQL にアクセスします
using System.Data;
using System.Data.Common;
2 サーバーの接続情報および例外処理のコードを追加し、接続を閉じます。
DbProviderFactory
factory=DbProviderFactories("Pervasive.Data.SqlClient");
DbConnection Conn = factory.createConnection();
Conn.CommandText = "Server DSN=DEMODATA;Host=localhost;";
try
{
Conn.Open();
Console.WriteLine("接続成功!");
}
catch (Exception ex)
{
// 接続に失敗しました
Console.WriteLine(ex.Message);
}
// 接続を閉じます
Conn.Close();
例:PSQL Common Assembly の使用
共通プログラミング モデルに適合するアプリケーションで PSQL Bulk Load などの機能を使用したい場合は、PSQL Common Assembly を含めることを選択できます。アプリケーションで PSQL Bulk Load ユーザーを使用する方法については、
PSQL Bulk Load の使用を参照してください。
次の例は、C# と共通プログラミング モデルを使用して Visual Studio で開発したアプリケーションで PSQL Common Assembly を使用する方法を示します。
1 アプリケーションの先頭部分を調べます。.NET Framework および PSQL データ プロバイダーの名前空間が記述されていることを確認します。
// ファクトリを使用して PSQL にアクセスします
using System.Data;
using System.Data.Common;
using Pervasive.Data.Common;
2 サーバーの接続情報および例外処理のコードを追加し、接続を閉じます。
// このコードは、バルク コピー操作を
// PSQL データベースから別のデータベースに対して行います
DbProviderFactory Factory = DbProviderFactories.GetFactory("Pervasive.Data.SqlClient");
DbConnection sourceConnection = Factory.CreateConnection();
sourceConnection.ConnectionString = "Host=localhost;Server DSN=DEMODATA;";
sourceConnection.Open();
DbCommand command = sourceConnection.CreateCommand();
command.CommandText = "SELECT * FROM test";
DbDataReader reader = command.ExecuteReader();
DbConnection destinationConnection = Factory.CreateConnection();
destinationConnection.ConnectionString =
"Host= ntsl2003b;Server DSN=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("終了");
}//完了
ADO.NET Entity Framework データ プロバイダーの使用
Entity Data Model ウィザードは、エンティティ データ モデル(EDM)でコンポーネントを定義するための質問をします。その後、ウィザードは Visual Studio でデータのモデルを作成し、そのモデルでコンポーネントの値を自動的に設定します。ウィザードによる EDM の作成方法については、
.edmx ファイルの使用を参照してください。
別の方法としては、Visual Studio でほかのツールを使って、値と接続文字列を手動で定義することもできます。
Provider は、EDM のストレージ モデル ファイルに含まれる Schema 要素の属性です。ストレージ モデル ファイルは、ストア スキーマ定義言語(SSDL)で書かれています。
Entity Data Model ウィザードは、PSQL ADO.NET Entity Framework データ プロバイダーが選択されているとき、値の割り当てを行います。エンティティ データ モデルを手動で定義することを選ぶ場合は、次の例で示すように、文字列 Pervasive.Data.SqlClient を Schema 要素の Provider 属性に代入します。
<Schema Namespace="AdventureWorksModel.Store" Alias="Self" Provider="Pervasive.Data.SqlClient" ProviderManifestToken="PSQL" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">