动态创建Tquery有错误,代码如下: procedure Tspxxlr_form.del_pClick(Sender: TObject); var spname,sptype:string; begin try spname:=dmform.Query1.fieldbyname('sp_name').AsString; sptype:=dmform.query1.fieldbyname('sp_type').asstring; if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then begin with Tquery.Create(nil) do begin try close; databasename:=dmform.Database1.DatabaseName; sessionname:=dmform.Database1.SessionName; sql.Clear; sql.Add('delete from sp_xx where (user_name='''+uname+''')and(sp_type='''+sptype+''')'); execsql; finally free; end; end; messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION);; end; except end; datarefresh; end;
你这样做当然出错了 procedure Tspxxlr_form.del_pClick(Sender: TObject); var spname,sptype:string; begin spname:=dmform.Query1.fieldbyname('sp_name').AsString; sptype:=dmform.query1.fieldbyname('sp_type').asstring; if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then begin with Tquery.Create(Self) do try databasename:=dmform.Query1.DatabaseName; sql.Add('delete from sp_xx where (user_name='+QuotedStr(uname)+') and(sp_type='+QuotedStr(sptype)+')'); execsql; messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION); finally Close; free; end; datarefresh; //这行是什么?如果是刷新数据通过Close/Open/Locate更快 end;
/////////////////
你是不是没有uses DB, DBTables啊?
procedure Tspxxlr_form.del_pClick(Sender: TObject);
var
spname,sptype:string;
begin
try
spname:=dmform.Query1.fieldbyname('sp_name').AsString;
sptype:=dmform.query1.fieldbyname('sp_type').asstring;
if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
with Tquery.Create(nil) do
begin
try
close;
databasename:=dmform.Database1.DatabaseName;
sessionname:=dmform.Database1.SessionName;
sql.Clear;
sql.Add('delete from sp_xx where (user_name='''+uname+''')and(sp_type='''+sptype+''')');
execsql;
finally
free;
end;
end;
messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION);;
end;
except
end;
datarefresh;
end;
procedure Tspxxlr_form.del_pClick(Sender: TObject);
var
spname,sptype:string;
begin
spname:=dmform.Query1.fieldbyname('sp_name').AsString;
sptype:=dmform.query1.fieldbyname('sp_type').asstring;
if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
with Tquery.Create(Self) do
try
databasename:=dmform.Query1.DatabaseName;
sql.Add('delete from sp_xx where (user_name='+QuotedStr(uname)+') and(sp_type='+QuotedStr(sptype)+')');
execsql;
messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION);
finally
Close;
free;
end;
datarefresh; //这行是什么?如果是刷新数据通过Close/Open/Locate更快
end;