一个关于BDE连接数据库的问题(200分)

D

daiji

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个实际运行系统中采用D3/D3.01编程。数据库采用Informix Ius 9.12版
在以下说明性代码中:
query1.databasename='test';//
query1.open;//query1.sql.text假设为Select * from table1 where ....
query1.first;
while not query1.eof do
begin
//
执行相应的操作(比如根据query1的结果去执行存储过程或
进行下一步查询)1
//
query1.next;2
end;
在以上的循环过程中数据库连接一直是打开的,如果在执行过程中出现数据库
shutdown、shutdown&启动、网络连接断开等问题的话,在以上的1或2步均会
导致程序不产生任何exception就直接退出。
我的问题:
请问如何能够抓住这种异常,以便能及时通知用户。
说明:1、我一定要得到完整的解决方案才会给钱的。
2、如果大家觉得此问题太难的话(分太少),我可以考虑增加分值。
3、此问题困扰我很久了,如果以上说明有不明白的地方请发e-mail给我
<a href="mailto:daiji@163.net">daiji@163.net</a>
 
try
while not query1.eof do
begin
// 执行相应的操作(比如根据query1的结果去执行存储过程或
进行下一步查询)1 //
query1.next;2
end;
except
// 提醒用户
query1.close;
end;
 
对不起,这种解决方案是不行的!(我试过了)
这么简单就想拿200分?^_^
 
我这有个变通的方法不知可行:
能不能试试捕获你说的几种异常情况呢?
然后 raise 一下,通知用户
 
其实没有必要,在1,2步骤中数据已经下载到本地机上
如果他不给你钱的话,那就这样:在1,2过程中反复断开,连接以扑获异常,
不就是慢吗!!!
 
对不起,我的问题就是,出现该情况时不会产生任何Exception.
你们可以用D3自带的Database Explore 试试。
 
delphi fan2先生:
如果在1、2步中间有网络故障,或数据库SHUTDOWN,那么不论您是试图断开
数据库连接还是对数据库进行其他操作都会不产生任何Exception就退出。
你们可以用D3自带的Database Explore 试试:先打开一个数据库连接,然后
将数据库SHUTDOWN或将网线拔掉,再去关闭此数据库连接或执行一句Sql,您就会
明白的。
 
试过自己定义一个TDatabase去连接数据库吗?
 
把TRY放在FOR中
没有道理,UPDATE TO 3.02;)
 
我试过了,会出现异常啊!
如以下一段代码:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i:integer;
begin
try
Database1.Connected:=True;
Query1.Active:=True;
for i:=1 to 10 do
begin
showmessage('press any key');//get a key,for you can
//disconnet the network
Query1.Next;
Query2.Active:=False;
Query2.Active:=True;
end;
except
on E:Exception do
begin
ShowMessage(E.Message);
Database1.Connected:=False;
end;
end;
end;
当循环时把网线断开,会出现General Sql error异常提示框,
用的是Oracle 7.3 数据库.会不会是数据库或ODBC的问题?
 
I see
You must update your BDE and SQL links it will do!
The up to date version BDE/Sql links support informix 9
 
各位大虾:
我的程序用到了D3中的某个ACTIVEX控件,不能升级到4,请问我该怎么
升级我的SQLLINK,现在在D3.01中任有此问题,是否应升级到302呢?
请给我一条光明道道走,我会马上去试,如果能行,马上付上米米!
 
ACtiveX控件在Delphi 4.0中重注册一下不就完了吗?
Import ActiveX-->your Activex
 
用open是不会出现异常的,改为active即可
 
BDE是可以单独下载安装的啊.
BDE Upgrade 5 ,10M.
 
)用OCX,需要把一个LICENSE文件复制到系统目录下
BDE可以免费下载,SQL LINKS我不知道
把D4的BDE/SQL LINK装一下试试(安装时CUSTOM只用BDE/SQL LINKS)
 
各位大虾:
我今天装了D4+UPDATE2,然后也升级了我的INFORMIX CLIENT
但是,我在DBEXPLORE中测试了以下,令人十分失望,故障依旧,
有一点变化,就是当我连上后,如果网络断开,我还可以DATABASE.CLOSE
而不会一声不响的退出。
请各位大峡多多帮忙,鸡市广伊,帮小弟解决此难题,就是再加分
也行。
 
Active=true and false试过没有,如果不行的话,考虑用第三方厂家的data
access控件了.
 
try link them use ODBC
 
是不是informix client有问题? 或者它在处理断线上根本没有通过windows的错误处理模块(delphi当然截取不到错误了)?
 
顶部