Delphi新手,做数据库程序时,删除按钮功能无法实现,求指点
RT,照着别人写好的删除功能,自己复制的,仅仅把窗口名改了。编译的时候没有任何报错,但是运行的时候点删除按钮却无效,只提示是否删除的对话框,数据仍然在表格了。
代码如下
procedure TFormBillMain.RzTbtnDeleteClick(Sender: TObject);
var
sqlstr: string;
strSeq: string;
i: integer;
begin
if CDMain.RecordCount > 0 then begin
if Application.MessageBox('确定删除吗?', '询问', MB_ICONQUESTION + MB_YESNO) = ID_YES then begin
if dgMultiSelect in DBGMain.Options then begin
DBGMain.DataSource.DataSet.DisableControls ;
for i := 0 to DBGMain.SelectedRows.Count - 1 do begin
DBGMain.DataSource.DataSet.GotoBookmark(Pointer(DBGMain.SelectedRows.Items[i]));
strSeq := DBGMain.DataSource.DataSet.FieldByName('fbill_no').AsString;
// 先删除本身 和由本身附带产生的
sqlstr := '';
sqlstr := sqlstr + 'delete from cx_bill_main where fbill_no = ' + strSeq;
end;
DBGMain.DataSource.DataSet.EnableControls;
end
else begin
strSeq := DBGMain.DataSource.DataSet.FieldByName('fbill_no').AsString;
// 先删除本身 和由本身附带产生的
sqlstr := '';
sqlstr := sqlstr + 'delete from cx_bill_main where fbill_no = ' + strSeq;
end;
GetMainData('');
end;
end;
end;
复制的原代码
procedure TFormMain.N8Click(Sender: TObject);
var
sqlstr: string;
strSeq: string;
i: integer;
begin
if adoMainData.RecordCount > 0 then begin
if Application.MessageBox('确定删除吗?', '询问', MB_ICONQUESTION + MB_YESNO) = ID_YES then begin
if dgMultiSelect in DBGrid1.Options then begin
DBGrid1.DataSource.DataSet.DisableControls;
for i := 0 to DBGrid1.SelectedRows.Count - 1 do begin
DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
strSeq := DBGrid1.DataSource.DataSet.FieldByName('seq').AsString;
// 先删除本身 和由本身附带产生的
sqlstr := '';
sqlstr := sqlstr + 'delete from pay_bill where par_seq = ' + strSeq;
ExecSQL(ADOQry, sqlstr, 2);
end;
DBGrid1.DataSource.DataSet.EnableControls;
end
else begin
strSeq := DBGrid1.DataSource.DataSet.FieldByName('seq').AsString;
// 先删除本身 和由本身附带产生的
sqlstr := '';
sqlstr := sqlstr + 'delete from pay_bill where par_seq = ' + strSeq;
ExecSQL(ADOQry, sqlstr, 2);
end;
GetData('', -1);
N23.Click;
end;
end;
end;
求高手指点,谢谢