ADOQuery2
DataSource1
DBGridEh1
procedure Tgift.spSkinSpeedButton2Click(Sender: TObject);
begin
IF application.MessageBox('你确认要删除该数据吗?','系统提示',MB_YesNo or mb_defbutton2 or mb_iconstop or mb_applmodal)=IdYes then
begin
with adoquery2 do
begin
try
delete;
showmessage('数据删除成功!');
except
showmessage('数据删除失败!');
end;
end;
end;
end;adoquery2.SQL.Clear;
ADOQuery2.SQL.Add('select b.bm_name,a.gh,a.name from rs a,bm b where a.bm_no=b.bm_no' );
adoquery2.Open;这样是不行的,但是如果这样就可以!
ADOQuery2.SQL.Add('select bm_no,gh,name from rs');我显示的数据集是要关联其他表;或者也可以这样删除呢ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('delete from rs where gh=当前行gh列的值);
ADOQuery2.ExecSQL;当前行gh列的值要如何求得啊???
第一次用DELPHI,请大家帮帮忙~
DataSource1
DBGridEh1
procedure Tgift.spSkinSpeedButton2Click(Sender: TObject);
begin
IF application.MessageBox('你确认要删除该数据吗?','系统提示',MB_YesNo or mb_defbutton2 or mb_iconstop or mb_applmodal)=IdYes then
begin
with adoquery2 do
begin
try
delete;
showmessage('数据删除成功!');
except
showmessage('数据删除失败!');
end;
end;
end;
end;adoquery2.SQL.Clear;
ADOQuery2.SQL.Add('select b.bm_name,a.gh,a.name from rs a,bm b where a.bm_no=b.bm_no' );
adoquery2.Open;这样是不行的,但是如果这样就可以!
ADOQuery2.SQL.Add('select bm_no,gh,name from rs');我显示的数据集是要关联其他表;或者也可以这样删除呢ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('delete from rs where gh=当前行gh列的值);
ADOQuery2.ExecSQL;当前行gh列的值要如何求得啊???
第一次用DELPHI,请大家帮帮忙~
sqlstr:string;
begin
sqlstr:='delete from rs where gh='+QuotedStr(dg.datasource.datase.fieldByName( 'gh ').astring);
....
end;
begin
IF application.MessageBox( '你确认要删除该数据吗? ', '系统提示 ',MB_YesNo or mb_defbutton2 or mb_iconstop or mb_applmodal)=IdYes then
begin
with adoquery2 do
begin
try
adoDelete.close;
adoDelete.sql.text := 'delete from rs where gh='''+dg.datasource.datase.fieldByName( 'gh ').astring;+'''';
adoDelete.ExecSQL; delete;
showmessage( '数据删除成功! ');
except
showmessage( '数据删除失败! ');
end;
end;
end;
end;
你当前选中的某个行就是这个数据了。..你showmessage()出来看看就知道了
adoDelete.sql.text := 'delete from rs where gh= ' ' '+ADOXXX.fieldByName( 'gh ').astring;+ ' ' ' ';
adoDelete.ExecSQL; ADOXXX就是你用来显示在dbgrideh的数据源联接的ADOQuery或者ADOTable
ADOQuery1.SQL.Add( 'delete from rs where gh='+quotedStr(adoquery2.FieldByName('GH').AsString));
ADOQuery1.ExecSQL;
1、设置记录集更新方式
ADOQuery2.LockType = ltBatchOptimistic
(目的是对记录集删除或者更新等,不会直接影响到数据库,数据库操作采用SQL直接处理)2、执行删除
procedure Tgift.spSkinSpeedButton2Click(Sender: TObject);
var
strSql: string;
begin
if application.MessageBox( '你确认要删除该数据吗? ', '系统提示 ',MB_YesNo or mb_defbutton2 or mb_iconstop or mb_applmodal)=IDYES then
begin
with adoquery2 do
begin
try
strSql := 'delete from rs where gh='''+adoquery2.FieldByName('gh').AsString+'''';
if 执行SQL成功 then
begin
delete; //此时删除操作,目的是把界面记录删除,实际记录删除是在执行SQL里头。
showmessage( '数据删除成功! ');
end
else ShowMessage('异常,删除失败!');
except
showmessage( '数据删除失败! ');
end;
end;
end;
end;