win2008_r2 64位操作系统无法连接oracle数据库问题
操作系统:windows 2008 R2 企业版 64位数据库:oracle 10g
代码如下:
连接oracle:
$Conn = ObjCreate("ADODB.Connection")
$Conn.open("DRIVER={MICROSOFT ODBC FOR ORACLE};Server=Orcl_70;UID=system;PWD=hb;")
;$Conn.open("DRIVER={Oracle in OraDb10g_home1};SERVER=127.0.0.1/ORCL_70;UID=system;PWD=hb;DBQ=127.0.0.1/ORCL_70")
;$Conn.open("DRIVER={Oracle in OraDb10g_home1};Dbq=127.0.0.1/YGT3CS;UID=system;PWD=hb;")
$Conn.execute("use YGCS") ;指定需要操作的库
$RS = ObjCreate("ADODB.RecordSet")
$RS.activeconnection = $Conn
$RS.open("select xtcsbz from aboss.txtzt;")
------------------------------------------------------------------------------------------------------------------------------------------------------
连接SQL Server
$Conn = ObjCreate("ADODB.Connection")
$Conn.open("DRIVER={SQL Server};SERVER=10.105.0.169;UID=sa;PWD=hbzq;")
$Conn.execute("use OIW") ;指定需要操作的库
我连接sql server是可以的,没有问题,但是连接oracle就不行,用了上面的3种方法都失败了。感觉问题是出在DRIVER的字段上,但是不知道怎么解决,也不知道怎么定位错误的原因。
32位的ODBC 数据源管理器中也已经配置过了。
在论坛里翻了几个相关的帖子,但是没有针对的解决办法,百度也查过了,无解。请大神指点。
另:用pl sql是可以正常连接到oracle的。 有相同环境的兄弟,能不能验证一下oracle的这段代码,确认一下是代码的问题还是我系统的问题?
或者谁发我一段能正常使用的代码给我! 回复 2# cmh229
https://support.microsoft.com/zh-tw/kb/310985
本文將逐步告訴您,如何使用 Visual Basic.NET 中的 ODBC.NET 管理提供者。本文也包含可供您存取您的資料範例連接字串。
ODBC.NET 資料提供者是以 Microsoft.NET Framework 軟體開發套件 (SDK) 附加元件。它提供對原生的 ODBC 驅動程式的存取相同的方式,OLE DB.NET 資料提供者提供原生 OLE DB 提供者的存取。雖然 ODBC.NET 資料提供者要使用所有相容的 ODBC 驅動程式,它只經過下列驅動程式︰•Microsoft SQL ODBC 驅動程式
•Oracle Microsoft ODBC 驅動程式
•Microsoft Jet ODBC 驅動程式
附註︰ 如果沒有安裝.NET Framework SDK (這是隨附於 Visual Studio.NET),本下載安裝就會失敗。本下載安裝程式的一部分, Microsoft.Data.ODBC命名空間使用隨附於.NET Framework SDK Gacutil.exe 公用程式將新增到全域組件快取。
回到頁首
下載 ODBC.NET 提供者
1.從下列 Microsoft 網站下載 ODBC.NET 管理提供者︰
http://www.microsoft.com/downloads/details.aspx?familyid=6ccd8427-1017-4f33-a062-d165078e32b1
2.ODBC.NET 資料提供者也需要安裝 Microsoft 資料存取元件 (MDAC) 2.7 或更新版本。您可以從下列 Microsoft 網站下載最新版的 MDAC:
http://msdn.microsoft.com/en-us/data/aa937729.aspx
3.安裝 ODBC.NET 資料提供者之後,請前往下一節,以建立專案。
Dim cn as OdbcConnection
cn= New OdbcConnection ("Driver = {Microsoft ODBC for Oracle};" & _
"Server=myOracleserver;uid=myuid;pwd=mypwd")
Dim myString as String = "Select * from Customers"
dim cmd as OdbcCommand = New OdbcCommand(myString)
cn.open()
MsgBox "Connected"
cn.Close 回复 2# cmh229
Oracle
1. Driver={Microsoft ODBC for Oracle};Server=資料庫;
2. Provider=OraOLEDB.Oracle;Data Source=資料庫; 非常感谢楼上的解答。
有几个疑问再确认一下,
1. 答复中提到的“ODBC.NET 提供者”是必须的吗?给的链接已经失效了,网上找了一圈也没找到下载的地方。
2. 原文链接我也读了一遍,因为是机器翻译的且是繁体的语法,理解起来很费力。
3. 操作系统是不是要安装.NET Framework,我的系统里没有安装,不知道有没有关系。
不知道有没有更简单的方法来解决这个问题 回复 5# cmh229
基本的概念是這樣的.....
在WINDOWS 下 要連接 其他的 幾乎都是透過ODBC 運作
首先 要先確認 你的ODBC 運作正常......
先別管程式如果你有工具可以確認是 透過 ODBC 運作 且可以 正常連接.....
那就表示你的驅動沒問題那就 只是連線字串的問題......
但是 如果 你無法確認你的ODBC 運作正常那就得 考慮是不是 先裝個 比較沒問題的驅動....
你可以從我的例子中發現微軟提供的範例使用的是 Microsoft ODBC for Oracle
簡單的說 既然已經提供 範例 就表示 連線字串不會有問題了剩下的就是 如何安裝這個驅動
這點 我也找不到下載的地方 ,查詢結果 似乎都指向Oracle 本身原廠會提供.....
可以去找看看 是否有 Microsoft ODBC for Oracle
以你上面敘述似乎目前應該是正確驅動的我覺得剩下的就是連線字串問題
你何不仿照 下面的連線字串方法修改你的連線字串不要寫得那麼複雜先通 再說.... 回复 5# cmh229
請先提供你的ODBC 照片...... PSODBC 指的是 你個人電腦上的 ODBC 而不是SERVER 上的喔 回复 6# kk_lee69
https://www.connectionstrings.com/oracle/
http://www.oracle.com/technetwork/cn/topics/dotnet/cook-dotnet-082654-zhs.html
看看是否有幫助
这个是我的电脑的32位的ODBC。
这个驱动可以正确链接,但是不知道链接字符串怎么加到代码里,试了几次都失败了。
这个没有验证方式,不知道能不能正常连接。
另:有个问题我一直很疑惑,64位系统有2个ODBC驱动,因为32位的oracle不能连接64位的odbc,所以我的机器上也没有对64位odbc做配置。而32位的odbc配置如上面的截图。在我用autoit调用ado.connection的时候到底是用64位的ODBC,还是32位的ODBC? 回复 9# cmh229
64位元電腦 必須要使用 64位元的ODBC
如果你安裝了32位元的 是沒用的 回复 9# cmh229
我想看的是 驅動程序 的 那個頁面那裏才有 驅動的名子
这个页面吧 回复 12# cmh229
是 阿 所以你的驅動是 Oracle in OraDb10g_home1這樣應該沒錯
建議 你安裝64位元的 或者 換到32位元系統測試 楼上正解....... 回复 12# cmh229
問題解決了嗎??
页:
[1]
2