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 データベースのビューを検査することはできません。

アプリケーションから、以下のことができます。

  1. NpgsqlConnection クラスの新しいオブジェクトを作成し、コネクション文字列をコンストラクターに渡します。これは、 <DENODO_HOME>/samples/vdp/vdp-clients-ADO.NET/Program.cs の例の処理と同じです。

  2. ADO.Net プロバイダーをグローバルの machine.config ファイルまたはアプリケーションの .config ファイルに定義し、アプリケーションから Npgsql ファクトリへのコネクションをリクエストして適切なコネクション文字列を設定します。このオプションにより、使用しているデータベースに依存しないコードを記述できます。

プロバイダー定義が指定された app.config ファイルの例
 <?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>
Virtual DataPort に接続するための ConnectionString の例
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 のページを参照してください。