2012-05-10 7 views
1

私はいくつかのデータベースプラットフォームを扱う多くのユーティリティソフトウェアを開発しましたが、データベース接続の基本についてはあまり知られていません。データベースドライバの配布

私は現時点でWPFアプリケーションを開発中です。私の目的は、エンドユーザーが任意のデータベース(特にOracle、DB2、SQL Serverなどのetnerpriseレベルの大規模プラットフォーム、PostgreSQL、MySQL、SQliteなどの一般的なプラットフォーム)に接続できるようにすることです。ユーザーはシステムに関連ドライバをインストールしていません。

私は進行方法がわかりません。アプリケーションと一緒にすべてのドライバを配布する必要がありますか?ワンサイズのソリューションはありますか?例えば、自分のシステムにOracleクライアントをインストールすることなく、Oracleドライバを配布することはできますか?私はこれを行うための最良の方法は何か疑問に思います。どんな参考文献も理解できます。

+1

タイトルに「C#」などの接頭辞を付けないでください。それがタグのためのものです。 –

+2

あなたは「データベースドライバ」について不思議ですか?おそらく.NETで配布されているはずです。 –

+0

私は質問を更新しました。特に、Oracle、DB2、SQL Server、PostgreSQL、MySQL、SQliteなどの人気のあるものなど、etnerpriseレベルの大規模プラットフォーム – noway

答えて

1

あなたが取得するために、標準的なprovider factory mechanismを使用する必要がありますが、データベース接続

  • のためのADO.NETを使用しているあなたは
  • とらわれないデータベースを維持するクラス(たDbConnection、たDbCommandなど)のDbXXXセットに対してプログラミングする必要があると仮定すると、インストールされたプロバイダのリストを作成し、必要なDbXXXインスタンスを生成します。

対応するドライバをインストールせずにデータベースに接続することはできません。ドライバを配布する必要はありません。これは、アプリケーションの各ユーザーが、接続したいデータベースに応じて行うことができるものです。

1

これは、精巧なインストーラプロセスで潜在的に解決できるようなものです。アプリケーションと共に配布するデータベースドライバのインストールパッケージをアプリケーションのMSIファイルにまとめ、カスタムインストールルーチンを組み込むことで、どのデータベースエンジンを使用するかを選択できます。その情報があれば、インストーラは適切なドライバインストールルーチンを実行できます。