我写了一个但是不行呀!
procedure TF_main.suiButton17Click(Sender: TObject);
begin
datamodule1.adoq_xs.Edit ;
datamodule1.adoq_xs.delete;
end;错误提示如下
row cannot be located for updating.some values may have been been changed since it was last read.
我想删除的是主表的数据.
但在数据库中数据已经被删除了.请指点一个

解决方案 »

  1.   

    datamodule1.adoq_xs.delete;  //Totally OK!datamodule1.adoq_xs.Edit ;  // It is not necessary
      

  2.   

    在你adoq_xs的Afteropen事件写:
      adoq_xs.RecordSet.Properties['unique Table'].Value:='你要删除的主表名'
    然后在删除按钮写上你的以上代码就不会有错误了。
      

  3.   

    //请问"删除"按钮怎么写呀!!--如下:
      datamodule1  数据模块?
      datamodule1中放adoconnection即可。不用放adoquery.  F_main 主窗口?
      F_main中放adoquery.
      uses 中加入datamodule1。
      
    然后: procedure TF_main.suiButton17Click(Sender: TObject);
    begin
         adoq_xs.delete;
    end;
      

  4.   

    procedure TF_main.suiButton17Click(Sender: TObject);
    begin
    datamodule1.adoq_xs.delete;
    end;错误提示如下
    row cannot be located for updating.some values may have been been changed since it was last read.还是不行呀!!!
      

  5.   

    其它语句应该没有问题的,
    对了上面的删除操作是在adoquery的查询结果的基础上进行的删除,可以吗??
    如果不行,应该怎么改??
      

  6.   

    datamodule1.ADOQ_xs.close;
    datamodule1.ADOQ_xs.SQL.Clear;
     datamodule1.ADOQ_xs.SQL.Add('delete   from 学生表  where 学号='''+dbedit1.text+''' ');datamodule1.ADOQ_xs.ExecsqL();这样写为什么不能删除数据呀!!
      

  7.   

    你的沒有問題,是不是你用的是BDE連接的改為ODBC連接就好了
      

  8.   

    procedure TF_main.suiButton17Click(Sender: TObject);
    begin
      datamodule1.adoq_xs.Delete;
      datamodule1.adoq_xs.Close;
      datamodule1.adoq_xs.Open;
    end;Have a try to using Breakpoints and F7 to debug.