从VB 2008应用程序连接到Oracle DB而无需安装Oracle软件?

时间:2008-12-12 20:50:27

标签: vb.net oracle .net-3.5 connection

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部门,他们需要六个月才能完成。所以我的问题是,我可以从没有安装Oracle提供程序的计算机连接到这个Oracle数据库吗?我认为微软拥有它自己的Oracle提供商,但它没有出现在System.Data下。如果有帮助,.NET版本为3.5。有任何想法吗?

4 个答案:

答案 0 :(得分:6)

我对Oracle Instant ClientODP.NET运气不错​​,这几乎是一个直接的XCOPY部署(如果你不需要ODBC)。

IIRC,你需要修改PATH环境变量,但这是相对轻松的 - 特别是与Oracle用来让你跳过的箍。相比。

答案 1 :(得分:1)

问题实际上是您在没有与公司的IT / DBA团队讨论基础架构需求的情况下启动了项目。这不是技术问题,而是流程问题。

这里说的是一个可能的解决方案(虽然我没有亲自使用过)。 http://devart.com/dotconnect/oracle/

答案 2 :(得分:0)

我非常肯定您必须安装Oracle提供程序才能使其正常工作。 OleDb可以轻松连接到SQL Server和Access等,但这只是因为这些提供程序预先安装在Windows中。

我认为你唯一的选择(除了在每台机器上安装Oracle提供程序)是创建一个SQL Server“前端”数据库,其中包含所需的每个Oracle表的传递表,然后从SQL Server获取数据而不是Oracle。

实际上,另一种选择是让您的客户端应用程序从中间Web服务获取数据,而不是直接连接到数据库,但这可能需要进行重大的重写。

答案 3 :(得分:0)

是否可以在您的应用中找到并包含Oracle DLL而不是安装它们?