ADO.NET データプロバイダー経由でのアクセス¶
ADO.Net データプロバイダーは、使用するデータベースに依存しないアプリケーションを開発するためのソフトウェアコンポーネントです。
Virtual DataPort は、 .Net Data Provider for PostgreSQL バージョン 2.0 と互換性があります。推奨バージョンは、2.0.12、2.2.0、2.2.3、および 2.2.7 です (NPGSQL のリポジトリ からダウンロードできます)。
NPGSQL のバージョン 3.x は、部分的にサポートされています。SELECT、INSERT、UPDATE、および DELETE のクエリを実行できますが、Virtual DataPort データベースのビューを検査することはできません。
アプリケーションから、以下のことができます。
NpgsqlConnection
クラスの新しいオブジェクトを作成し、コネクション文字列をコンストラクターに渡します。これは、<DENODO_HOME>/samples/vdp/vdp-clients-ADO.NET/Program.cs
の例の処理と同じです。ADO.Net プロバイダーをグローバルの
machine.config
ファイルまたはアプリケーションの.config
ファイルに定義し、アプリケーションから Npgsql ファクトリへのコネクションをリクエストして適切なコネクション文字列を設定します。このオプションにより、使用しているデータベースに依存しないコードを記述できます。
<?xml version="1.0" encoding="iso-8859-1" ?>
<configuration>
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF"
description="ADO.Net Data Provider to Denodo"
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.12.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
</DbProviderFactories>
</system.data>
</configuration>
string connectionString = "Server=acme;" +
"Port=9996;" +
"Username=admin;" +
"Password=admin;" + "Database=admin" +
"CommandTimeout=80000";
データベースの名前に非 ASCII 文字が含まれている場合、これらを URL エンコードする必要があります。たとえば、データベースの名前が「テスト」の場合、 Database
プロパティを %E3%83%86%E3%82%B9%E3%83%88
に設定します。
コネクションのデフォルトのクエリタイムアウトは、 CommandTimeout
パラメータで設定されています (時間はミリ秒単位)。このコネクションでは、タイムアウトは 80 秒です。
コネクションのロケールの値は、コネクション文字列の Database
パラメータで設定されます。このプロパティとそのデフォルト値については、「 ODBC ドライバーのパラメータとそのデフォルト値 」を参照してください。
通信を保護するために Virtual DataPort サーバーで SSL/TLS が有効になっている場合、次のパラメータを ConnectionString
に追加します。
"SSL=True;Sslmode=Require"
ConnectionString
のパラメータのリストについては、http://www.npgsql.org/doc/connection-string-parameters.html のページを参照してください。