我的一个窗体中的用的DBGRID显示数据,显示的数据关联了两个表(一个是基本信息表,一个是流水表),设置了一个删除BUTTON,用于删除记录,代码如下:一下子把关联的两个表中的数据都删除了,怎么不删除基本信息表中的数据,只删除流水表的数据?如果用SQL语言的话 delete table 流水表 where id='DBGRID中被选中的当前行的某个字段值',我不知道where条件中怎么写“DBGRID中被选中的当前行的某个字段值”,请前辈赐教,谢谢if application.MessageBox('是否要删除此记录',mb_yesno)=id_yes then
   f_data.inmodification.Delete();

解决方案 »

  1.   

    用fieldbyname('col').asinteger取的主键的值
    然后用adoquery组合sql语句,删除即可
      

  2.   

    adoquery.sql.text:='delete table 流水表 where id='''+DBGrid1.DataSource.DataSet.FieldByName('id').AsString+'''';
      

  3.   

    可以用主键就像楼上二位说的那样
    with ADQ do
    begin 
      sql.clear;
      sql.add('DELETE FROM 流水表 WHERE ID='+DBGrid1.DataSource.DataSet.FieldByName('ID').AsString);
      excesql;
    end;如果adoquery是流水表的dataset可以直接
    if Application.Message('确定要删除?','提示',MB_YESNO+MB_ICONQUESTION)=idyes then
      ADOQuery.Delete;