procedure TForm_xjyxx.Button3Click(Sender: TObject); var confirm:word; begin if dbgrid1.SelectedField.AsString<>''then begin confirm:=messagedlg('确实要删除这条记录吗?',mtconfirmation,[mbyes,mbno],0); if confirm=mryes then with ADOQuery2 do begin { Close; sql.Clear; sql.Add('select copid from data where copid='+quotedstr(dbgrid1.Fields[0].asstring)); open; if eof=false then begin showmessage('清先删除该员工巡更信息!'); exit; end; Close; sql.Clear; sql.Add('select copid from xgbc where copid='+quotedstr(dbgrid1.Fields[0].asstring)); open; if eof=false then begin showmessage('清先删除巡更班次中该员工的信息!'); exit; end; } Close; sql.Clear; sql.Add('delete from cop where copid='+quotedstr(dbgrid1.Fields[0].asstring)); ExecSQL; end; with ADOQuery1 do begin Close; sql.clear; sql.Add('select *from cop'); Open; end; showmessage('删除成功!'); end else showmessage('请选择需要删除的巡检员!'); end; 这样子还不算重装数据吗
你把DBGrid刷新一下,或者重新打開ADOQuery,就可以了.
begin
close;
open;
end;
end;
ADOQuery1.Open;
showmessage('删除成功!');
我就是这样做的
ADOQuery1.Close;
ADOQuery1.sql.clear;
ADOQuery1.sql.Add('select *from cop');
ADOQuery1.Open;
showmessage('删除成功!');
我都这样了,还是不能立马更新
ADOQuery1.Close;
ADOQuery1.sql.clear;
ADOQuery1.sql.Add('select *from cop');
ADOQuery1.Open;
showmessage('删除成功!');
还是不能立马刷新
你把DBGrid刷新一下,或者重新打開ADOQuery,就可以了.
比如在你的机器上有两个程序同时访问table 开始的时候,都显示全部记录,如果一个程序执行了删除操作,但在另一个程序里是不能反映出来的,
var
confirm:word;
begin
if dbgrid1.SelectedField.AsString<>''then
begin
confirm:=messagedlg('确实要删除这条记录吗?',mtconfirmation,[mbyes,mbno],0);
if confirm=mryes then
with ADOQuery2 do
begin
{ Close;
sql.Clear;
sql.Add('select copid from data where copid='+quotedstr(dbgrid1.Fields[0].asstring));
open;
if eof=false then
begin
showmessage('清先删除该员工巡更信息!');
exit;
end; Close;
sql.Clear;
sql.Add('select copid from xgbc where copid='+quotedstr(dbgrid1.Fields[0].asstring));
open;
if eof=false then
begin
showmessage('清先删除巡更班次中该员工的信息!');
exit;
end;
}
Close;
sql.Clear;
sql.Add('delete from cop where copid='+quotedstr(dbgrid1.Fields[0].asstring));
ExecSQL;
end;
with ADOQuery1 do
begin
Close;
sql.clear;
sql.Add('select *from cop');
Open;
end;
showmessage('删除成功!');
end
else
showmessage('请选择需要删除的巡检员!');
end;
这样子还不算重装数据吗
adoquery1.Refresh;
说的也不可以用。
以前用odbc好像没类式问题
把ADOCONNECTION断开,然后在连接,在把adoquery.open.这样就可以了。我把代码写在下面:ADOCONNECTION2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='
+ExtractFilepath(application.ExeName)+'playboy.mdb;';
adoconnection2.Connected :=true;adoquery11.Active:=false;
adoquery11.Parameters.ParamByName('aid').Value:=nnd;
adoquery11.Open;
edit4.Text:=formatfloat('0.00',adoquery11.fieldbyname('sumbukuan').AsFloat);
adoconnection2.Connected :=false;
在怎么都不会有问题
+ExtractFilepath(application.ExeName)+'playboy.mdb;';
adoconnection2.Connected :=true;
一直这样用的。
active := true;
.open;
应该能够解决的呀?!close的时候,数据源应该update了吧?你看当时数据库里的情况就知道了.