任何发现都需要痛苦的经理,而我就是被这样折磨后发现了这个bug
可执行文件在开发的时候好好的,随便怎样都能运行
可当我把它考到别的目录下,它始终连不上数据库
我的开发工具是Delphi5,数据库是Oracle9i
它报的ErrorCode为06421。
从网上搜索了好久也没有找到任何答案......
只找到了很多从这台机子上可用,可是到了别台机子就无法连接Oracle的种种求救讯息
还好,终于被我找到了这个该死的深藏不露的答案:
凡是在可执行文件的路径中包含“()”时,就无法连接Oracle数据库。ErrorCode为06421
路径比如:D:/Delphi/Oracle(demo)/demo.exe , D:/Delphi(demo)/Oracle/demo.exe或者是
D:/Delphi/Oracle/demo(demo).exe时,都无法连接数据库。
只要你将“()”去掉,一切都恢复正常。
原先我还以为是Delphi5的问题,于是在Delphi7下测试,也发现了这个问题。
又以为是Delphi5BDE控件的问题,换成了Ado也同样有问题。
再者用PL/SQL Developer来测试,将它的路径加上“()”,也同样有这个问题,但它的ErrorCode为ORA-12154 TNS:无法处理服务名
所以我敢说,这是Oracle的一个bug!
如果有朋友在这个问题上苦苦挣扎,那么希望此帖对大家有用!