我用
procedure Tw_main.DBGrid1CellClick(Column: TColumn);
begin
self.Edt_zt.Text :=self.ADOQuery1.FieldByName('zt' ).AsString;
self.MaskEdit_bjrq.Text :=self.ADOQuery1.FieldByName('bjrq' ).AsString;
self.Mem_ztnr.Text :=self.ADOQuery1.FieldByName('ztnr' ).AsString;
self.lbl_ztbq.Caption :=self.ADOQuery1.FieldByName('zt').AsString;
end;后用ADOTable1.Delete不能删除指定的记录,而删除table1中的排列在最前面的第一条数据,这是为什么呀,大哥们帮帮忙
procedure Tw_main.DBGrid1CellClick(Column: TColumn);
begin
self.Edt_zt.Text :=self.ADOQuery1.FieldByName('zt' ).AsString;
self.MaskEdit_bjrq.Text :=self.ADOQuery1.FieldByName('bjrq' ).AsString;
self.Mem_ztnr.Text :=self.ADOQuery1.FieldByName('ztnr' ).AsString;
self.lbl_ztbq.Caption :=self.ADOQuery1.FieldByName('zt').AsString;
end;后用ADOTable1.Delete不能删除指定的记录,而删除table1中的排列在最前面的第一条数据,这是为什么呀,大哥们帮帮忙
然后ADOTable1.Delete肯定会删除当前选中的行
有什么方法可以解决吗?谢谢
ADOTable1.SQL.Add('delete form table_name where field_name='''+value+'''');
ExecSQL;
2、用ADOTable1先找到这条记录再DEL另外:我不明白你用DBGrid1CellClick过程在做什么,你想做什么???
因为DBGrid中就可以显示和删除数据,Edt_zt这些也可直接用DB控件。
procedure Tw_main.DBGrid1CellClick(Column: TColumn);
begin
self.Edt_zt.Text :=self.ADOQuery1.FieldByName('zt' ).AsString;
self.MaskEdit_bjrq.Text :=self.ADOQuery1.FieldByName('bjrq' ).AsString;
self.Mem_ztnr.Text :=self.ADOQuery1.FieldByName('ztnr' ).AsString;
self.lbl_ztbq.Caption :=self.ADOQuery1.FieldByName('zt').AsString;
end;
也不行,删除不掉
后再用
ADOQuery1.sql.Clear;
ADOQuery1.sql.Add('select * from jb');
ADOQuery1.Open
数据还是在的吗?
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Delete from jb');
ADOQuery1.prepared;
ADOQuery1.ExecSql;
这样删除应该可以了。
adoquery.delete;
要删除所有记录
要MOVE NEXT
或者用ADOQUERY控件可以删除
楼上的都说过了
你要先将指针定位到你要删除的记录上;然后再删除;
譬如用;
if adoqurey1.locate('fieldname',edit1.text,[]) then
adoquery1.delete;或者是用sql语句执行删除
adoquery1.sql.text := ('delete from yourtable where fieldname1 = :1');
adoquery1.parameters.parambyname('1').value := edit1.text;