0

アプリケーションが複数のデータベースベンダーと連携できるようにしたいと思います。つまり、クライアントのDBインフラストラクチャに応じて、dbスキーマはOracle、MySQL、SQLServerのいずれかにデプロイされます。私はODBCとOleDBを使用しており、選択のために考慮しなければならない次の重要な要件があります。

  • DBスキーマはアプリケーション内から作成する必要があります(この場合、ODBCに問題がある可能性があると言われましたが、これは本当ですか?)
  • エンドユーザーが追加のソフトウェア(つまり、Oracle Instant Clientなど)をインストールする必要がないことが強く望まれます。したがって、ドライバーは次のいずれかであることが望ましいです。

    1. すでにWindowsにバンドルされています。Windowsには汎用バージョンのODBC/OleDBがありますか?
    2. アプリケーションにバンドルすることができます。JavaのIEでは、MySQL用のJDBCドライバーを.jarファイルとしてアプリケーションにバンドルできます。これは、.dllファイルを含めることで実行できますか?
  • エンドユーザーがODBCデータソースの作成などの外部構成を行う必要がないことが強く望まれます。

乾杯!

4

4 に答える 4

2

適切なデータベース固有のドライバーをインストールする必要があります。

これがインストールされると、接続文字列もある程度データベースに依存します。

IDbCommandADO.NETを使用すると、プロバイダー固有のサブクラスではなく、共通のインターフェイス(たとえば)を使用することで、コード内の多くのデータベースの相互作用を独立させることができますが、プロバイダー固有のファクトリが必要になります。

それでも、SQLの方言とデータ型には大きな違いがあります。

独自の要約の作成、制御の反転(IoC)、および各データベースのデバッグに精通している必要があります。後者は、プロジェクトの開始から複数のデータベースプラットフォームにわたって積極的にデバッグすることを強く示し、大幅な移植作業の突然の必要性を回避します。

于 2009-07-14T18:27:54.790 に答える
1

どちらもデータベースドライバが必要です。そうでない場合、ODBCレイヤーはリモートデータベースに接続する方法を知りません。

于 2009-07-14T17:17:25.993 に答える
1

ほとんどのODBC/OLEDBドライバーは「共通言語」を使用していますが、データベースに適切に接続するには、ベンダーが提供するある種のネイティブデバイスドライバーまたは「クライアントインストール」が必要です。

探したいのは、必要なすべてのライブラリが組み込まれている適切なADO.NETドライバーです。または、「クライアントのインストール」を必要としない2番目のDLLのみが必要な場合もあります。これにより、app.configファイルのConnectin文字列を簡単に使用できるようになり、ADO.NETが提供するすべての機能が利用できるようになります。

必要な一般的なものへのリンクは次のとおりです。

于 2009-07-14T17:18:21.030 に答える
1

はい。ただし、これを行うにはODBCもOLEDBも必要ありません。SQL Server、MySQL、およびOracle用の100%ネイティブADO.NETプロバイダーは、ここhttp://www.datadirect.com/products/net/index.sspから入手できます。

于 2009-07-14T17:23:11.583 に答える