如下代码: 数据库名通过参数来传递,但没有起作用,使用MEMO1调试得到的结果仍然是:
select * from :parm1 参数传递的内容没有起作用,因此:报 from 字句语法错误。 X_Table_Name:='country';
with ADOQuery1 do
begin
SQL.Clear;
// SQL.Add('select * from country ' );
ADOQuery1.SQL.Add('select * from :parm1 ' );
ADOQuery1.Parameters.ParamByName('parm1').Value:=X_Table_Name;
Memo1.Text := ADOQuery1.SQL.Text;
Open;
end;
select * from :parm1 参数传递的内容没有起作用,因此:报 from 字句语法错误。 X_Table_Name:='country';
with ADOQuery1 do
begin
SQL.Clear;
// SQL.Add('select * from country ' );
ADOQuery1.SQL.Add('select * from :parm1 ' );
ADOQuery1.Parameters.ParamByName('parm1').Value:=X_Table_Name;
Memo1.Text := ADOQuery1.SQL.Text;
Open;
end;
你试试这样:
var
sql:string
...............
sql:='select * from '+X_Table_Name;
ADOQuery1.SQL.Add(sql);
...............
如果还不行,就写个if语句判断吧
if X_Table_Name='country' then
being
ADOQuery1.SQL.Add('select * from country');
....
end
begin
SQL.Clear;
ADOQuery1.SQL.Add(format('select * from %s ',[X_Table_Name] ));
// ADOQuery1.Parameters.ParamByName('parm1').Value:=X_Table_Name; 這個參數不用要啦
Memo1.Text := ADOQuery1.SQL.Text;
Open;
end;