我在本地机器上建了个ODBC数据源,名称为:one_card,并测试通过。在delphi里,有个Tquery,名称为:login_query,把它的DatabaseName设为one_card,然后在程序中写了段代码:
          login_query.Close;
          login_query.SQL.Clear;
 login_query.SQL.Add('select * from admin where admpwd='''+ edit1.Text +''' and admname=admin');
 showmessage(login_query.SQL.Text);
 try
    login_query.Prepare;
    login_query.Open;
    main_form.isadmin:=1;
  except
    showmessage('请输入正确的密码!');
  end;程序功能:管理员登陆的实现,有个edit1,用于输入密码,如果找到了记录的话,main_form.isadmin的值就设为1。可以在运行时,输入密码,按确定后,出现错误:    Project card.exe raised exception class EBDEngineError with message 'Unknown user name or password,[Microsoft][ODBC SQL Server Driver][SQL Server]用户'(null)'登录失败。原因:未与信任SQL Server连接相关联。'但我建ODBC数据源时,用的是 sa 登陆的啊,还测试连接通过了。
这是为什么啊?各位高手帮帮我,我是新手,莱鸟问题!

解决方案 »

  1.   

    不行啊,还是出错啊!错误提示:   Project card.exe raised exception class EDBEngineError with message'Invalid configuration parameter,Alias:one_card'.但是参数都有的啊,uid,pwd都有的啊,怎么还会错呢?哪位大哥能讲详细点或是给个相似的例子,让小弟见识一下!!
      

  2.   

    admin表是不是有PassWord字段,换别的名字吧
      

  3.   

    没有啊,只有两个字段:admname和admpwd啊!
      

  4.   

    你的语句有问题吧  login_query.SQL.Add('select * from admin where admpwd='''+ edit1.Text +''' and admname=admin');仔细看看
      

  5.   

    TO:FOX7899(bk) 
    没有的吧!'''+ edit1.Text +''' 出来的是字符串的啊,
    而我写成:login_query.SQL.Add('select * from admin where admpwd='+ edit1.Text +' and admname=admin');
    还是出同样的错误啊!
    还有没有人帮我的啊??
      

  6.   

    login_query.SQL.Add('select * from admin where admpwd='
             +chr(39)+edit1.Text+chr(39)+'and admname'=admin);
    这样试试。
      

  7.   

    我写成:
      login_query.SQL.Add('select * from admin '); 运行,还是那样的错误,不知道哪里出问题了,有人知道吗?
      

  8.   

    应该是你的数据库连接上的问题,建议你不要用odbc,用ado.
      

  9.   

    不行啊,我用ADO,也是说sa登陆失败,
      

  10.   

    看一下你的ODBC中客户端配置.若是采用TCP/IP模式,看一下Port Number是不是1433.
    但最好采用Name Pipes管道连接方式(一般都是采用这种方式).
      

  11.   

    非常感谢大家对我的帮助,
    确实是我的ODBC出问题了,放到别人的机器上就好了。
    分我已经全散了,这次分不多,请各位大哥不要介意哦!