先定义一个全局变量 var vid:string;然后再dbgrid的DBGrid1CellClick事件中写入下代码procedure Tfmmjandprodview2.DBGrid1CellClick(Column: TColumn); beginvid:=Trim(DBgrid.fields[1].value.ASstring );end; 然后在删除前点dbgrid中的那条记录,删除按钮button或者bitbtn的Click事件写如下代码query.close; query.sql.clear; query.sql.add(' delete from table where id ='''+vid+''' '); query.ExecSQL;
除了使用SQL查询外,还有没有其他方法定位所选的记录呢?
if application.MessageBox('真的要删除此条记录吗?','提示',mb_iconquestion or mb_okcancel) <> idok then exit else dbgrid1.DataSource.DataSet.Delete;
var
vid:string;然后再dbgrid的DBGrid1CellClick事件中写入下代码procedure Tfmmjandprodview2.DBGrid1CellClick(Column: TColumn);
beginvid:=Trim(DBgrid.fields[1].value.ASstring );end;
然后在删除前点dbgrid中的那条记录,删除按钮button或者bitbtn的Click事件写如下代码query.close;
query.sql.clear;
query.sql.add(' delete from table where id ='''+vid+''' ');
query.ExecSQL;
else
dbgrid1.DataSource.DataSet.Delete;
使用这句话后,每次都删除第一条记录,而不是删除所选的记录!还有更好的办法吗?
begin
DBGrid1.DataSource.DataSet.Delete
end;
ADOData_phone.Active:=false;
ADOData_phone.Active:=true;
导致每次都删除的是第一条记录,去掉这两句就OK了,不过题外话为什么加入这两句后每次都删除的是第一条记录呢?能告诉我吗?
ADOQUERY1.DELETE;
ADOQUERY1.POST;
行了