如何判断执行是否成功?(50分)

  • 主题发起人 主题发起人 jacklee
  • 开始时间 开始时间
J

jacklee

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是paradox表。用insert语句向一个表中插入数据,如果语句执行到一半时出现问题,请问
1、数据是否只插入了一半?
2、如何能保持数据的完整(不成功就滚回)。
3、如何判断语句是否执行成功???
4、用batchmove可以解决么?
请附例程!
 
没用过paradox,用Query时可以做个事务加下try except来完成
 
事务处理
 
事务处理
异常处理 的结合
 
请各位不要灌水。你们说得道理我都懂!请按照我的提问回答。分数如泼出去的水是不会收回的,但是各位得分要得的有价值!!!
请具体作答!不要敷衍了事,否则请不要打字!
 
database.starttransaction
try
database.commit;
except
database.rollback;
end;
不过用bde模拟的transaction效果不是很理想,尤其是paradox,已经被淘汰
 
看你的表的字段如何设计了,如果在满足数据完整性和个约束条件的情况下(比如字段是否为空,字段的Check的条件,主键是否重复等)
插入是成功的,如果不满足则滚回,不存在数据只插入一半的情况。

判断语句是否成功,可以通过捕捉异常来判断。
 
database.starttransaction
try
database.commit;
except
on E:exception do messagebox('e.message');
database.rollback;
end;
 
b:boolean;
database.starttransaction
try
// insert
database.commit;
b:=true;
except
b:=false;
end;
if not(b) then
begin
database.rollback;
...
end
else begin
...
end;

 
接受答案了.
 
分数不分数不重要吧?关键是异构查询中事务处理问题,有谁研究过,各位高手,否则异构
查询存在没有任何意义。
 
后退
顶部