pb8托盘程序断网重连
请教一下大家,我用pb8写了一个托盘程序连接oracle数据库去提取一些数据,但是网络总是断续,造成托盘程序断网之后必须手工重新开启(断网时报错ora03114),我想请教一下怎样才能通过pb本身实现断网自动重新连接oracle呢?程序连接数据库代码大致如下:ls_logid = ProfileString (gs_ini_file, "database", "logid", "")
ls_logpass = ProfileString (gs_ini_file, "database", "logpass", "")
SQLCA.DBMS = ProfileString (gs_ini_file, "database", "dbms", "")
SQLCA.ServerName = ProfileString (gs_ini_file, "database", "servername", "")
SQLCA.DBParm = ProfileString (gs_ini_file, "database", "dbparm", "")
SQLCA.LogID = ls_logid
SQLCA.LogPass = ls_logpass
SQLCA.AutoCommit = FALSE
CONNECT USING SQLCA; 如果程序是定时取数据的,那建议取数据连数据库,取完断开。每次重连。 ehxz 发表于 2022-7-16 16:23
如果程序是定时取数据的,那建议取数据连数据库,取完断开。每次重连。
我试过写了一个重新连接数据库的方法(如下代码),我感觉如果在空闲期断网,然后我可以重新连接,但是如果正在传数据的过程中断网,程序就会报错死掉,目前还在查找程序报错死掉的原因,不知道怎么抓取,请问有没有什么好办法?
datetime ldt_sysdate
select sysdate into :ldt_sysdate from dual using SQLCA;
if SQLCA.sqlcode = 0 then
return 0;
else
disconnect using SQLCA;
end if
CONNECT USING SQLCA;
if SQLCA.sqlcode<>0 then
return -1
else
return 0
end if 1、连数据库;
2、处理事务;
3、断开数据库。
每次处理数据,都做以上循环操作。 ehxz 发表于 2022-7-18 10:43
1、连数据库;
2、处理事务;
3、断开数据库。
大概懂了,我在处理数据之后都要判断一下连接,然后再重新连接,我试试去,感谢
页:
[1]