我有如下一段用于删除记录的代码,在删除前使用了
另外一个 TClientDataSet做一个查询:
   //查看当前单号下是否有明细记录
    sql := 'select * from SC_SWCKPZMX where SC_DH='''+edtSC_DH.Text+'''';
    cdsSelect.Active := false;
    Socketconnection.AppServer.QryData(sql);
    cdsSelect.Active := true; 
    if cdsSelect.RecordCount = 0 then exit;
   //若无明细记录则删除但前出库单记录
    cdsMain.Delete;
    cdsMain.ApplyUpdates(-1);
这种情况下无法彻底删除,也就是在DBGrid中似乎删除了,但实际上并没有从数据库中删除,但如果去掉前面判断是否存在明细记录的代码后就可以顺利删除,我经常会碰到这样的情况,以前的处理办法都是用变量来记录当前记录,删除前再按照变量重新查询,但这样感觉很累赘,也影响速度,不知道为什么会出现这样的问题,大家有什么好的办法。