我做一个查询窗口(chx),写入房间号点确定后进入显示界面(fzxx),ADOQuery1在fzxx上
try
chx.Close;
fzxx.show;
fzxx.ADOQuery1.Close;
fzxx.ADOQuery1.SQL.Clear;
fzxx.ADOQuery1.parambyname('a').value:=edit1.text;
fzxx.ADOQuery1.SQL.Add('select zijin.roomnob,fee.fangjia,name,'
+'O_shuiliang,O_dianliang,'
+'shuiliang,dianliang,time'
+' '+'from zijin,room,fee'
+' '+'where zijin.roomnob=room.roomnob and room.roomnob=fee.roomnob and room.roomnob:=a;');
fzxx.ADOQuery1.open;
except
showmessage('无法正常查询');
  end;
 end;
错误提示是这样的
[Error] Unit5.pas(46): Undeclared identifier: 'parambyname'
[Error] Unit5.pas(46): Missing operator or semicolon请问高手 这是怎么回事啊  该怎么解决!谢谢了

解决方案 »

  1.   

    你先将SQL.CLEAR了.里面当然没有SQL了.怎么能加上一个fzxx.ADOQuery1.parambyname('a').value
    把它放到SQL的后边试试
      

  2.   

    看SQL最后面的那一部分:  room.roomnob:=a;');这写错了,如果有参数的话应该写成:room.roomnob=:a;');
    然后再给参数赋值,打开,具体的不写了!
      

  3.   

    晕,SQL最后面还有个分号,这应该不要的,再改一下:room.roomnob=:a');