没有太好的办法,用SQL语句去实现吧

解决方案 »

  1.   

    先删除所有从表(frdm=....),然后删除主表,用ado
      

  2.   

    1、有的数据库可以在设置索引的时候设置属性为级联删除cascade,或者禁止prohibit,例如parodox
    2、如果支持触发器的,那么你可以在数据库中编写触发器,当删除as delete 法人代码的时候,删除其他表中的纪录
    3、或者干脆就首先删除其他8个表中对应的子纪录,然后再删除主表的这条纪录
      

  3.   

    1. 对SQL数据库:
      为tb_dwxx建立删除触发器,在触发器代码中简单删除从表相关记录即可2. 对Local File 数据库
      同意kesa的观点
      

  4.   

    在sql里建立级连删除约束,sql server会自动级联删除!
      

  5.   

    看你用什么数据库了,Access和sql server2000在编辑关系是设置级连删除就可以了,sql server7吗,如果没有外键约束的话,用触发器来删除,否则只能写sql了。
      

  6.   

    在数据库中实现,写SQL语句来更新表结构
    如:
    ALTER TABLE T_Detail
           ADD FOREIGN KEY (FieldName)  
                                 REFERENCES T_Master
                                 ON DELETE CASCADE
                                 ON UPDATE RESTRICT;
    就可以了,删除主表的一条记录的时候,对应的明细也给删除了或者在程序里面写SQL语句来实现,既然有关联字段,就好写SQL了,很简单的
      

  7.   

    正如上面所说,如果数据库本身支持触发器定义,那是最好了,如果不行,那么可以采用 SQL 语句。在ADO中可以用Command对象专门用来执行SQL如下:
      SysADOConnection.BeginTrans
      
      CommandText := 'delete from 主表 where Frdm=''' + frdm + '''';
      //在这个地方可以执行SQL,如果出错,还要事务回滚
      ....
      CommandText := 'delete from 从表1 where Frmdm=''' + frdm + '''';
      ....  SysADOConnection.CommitTrans;
      

  8.   

    to lynmison :    在BDE中可不可以实现类似的操作?
      

  9.   


    用ADO组件,创建视图,修改后提交,由ADO“自动”更新视图相关的所有表。
      

  10.   

    用ADO建表时,可以选择“实施参照完整性”
      

  11.   

    使用SQL DBMS建议使用触发器,在服务器端执行速度要快,安全性要好.
    create trigger trigger on tablename for delete
    as
    delete from table1 where table1.column=deleted.keycolumn
    delete from table2 where  table2.column=deleted.keycolumn
      

  12.   

    用ADO组件,创建视图,我的书上没有介绍。您能不能介绍一下。还有实施参照完整性
      

  13.   

    如果你用的是RDBMS,如:Oracle等,可用celeronII(抽烟的鱼) 的方法。
    如果你用的是Access,或 .DBF,就用BDE的事务处理,如:
      开始事务
      删除第一个子表中要删除的资料;
      删除第一个子表中要删除的资料;
      
      删除主表中要删除的资料
      提交事务/或不成功回滚事务