adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from :id2 where 内部编号=:id1');
adoquery1.Parameters.ParamByName('id1').Value:=trim(edit1.Text);
if tr=1 then
adoquery1.Parameters.ParamByName('id2').Value:='exsellview'
else if tr=2 then
adoquery1.Parameters.ParamByName('id2').Value:='avsellview'
else if tr=3 then
adoquery1.Parameters.ParamByName('id2').Value:='sellview'
else
adoquery1.Parameters.ParamByName('id2').Value:='sellview';
adoquery1.Open;
弹出的错误是:必须声明变量'@P1'。
这是什么意思?我的参数id2根据if分别指向一个不同的sql server2000里的视图,视图相当于一个表是吧?
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from :id2 where 内部编号=:id1');
adoquery1.Parameters.ParamByName('id1').Value:=trim(edit1.Text);
if tr=1 then
adoquery1.Parameters.ParamByName('id2').Value:='exsellview'
else if tr=2 then
adoquery1.Parameters.ParamByName('id2').Value:='avsellview'
else if tr=3 then
adoquery1.Parameters.ParamByName('id2').Value:='sellview'
else
adoquery1.Parameters.ParamByName('id2').Value:='sellview';
adoquery1.Open;
弹出的错误是:必须声明变量'@P1'。
这是什么意思?我的参数id2根据if分别指向一个不同的sql server2000里的视图,视图相当于一个表是吧?
请问在adoquery里的sql语言中from后面的表名是不是不能用参数?要是能用参数的话,应该怎么用?
var temp,tpsql:string;
if tr=1 then
temp:='exsellview'
else if tr=2 then
temp:=:='avsellview'
else if tr=3 then
temp:=:='sellview'
else
temp:=:='sellview';
tpsql:='select * from ' +temp+' where 内部编号=:id1';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(tpsql);
adoquery1.Parameters.ParamByName('id1').Value:=trim(edit1.Text);
qdoquery1.open;
这样你试试