代码如下:
if DBGrid1.SelectedRows.Count>0 then
  begin
    if MessageDlg('确定要删除选定记录吗?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      with DBGrid1.DataSource.DataSet do
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
        s := Fields[0].AsString;
        Query1.SQL.Clear;
        t := 'DELETE FROM gongji WHERE No = '+s;
        Query1.SQL.Add(t);
        Query1.ExecSQL;
      end;
  end;No字段在gongji表中是long integer类型的。最后运行到“Query1.ExecSQL;”后就出错。
出错提示如下:
“Invalid use of Keyword.
token: No”该如何解决??

解决方案 »

  1.   

    'DELETE FROM gongji WHERE [No] = '+s;关键词
      

  2.   

    t的值已经跟踪过,显示正确。我选择第六条记录删除,跟踪值为'DELETE FROM gongji WHERE No = 6'。
      

  3.   

    No是关键字,你改个名如:No1,num什么的。
    你哪个DBGRID显示的是什么表,是gongji表??
      

  4.   

    你从SQLServer里直接执行DELETE FROM gongji WHERE No = 6试试。。
      

  5.   

    如果在SQLServer运行都出错,你就看你的数据库设计吧