异常问题(100分)

  • 主题发起人 主题发起人 bora
  • 开始时间 开始时间
B

bora

Unregistered / Unconfirmed
GUEST, unregistred user!
我要把若干条采集来的数据存入数据库中,数据库设置了校验机制。
我的问题是,如何把系统产生的异常屏蔽掉,让系统把满足条件的数据
全部存入数据库,而不会因为异常而终止!即不需用户干预,系统正常执行下去。
 
try
//数据保存动作
except
end;
在出错时不进行处理,或者只进行记录,不要进行交互。
 

把要插入的数据放在一个循环中进行insert操作。
在每一循环一次时,用try except end 开启事务,在并屏蔽掉异常。
正常插入后,commit提交事务,有错时,rollback事务。
 
同意pcc_mmz1
 
采集来的数据存放于内存数据集中,我用了一个循环进行数据插入操作:
while not MemData.eof do
begin
try
Query1.Insert;
...
Query1.post;
MemData.Delete;
except
//屏蔽异常(希望屏蔽掉,然后执行Next操作)
//数据集跳过该条记录,指向下条记录
end;
end;
如何屏蔽掉异常,然后让当前记录指到下一条?
谢谢三位,希望进一步作答。
 
按你的意思,其实except后不需要任何语句就可以了:
try
Query1.Insert;
...
Query1.post;
MemData.Delete;
except
end;

 
问题是,有异常时,必须让它执行MemData.Next
我曾试着这样写
while not MemData.Eof do
begin
try
Query1.insert;
...
Query1.post;
MemData.Delete;
except
On E:Exception do
begin
//把异常信息写入文本文件,不出现消息框,然后执行Next
Writeln(textfile,'textfile.txt')
MemData.Next;
end;
end;
end;
但是未能凑效,我该如何写?
 
怎么个不奏效法?是移位不对,还是保存日志不对?
如果你的代码就是这样,那是保存日志的问题。
 
愚见:
while not MemData.Eof do
begin
try
Query1.insert;
...
Query1.post;
// MemData.Delete; //删除数据的操作可以在//2位置或ONPOSTERROR中做
except
On E:Exception do
begin
//把异常信息写入文本文件,不出现消息框,然后执行Next
Writeln(textfile,'textfile.txt')
//2
end;
end;
MemData.Next;
end;
 
To bora
MemData 是那个类阿?
从代吗看不出什么问题阿
 
seem as the bank's system
please use the transaction and lock.
 
后退
顶部