error123 发表于 2022-7-13 16:47:06

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:29

如果程序是定时取数据的,那建议取数据连数据库,取完断开。每次重连。

error123 发表于 2022-7-18 10:32:15

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

ehxz 发表于 2022-7-18 10:43:07

1、连数据库;
2、处理事务;
3、断开数据库。
每次处理数据,都做以上循环操作。

error123 发表于 2022-7-18 16:16:01

ehxz 发表于 2022-7-18 10:43
1、连数据库;
2、处理事务;
3、断开数据库。


大概懂了,我在处理数据之后都要判断一下连接,然后再重新连接,我试试去,感谢
页: [1]
查看完整版本: pb8托盘程序断网重连

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com