Delphi连接ORACLE丢失联系错误解决!

来源:互联网 发布:淘宝买了电动车后悔了 编辑:程序博客网 时间:2020/11/25 16:15

最近以前一直正常的一段程序突然不能正常运行了。提示错误:ORA-12547: TNS: 丢失联系。做程序这么多年来这个问题倒是第一次碰到。我的程序是连接的ORACLE数据库,用的是ADO 的数据源方式连接。

连接字符串是这样的:

adoCon1.ConnectionString := 'Provider=OraOLEDB.Oracle.1;Password=XXXX;Persist Security Info=True;User ID=main1;Data Source=oralx;Extended Properties=""';

我确信我的连接字符串和数据源的设置都没有问题。另外说明的是在我的本机上正常运行没有什么错误!

但是放到服务器去出现ORA-12547: TNS: 丢失联系的错误!真让人费解!

但同时我发现另外一个问题:我用procexp.exe(一种进程管理器)发现在我的程序在服务器上运行时连接的Remote Address竟然是一个60开头的外网地址,我本机上运行连接的是正常的公司内网址,这个现象真是太奇怪了。我检查了好多遍程序,我确认程序里没有问题。开始我怀疑是病毒的问题,因为我前两天在我机器上发现了好多病毒!其中我的程序的EXE文件也被感染了病毒!我把病毒杀了后,重新运行生成EXE文件上传到服务器,错误依旧。真是不知道什么原因了。在服务器上杀毒也未果。整了好长时间也没整明白。后来多亏网友晚风的一段代码的提示。就是把数据库连接信息直接写到连接字符串里:

adoCon1.ConnectionString := 'Provider=OraOLEDB.Oracle.1;Persist Security Info=True;'+
   'Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = '+
   txtserver+')(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = '+txtdatabase+
   ')));User ID='+txtuser+';Password='+txtpassword;
错误果然没有了。我真是太高兴了。真的很感谢晚风大哥!

最后我想可能是我的系统数据源被破坏!

虽然具体原因我也不是很清楚!但是希望给有相同问题的网友一些提示!

原创粉丝点击