procedure TForm5.onselect(Sender: TObject);
begin
if adoquery3.active then adoquery3.active :=true;
with adoquery3 do
begin
adoquery3.close;
adoquery3.sql.Clear;
adoquery3.Sql.Add('select *from :value');
ADOQUERY3.Parameters.ParamByName('value').Value:=combobox8.Text;
ADOQUERY3.ExecSQL;
ADOquery3.Prepared;
end;
我的SQL语句错了么 为什么执行的时候会提示 必须声明变量@P1??
begin
if adoquery3.active then adoquery3.active :=true;
with adoquery3 do
begin
adoquery3.close;
adoquery3.sql.Clear;
adoquery3.Sql.Add('select *from :value');
ADOQUERY3.Parameters.ParamByName('value').Value:=combobox8.Text;
ADOQUERY3.ExecSQL;
ADOquery3.Prepared;
end;
我的SQL语句错了么 为什么执行的时候会提示 必须声明变量@P1??
procedure TForm5.onselect(Sender: TObject);
begin
//if not adoquery3.active then adoquery3.active :=true; 如没打开才要打开吧。从你这段程
//序看这句是多余的。
with adoquery3 do
begin
close;
sql.Clear;
Sql.Add(Format('select * from %s',[ComboBox8.Text]));
Open;
end;
.
.
with adoquery3 do
begin
adoquery3.close;
adoquery3.sql.Clear;
adoquery3.Sql.Add('select *from :value');
ADOQuery3.open;
ADOQUERY3.Parameters.ParamByName('value').Value:=combobox8.Text;
ADOQUERY3.ExecSQL;
ADOquery3.Prepared
begin
with adoquery3 do
begin
close;
sql.Clear;
Sql.Add('select * from value := value');
Parameters.ParamByName('value').Value := trim(combobox8.Text);
open;
end;就这么样简单 ,没问题了吧,结贴,接分。哈哈