用的是什么数据库系统?
参照完整性按照 Snakeguo(枫) 设好后,只需删除主表中的一条记录即可删除从表中与之相关的所有记录,很方便.一定行得通.
参照完整性按照 Snakeguo(枫) 设好后,只需删除主表中的一条记录即可删除从表中与之相关的所有记录,很方便.一定行得通.
解决方案 »
- 求救:怎样将swf文件中每一帧提取出来转换为图片
- 送分题
- 谁来救救我郁闷了很久。。DBGridEh的奇怪问题
- 赶快帮个忙啊,我的程序是用的Delphi6+Oracle10G开发,数据库访问用的是Ado,但现在才发现这样的话,客户端也需要安装Oracle的客户端,
- 关于Delphi的效率问题(太重要了)
- 提取字符串中的字符函数?
- 好久没有问题了,现在问一个,大家讨论!
- 有这么一个问题,忘各位告知道,给分!谢谢!
- 关于treeview
- 想挑战自己吗?一个弱智问题:本地Foxpro表如何用SQL语句创建?
- sql2000+ado中的异常的处理
- TreeView中,失去焦点后如何标示失去焦点之前被选中的item?
只删除从表中的一个记录时只对从表操作,如果删除主表上的记录时,利用关联的字段值同时也删除从表中(where 关联字段=主表上的字段的值)相关的记录。
加个UPDATE代码试试!
try
if myTable.CachedUpdates then
begin
myTable.ApplyUpdates;
myTable.CommitUpdates;
end
else
if (myTable.State=dsEdit) or (myTable.State=dsInsert) then
myTable.Post;
except
Erroring('保存明细记录时出错!');
end;
ADO的
try
if ADOTable1.LockType=ltBatchOptimistic then
ADOTable1.UpdateBatch;
except
Erroring('保存明细记录时出错!');
end;
比如:query1.sql.text:='delete 从表 where 字段1=???'
+' delete 主表 where 字段1=???'
2、用完QUERY后从新打开或刷新数据库,dbgrid就可以显示出来
3、如果只做删除,datamoudle中不用加很多东西,放一个公共QUERY就行
修改还是用ADOTABLE比较好。
具体问题具体分析,我的意见是针对你删除主从表的问题。
begin
if Recordset.RecordCount>0 then
While not Eof do
Delete;
DMSales.adodspacking_list_hdr.Delete;
UpdateBatch;
DMSales.adodspacking_list_hdr.UpdateBatch;
end;