如何让PB判断是否断开数据库?(后台数据库为Oracle 10g)
环境:PowerBuilder10.0和Oracle 10g数据库
要求:由于我的程序需要长期运行,但是有时数据库会断开我的连接。因此我需要程序能够自动判断数据库是否断开连接,再自动连接。我是这么做的,在窗体的timing控件里加入以下语句,并设置时间间隔为1秒
try
select tel_8001 into :state from scott.TELE_UPDATE; //做select操作
finally
if re_connect(1)=1 then //re_connect是重新连接函数
sys_log("已经完成与数据库重新连接") //sys_log是自己编的打印信息函数
commit;
return
end if
end try
但是再实际运行中,我却发现PB的程序在不断的重新连接数据库(每隔1秒),请问如何做才能够准确判断数据库的连接状态,谢谢?
顺便附上连接的脚本(采用Oracle9i专用接口的连接方式 )
disconnect;
string ls_msg
SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass = "tiger"
SQLCA.ServerName = "hangang"
SQLCA.LogId = "sys"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectAs='SYSDBA'"
connect;
IF SQLca.sqlcode=-1 then
ls_msg='启动数据库失败...'+sqlca.sqlerrtext
messagebox("错误",ls_msg)
else
....
end if