起先是delphi7.0+access做的,功能能实现了但是修改ADOquray的连接属性:连接到ORACLE服务器上了后
FORM中的DBGRID也已经显示了基本表的内容,当时一运行程序,
进行操作就提示  ora-00904“无效列名”错误代码如下procedure TForm3.Button1Click(Sender: TObject);
begin
     if trim(Edit1.Text)='' then
         begin Application.MessageBox('请输入查询参数','注意');  end
     else
     begin
       ADOQuery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.add('select * from book where '+combobox1.text+' like "%'+edit1.text+'%"');
       ADOQuery1.ExecSQL;
       ADOQuery1.Open;
          if ADOQuery1.RecordCount=0 then
           begin   Application.MessageBox('对不起,查无该书','注意'); end
        end;
end;

解决方案 »

  1.   

    你那个表是属于哪个用户的?如果连接用户跟表的所属用户不一样,则需要说明。比较是system下的表,而不是用system登陆的则要
    select * from system.book
      

  2.   

    将你的sql语句,字段名称全部使用大写。
      

  3.   

    //       ADOQuery1.ExecSQL;    ----这句话可以不要
    另外
    like "%'+edit1.text+'%"'
    改成为
    Like QuotedStr('%'+Edit1.Text+'%')
      

  4.   

    1:回wolf2005(),我用的是本用户帐号登陆的,操作的是本帐号下的基本表
    2:回gong_hui2000(gong_hui2000):改成大写也没有效果 
    3:回xiaocuo_zrf(刀未锋):你说的那些是没有错,在使用本地的access表的时候就没任 
                              何问题。