做一个MIS,数据库用SQL SERVER2000.建库,配置好数据源后,在做登陆窗口时,为了可以修改
密码,在库中加了一个表admin来存放用户名和密码.下面时登陆窗口中确认按钮的代码procedure TF_login.BtnLoginClick(Sender: TObject);
begin    adoquery1.sql.Clear ;
    adoquery1.SQL.Add('select * from admin where login='''+edlogin.Text +''' and password='''+medpwd.Text+'''');
    adoquery1.open;    if adoquery1.recordcount=0 then
    begin
        showmessage('登陆失败,请检查您的帐号和密码!');    end
    else
    begin        f_login.Close ;
    end;
end;调试中在adoquery1.open这句后报错"[Microsoft][ODBC SQL SERVER DRIVER][SQL Server]对象名'admin'无效".请高手指点!

解决方案 »

  1.   

    或许是你的表没有或者字段没有.
    改成下面试试:adoquery1.SQL.Add('select * from [admin] where [login]='''+edlogin.Text +''' and [password]='''+medpwd.Text+'''');
      

  2.   

    检查库中有无admin表,数据源有读取该表的权限
      

  3.   

    1.检查你的数据库admin是否存在
    2.检查你的登陆用户是否admin的属主(Owner)
    3.检查一下你的登陆用户是否有权访问admin表
      

  4.   

    select * from admin login=edlogin.text and password=medpwd.texe  加入()
    select * from admin (login=edlogin.text) and (password=medpwd.texe)
      

  5.   

    尽量不要使用像admin,login.password这一类的名。这样可以避免与保留字冲突。
      

  6.   

    同意Samland(samland),说你不存在你就是不存在,或者数据库不对,或无权限
      

  7.   

    数据库中admin表和相应字段是存在的,
    登陆用户确实是admin表的Owner,
    在查询分析器中,select语句可以正常运行.
    还有如果在程序中把admin表改成其他表则会提示login字段无效.
      

  8.   

    直接在设计界面把adoquery1.sql.text设成select * from admin
    将其Active设为True看看成不成功就知道了
      

  9.   

    重新配置数据源,又刷新SQL服务,折腾了一会儿,总算还了。但是换了台机子问题又出现了,换其它表也提示无效,是不是数据源的原因呢?
      

  10.   

    题外话:'select * from admin where login='''+edlogin.Text +''' and password='''+medpwd.Text+''''
    呵呵,试试看在你的medpwd 中输入括号里面内容(1'' or ''1''>''0),你的密码验证就失灵了。
      

  11.   

    adoquery1.close;
        adoquery1.sql.Clear ;
        adoquery1.SQL.Add('select * from admin where login='+QuotedStr(edlogin.Text)+'and password='+QuotedStr(medpwd.Text));
        adoquery1.open;
        if adoquery1.recordcount=0 then
        begin
            showmessage('登陆失败,请检查您的帐号和密码!');
        end
        else
        begin
            f_login.Close ;
        end;要是这样不行的话........!!
    嗨..!   试试再说吧!
      

  12.   

    连接用的ADO,我觉得应该跟语句没有关系,同样的代码用在另一个库上就正常。应该是和数据源有关才对,但是不知道问题究竟在哪儿。连接用的ADO,默认数据库指定我是更改为我使用的库了的,应该不会错吧。
    啊...晕啊!