クイック スタート
ここでは、Zen ADO.NET データ プロバイダーをインストールした後で、データベースに接続する基本的な操作について説明します。
Zen ADO.NET データ プロバイダーの機能を最大限利用するには、当ドキュメント内のほかの Zen ADO.NET 関連トピックもお読みください。
Zen でインストールされる ADO.NET データ プロバイダー
このセクションでは、Zen v16 と一緒にインストールされる Zen ADO.NET データ プロバイダーでサポートされる .NET Framework バージョンについて説明します。SDK をダウンロードすることで提供される .NET Core および Entity Framework Core 用の Zen ADO.NET データ プロバイダーの説明については、
SDK ダウンロードで入手できる Zen ADO.NET データ プロバイダーを参照してください。
Zen v16 は、ADO.NET データ プロバイダー 4.5 および 4.6 の 2 つのバージョンを提供します。デフォルトで、すべてのバージョンがデータベース エンジンと一緒にインストールされます。
ADO.NET をカスタマイズしないで使用しているのであれば、以前のバージョンの .NET Framework と Zen データ プロバイダー用に作成されたコードは、Zen データ プロバイダー 4.5 および 4.6 と互換性があります。
サポートされる .NET Framework のバージョン
次の表に示すように、Zen ADO.NET データ プロバイダー 4.5 および 4.6 では、Microsoft .NET Framework や Microsoft Entity Framework との組み合わせもサポートされるようになりました。表の各行で、これら 3 製品のサポートされるバージョンの互換性のある組み合わせを表しています。
注記
アプリケーションで Zen ADO.NET Entity Framework プロバイダー 4.5 または 4.6 を使用するには、.NET Framework 4.5 以上を使用しなければなりません。
一覧に示したバージョンはすべて、.NET Framework の 32 ビットと 64 ビットのどちらのバージョンにも適用されます。
Zen ADO.NET Entity Framework プロバイダー 4.5 および 4.6 では、Microsoft Entity Framework 6.1.x がサポートされています。
Zen ADO.NET データ プロバイダーの詳細については、各プロバイダーのトピックを参照してください。
SDK ダウンロードで入手できる Zen ADO.NET データ プロバイダー
Zen v16 でインストールされる ADO.NET データ プロバイダーのほかに、.NET Standard 2.0 準拠のアプリケーションをサポートするために追加のプロバイダーを入手することができます。次の表にこれらのプロバイダーを示します。プロバイダーは、
弊社 Web サイトでダウンロード可能な SDK に含まれる NuGet パッケージとして入手できます。Zen でインストールされるプロバイダーのバージョンと同様に、準拠アプリケーションの 2 つのバージョンを示します。
メモ: 関連する NuGet パッケージは、表に記載されているダウンロード可能な SDK でのみ入手できます。
Zen ADO.NET Entity Framework Core データ プロバイダーには、同じバージョンの Zen ADO.NET Core データ プロバイダーをアプリケーション プロジェクトに追加する必要があります。
Zen ADO.NET Core データ プロバイダーの詳細については、各プロバイダーのトピックを参照してください。
基本的な接続文字列の定義
データ プロバイダーでは、特定のデータベース サーバーへの接続に必要な情報の指定に接続文字列を使用します。この接続情報は接続文字列オプションで定義されます。
Zen ADO.NET Entity Framework データ プロバイダーは、Entity Framework ウィザードで既存の接続を指定するか、または新しい接続を定義することができます。Zen ADO.NET Entity Framework は接続文字列に含まれている情報を使用して、Entity Framework をサポートする基となる Zen ADO.NET データ プロバイダーに接続します。接続文字列には、必要なモデルおよびマッピング ファイルに関する情報も含まれています。データ プロバイダーは、モデルにアクセスしたり、メタデータをマップしたり、データ ソースに接続したりする場合に接続文字列を使用します。
接続文字列オプションは次のような形式です。
"オプション名=値"
接続文字列オプション値の各ペアはセミコロンで区切ります。たとえば、次のようになります。
"Server DSN=DEMODATA;UID=test;PWD=test;Host=localhost"
サポートされる接続文字列オプションの詳細については、
接続文字列プロパティを参照してください。
注記
• 接続文字列オプション名内のスペースは任意です。
• 接続文字列オプションでは大文字と小文字が区別されません。たとえば、User ID と user id は同じです。ただし、User ID や Password などいくつかのオプションの値の中には大文字と小文字が区別されるものもあります。
• 接続文字列にポート番号が指定されていない場合、データ プロバイダーは 1583 を使用します。これはデフォルトのポート番号です。
最低限必要な接続文字列オプション
次の表は、Zen サーバーへの接続に必要な最低限のオプションの名前とその説明です。
データベースへの接続
データ プロバイダーをインストールすると、接続文字列を使ってアプリケーションからデータベースに接続できるようになります。接続文字列オプションの一覧については、
接続文字列プロパティを参照してください。
メモ:アプリケーションで Zen ADO.NET Entity Framework を使用する場合は、Entity Data Model ウィザードを使って新しい接続を作成したり、既存の接続を使用したりすることができます。詳細については、
モデルの作成を参照してください。
例:プロバイダー固有のオブジェクトの使用
次の例はプロバイダー固有のオブジェクトを使用した例です。C# を使って Visual Studio で開発したアプリケーションから Zen ADO.NET データ プロバイダーを使用してデータベースに接続しています。
1. ソリューション エクスプローラーで[
参照]を右クリックし、[
参照の追加]を選択します。
![](../adonet/images/chap1_AddRef_img2.png)
2. [参照マネージャー]ウィザードで[参照]ボタンをクリックし、Zen データ プロバイダー アセンブリが含まれるフォルダーに移動します。
3. "
Pervasive.Data.SqlClient.dll" を選択して[
追加]をクリックします。[参照マネージャー]ウィザードの[
参照]タブで、[
最近使用したファイル]項目に Zen データ プロバイダー アセンブリが表示されます。
![](../adonet/images/chap1_AddRef_Browse_Pervasive.png)
4. それを選択し、[
OK]をクリックします。これで、ソリューション エクスプローラーに Zen データ プロバイダーが含まれるようになります。
![](../adonet/images/chap1_PervasiveRef.png)
5. 次の C# コード例のように、Zen データ プロバイダーの名前空間をアプリケーションの先頭に追加します。
// Zen へアクセスします
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 で開発したアプリケーションから Zen データベースに接続する方法を示します。
1. アプリケーションの先頭部分を調べます。ADO.NET 名前空間が記述されていることを確認します。
// ファクトリを使用して Zen にアクセスします
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();
例:Zen Common Assembly の使用
共通プログラミング モデルに適合するアプリケーションで Zen Bulk Load などの機能を使用したい場合は、Zen Common Assembly を含めることを選択できます。アプリケーションで Zen Bulk Load ユーザーを使用する方法については、
Zen Bulk Load の使用を参照してください。
次の例は、C# と共通プログラミング モデルを使用して Visual Studio で開発したアプリケーションで Zen Common Assembly を使用する方法を示します。
1. アプリケーションの先頭部分を調べます。.NET Framework および Zen データ プロバイダーの名前空間が記述されていることを確認します。
// ファクトリを使用して Zen にアクセスします
using System.Data;
using System.Data.Common;
using Pervasive.Data.Common;
2. サーバーの接続情報および例外処理のコードを追加し、接続を閉じます。
// このコードは、バルク コピー操作を
// あるデータベースから別のデータベースに対して行います
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("終了");
}//完了
Zen ADO.NET Entity Framework データ プロバイダーの使用
Entity Data Model ウィザードは、エンティティ データ モデル(EDM)でコンポーネントを定義するための質問をします。その後、ウィザードは Visual Studio でデータのモデルを作成し、そのモデルでコンポーネントの値を自動的に設定します。ウィザードによる EDM の作成方法については、
.edmx ファイルの使用を参照してください。
別の方法としては、Visual Studio でほかのツールを使って、値と接続文字列を手動で定義することもできます。
Provider は、EDM のストレージ モデル ファイルに含まれる Schema 要素の属性です。ストレージ モデル ファイルは、ストア スキーマ定義言語(SSDL)で書かれています。
Entity Data Model ウィザードは、Zen ADO.NET Entity Framework データ プロバイダーが選択されているとき、値の割り当てを行います。エンティティ データ モデルを手動で定義することを選ぶ場合は、次の例で示すように、文字列 Pervasive.Data.SqlClient を Schema 要素の Provider 属性に代入します。
<Schema Namespace="AdventureWorksModel.Store" Alias="Self" Provider="Pervasive.Data.SqlClient" ProviderManifestToken="Zen" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">