在程序(VB6)中用ADODB连接ORACLE,编译成功。生成EXE后,却连不上,提示“ORA-12154:TNS:could not resolve service name”
已引用 Microsoft ActiveX Data Objects 2.5 Library 但没有使用ADO控件。不知是否还缺少其他引用,请高手们指点。
已引用 Microsoft ActiveX Data Objects 2.5 Library 但没有使用ADO控件。不知是否还缺少其他引用,请高手们指点。
http://hi.baidu.com/sheenshine/blog/item/0f8af9dd85109edf8c10296d.html
问题在于,我VB开发软件中编译运行都正常,在SQL PLUS等工具中,也可以正常连接Oracle。检查Oracle的配置,TNSNAMES.ORA正确,SQLNET.ORA也没有配置参数。只是在执行EXE时报错。当我在连接字串中,改为"Provider=msdaora.1"时,同样只在执行EXE时出错,但错误提示为“Ora-06413: Connection not open",并产生一个sqlnet.log。文件中,在TNS字串的后面增加了CID、HOST和USER项。请高手指点。
ORACLE已经安装,并可以通过SQL PLUS连接。必须要建立ODBC吗?为什么在开发环境下可以运行呢?请指点。
ByVal lpOutputString As String)编译后这是一种比较有效的调试手段之一.
msgbox(strCon) '输出的字串是正确的
OutputDebugString(strCon) '在Debugview中看到的字串也是正确的
connection.open(strCon) '执行到这里时出错
因为不会用Dbgview,不知道这种情况下该如何DEBUG。谢谢!
DLMM = "password=" + frmPreSet.TXTdlmm.Text
DLSLM = "Data Source=" + frmPreSet.TXTslm.Text
LSsjk = DLYHM + ";" + DLMM + ";" + DLSLM
LSsjk = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;" + LSsjk
Set Gconnection_HQ = New ADODB.Connection
Gconnection_HQ.Open LSsjk
If err Then
MsgBox "连接数据库失败", vbInformation
Exit Sub
End If
会不会是他们获得的系统权限不一样,
你用的是什么操作系统,WindowsXP?你可以试试建立系统ODBC数据源,然后访问系统数据源试试
不愧是VB老鸟!
如你所说,我的EXE文件名中有括号,导致TNS错误。把括号去掉就可以正常运行了。
不能相信,原来问题在程序以外。