table.delete;(100分)

  • 主题发起人 主题发起人 peron
  • 开始时间 开始时间
P

peron

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用DELETE时常常发生异常,请问如何避免?
 
发生什么异常,你删除的是不是空记录?
 
是本地数据库,还是SQL数据库?

先判断是否可删:权限、只读、有无记录等,
再删也不迟!
 
要看是什么异常了.
总共有以下几方面的问题
1,权限(在网络数据库中).
2,外键关系的制约(Paradox中的lookup关系)。若要删除主表的记录,
而从表中有从属于这条记录的记录,则先要删除从表中的记录(在网络
数据库中可以用触发器来实现).
3,另外,对于有些数据库,如果表中没有关键字,就不支持这样的删除,
建议在关系数据库中建表时设立关键字。
 
可以用
try
...
except
.....
end;
截获异常来处理
 
table.delete(行号);
 
使用异常控制和保护.
try
table1.Delete ;
except
On E:Exception do begin
Edit1.Text:= E.message ; //如果发生异常, 则将错误信息显示在Edit1中.

end;
end;
 
是有关联的字段吗?SQL 数据库没唯一索引吗?
try
table.delete;
except

end;
能删就删,不能删拉倒:)
 
是否为空记录
或者在编辑说已经超出了字符数
table1.edit
table1.delete
 
Table1.Delete;一句没错!估计是将Table1设为只读了吧?
 
也许执行该语句之前把table关掉了,
要不是空表?
 
出错原因:
1.Table为只读.
2.在SQL中表被别人锁住.
3.关联表

1.用
try
...
except
...
end;来处理出错.
2.改用Tquery.
 
:peron
你的人呢,问题的回答已经很全面了,TTABLE的DELETE肯定行,
实在有问题,使用TQUERY,
 
接受答案了.
 
后退
顶部