中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB6 程序連Ora-06413解決手札

發布時間:2020-07-07 16:47:10 來源:網絡 閱讀:1760 作者:snowhill 欄目:關系型數據庫

原由

Win7 x64平臺,Vb6程序啟動,直接啟用不了;

Vb6比較古老了,應當是石器時代的產物;這錯誤一看應當與oracle環境變量有關,而朋友確認裝了oracle 9i client 32位。

經過:

由于程序寫的比較扯淡,沒有對錯誤異常拋出正確的信息,幸好手上還有源碼,按f8單步執行看了一下,下面調試部分直接報:ora-06413:連接未打開。看了代碼,比較通用的一個用ado打開數據庫的代碼,增加紅色部分,重新生成vb程序,省得每次都單步調試。

Function OpenDBConnection(cn AsADODB.Connection, strCnn As String) As Boolean
   On Error GoTo OpenMainSybaseError
   Set cn = New ADODB.Connection
   With cn
      .CursorLocation = adUseClient
     .ConnectionString = strCnn
     .ConnectionTimeout = 10
     .Properties("Prompt") = adPromptNever
     .Open
   End With
   OpenDBConnection = True
    MsgBox "dbconnectstring is " + strCnn
   Exit Function
OpenMainSybaseError:
    MsgBox Err.Description
   OpenDBConnection = False
End Function

再次啟動程序好了,錯誤直接甩出來:ORA-06413連接未打開

看了下連接字符串:

Provider=MSDAORA;data source=ora;UserId=cxf1;Password=test;Unicode=True

用的msdaoratnsping ora了一下,沒有問題;那么問題來了,msdaora的問題?這個驅動在官方確實有說明

https://www.microsoft.com/en-US/download/details.aspx?id=20065

只有2003xp的版本了,不過后來檢查

C:\Program Files (x86)\Common Files\System\Ole DB

貌似64位下直接有這三個文件:msdaOra.dllmsdaosp.dll,msdaOrar.dll 并不需要額外的驅動;

但既然懷疑到這了,嘗試用了OraOleDb.Oracle.1,換了個錯誤 ,居然報tns-12514,看樣子還是與環境變量有關。后面的故事比較無聊,純屬安裝卸載,卸了ora92版本,重新安裝oracle 10g client,依舊,卸載10g client11g 依舊,32位都不行,要不試試64位,裝上11g 64位,直接報驅動沒啟用:

VB6 程序連Ora-06413解決手札

有點病急亂投醫了,好了,理理思路:

1 64位肯定不行,因為那時32位的vb壓根兒不知道64位的事情;

2 10g的32位client既然能到tsn-12514證明,這個驅動應當是可用的,只是環境變量不對;

重新上了下oracle的官網,說提供了32位的odac驅動,

http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

好家伙,直接下載了個10G的最低版本,為啥最低,各位懂的,vb6這個元老用老的不出錯;結果裝不上,正常,10g嘛,裝在64位上要更改oraparam.ini,

[Certified Versions]

#You can customise error message shown for failure,provide value for CERTIFIED_VERSION_FAILURE_MESSAGE

Windows=4.0,5.0,5.1,5.2,6.0,6.1

好,OK裝上了,測試ODBC,一切正常,萬事OK,一開程序,依舊報ora-06413.

沒轍了,看看sqlnet.log,發現:

***********************************************************************
Fatal NI connect error 6413, connecting to:
 (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=115.29.114.XXX)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)(CID=(PROGRAM=C:\test()\ttest.exe)(HOST=SNOWIND-PC)(USER=snowind))))
 
 VERSION INFORMATION:
         TNSfor 32-bit Windows: Version 10.2.0.1.0 - Production
 Time: 12-12月-2016 21:20:45
 Tracing not turned on.

基本猜出問題所在了(哎,靠猜的-_-!!)

打開調式程序,再次數據鏈接屬性:

VB6 程序連Ora-06413解決手札

VB6 程序連Ora-06413解決手札

VB6 程序連Ora-06413解決手札

終于成功了(可以放×××了)。

結論:

沒事別在路徑里加括號,不然你會死的很沒面子;代碼里加點異常處理也不會增加很大的工作量,亦可造福后人;




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南陵县| 阳西县| 绥棱县| 新余市| 宣化县| 栾城县| 抚远县| 江城| 临高县| 泰顺县| 锡林郭勒盟| 沿河| 安吉县| 余姚市| 永川市| 乌鲁木齐县| 延安市| 辽中县| 盐城市| 田阳县| 阳曲县| 沙河市| 涡阳县| 饶平县| 临颍县| 临沭县| 旌德县| 新巴尔虎右旗| 庆元县| 潞城市| 阿坝县| 宜城市| 通江县| 安福县| 江城| 曲沃县| 海兴县| 信宜市| 金山区| 三穗县| 鄂伦春自治旗|