VB6 程序连Ora-06413解决手札
admin
2023-04-29 22:44:24
0

原由

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解决手札

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

结论:

没事别在路径里加括号,不然你会死的很没面子;代码里加点异常处理也不会增加很大的工作量,亦可造福后人;




相关内容

热门资讯

国台办:买再多的武器都是螳臂当... 5月13日,国务院台办举行例行新闻发布会。总台记者就台湾军购费用引发舆论质疑提问。发言人张晗表示,我...
豫篮联赛:赛场劲吹“文旅风” 汉服小姐姐在看台上翩翩起舞。胡斌 摄洛阳队球员上篮。胡斌 摄“五一”小长假后,豫篮联赛伴随着初夏的热...
凡星闪耀丨《武林外传》中小米扮... 张清(右)在免费餐厅为大家服务。张清在《武林外传》中饰演“丐帮弟子”小米(右)。在郑州的城市烟火气中...
卫华:做走向世界的“起重管家” 卫华集团智能生产车间。常晶晶 摄作为全省服务业大会的参会企业,河南卫华重型机械股份有限公司(以下简称...
在加快国际消费中心城市建设中彰... “服务业是推动经济高质量发展的重要引擎,也是强化国家中心城市核心竞争力的重要支柱。”5月12日,省委...
坚定不移沿着习近平总书记指引的... 壮美的郑州黄河文化公园。河南日报资料图片 河南日报全媒体记者 聂冬晗 摄来郑州,到哪里慢赏大河风光?...
双庆同辉映初心——黄河科技学院... 2026年5月12日,黄河科技学院附属医院迎来开诊七周年纪念日,恰逢第115个国际护士节。当天,医院...
驻美大使谢锋回应中美热点问题 据中国驻美国大使馆5月13日消息,5月5日,中国驻美国大使谢锋就美国总统特朗普访华和中美关系接受美国...
邻妹妹帮办 | 占地1.2万㎡... “杞县有个婚礼庄园,6 大主题特色宴会厅,可同时容纳2000人聚餐,在未变更工业用地用途、未经消防验...
国台办:和平统一后,台湾同胞民... 5月13日,国务院台办举行例行新闻发布会。有记者问,国务院台办发言人在之前发布会上已分别阐释了和平统...