有员工表Employee和部门表Dept
Employee中每个员工中对应一个Dept的ID现在我在一个数据集中打开:
adoqry1.close;
adoqry1.sql.clear;
adoqry1.sql.text:='select e.*,d.DeptName from Employee e,Dept d where e.DeptID=d.DeptID';
adoqry1.open;adoqry1的lockType是ltOptimistic但是使用adoqry1.delete;时,不但删除了员工表中的那项,还把对应的部门也删除了……请问有什么办法可以解决么?
谢谢大家~~

解决方案 »

  1.   

    不要用adoquery1.delete,自己写吧。
    adoquery2.sql.clear;
    adoquery2.sql.add('delete from Employee where Employee_id='+adoqry1.fieldbyname('Employee_id').asstring);
    adoquery2.execsql;
      

  2.   

    同意楼上adoquery1.delete是不行的
      

  3.   

    大飞虫都说了,我还说什么呢?
    注意的是最后用excesql,不要用open,
      

  4.   

    保险一点还是用一楼的方法
    或者不用adoquery1 用query+updatesql
      

  5.   

    LockType设为ltBatchOptimistic在保存的时候,自己去判断RecordStatus的值,和UpdateStatus的值。
    去自己成长相应的SQL,
    再去数据执行,
    会比较好一点.RecordStatus:设置出现哪些记录.
    UpdateStatus:当前记录的状态,是否删除的,是修改的,还是新增的.
      

  6.   

    我一般刪除的時候也用 flyingkiller(大飞虫) 的方法
      

  7.   

    我同意大虫的!用sql语句比较好!