3
Imports System.Data.OleDb

Public Class Log

    Private mConnectionString As String = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))(CONNECT_DATA=(SID=xxx)(SERVER=DEDICATED)));User Id=xxx;Password=xxx;"
    Dim ds As New DataSet
    Dim da As New OleDbDataAdapter
    Dim dr As DataRow
    Dim Connection As New OleDbConnection(mConnectionString)
    Dim Command As OleDbCommand
    goes on...

これがコードであり、開発マシンでうまく機能します。私たち全員が、マシンにOracleプロバイダーをインストールしています。ここで、Oracleソフトウェアがインストールされていない別のマシンのアプリでこのコードを使用してみましたが、機能しません。

これで、これらの他のマシンにOracleプロバイダーをインストールでき、動作することがわかりました。それに関する問題は、A)それらの多くがあり、B)私は私たちのIT部門を通過しなければならず、彼らがそれを行うのに6か月かかるでしょう。だから私の質問は、OracleプロバイダーがインストールされていないマシンからこのOracleデータベースに接続できますか?Microsoftには独自のOracleプロバイダーがあると思いましたが、System.Dataの下に表示されません。それが役立つ場合、.NETバージョンは3.5です。何か案は?

4

4 に答える 4

6

Oracle Instant ClientODP.NETはかなり幸運でした。これは、ほとんど単純なXCOPYデプロイです(ODBCが必要ない場合)。

IIRC、PATH環境変数を変更する必要がありますが、それは比較的簡単です。特に、Oracleがジャンプするために使用したフープと比較すると。

于 2008-12-12T21:07:01.600 に答える
1

問題は、実際には、インフラストラクチャのニーズについて会社のIT/DBAチームと話し合うことなくプロジェクトを開始したことです。これは技術的な問題ではなく、プロセスの問題です。

ここで言われていることは可能な解決策です(私は個人的には使用していませんが)。 http://devart.com/dotconnect/oracle/

于 2008-12-12T21:04:04.760 に答える
0

これを機能させるには、Oracleプロバイダーをインストールする必要があると確信しています。OleDbはSQLServerやAccessなどに簡単に接続できますが、これらのプロバイダーがWindowsにプリインストールされているためです。

(すべてのマシンにOracleプロバイダーをインストールする以外の)唯一のオプションは、必要な各Oracleテーブルへのパススルーテーブルを含むSQL Serverの「フロント」データベースを作成し、OracleではなくSQLServerからデータを取得することだと思います。 。

実際には、別のオプションとして、クライアントアプリケーションにデータベースに直接接続するのではなく、中間のWebサービスからデータを取得させることもできますが、これにはおそらく大幅な書き直しが必要になります。

于 2008-12-12T20:58:48.980 に答える
0

Oracle DLLをインストールする代わりに、アプリで見つけて含めることは可能でしょうか?

于 2008-12-12T21:01:27.400 に答える