我用向导建的。同样是ODBC方式,但ACCESS 2000就不会出错,为何SQL2000就不行呢?

解决方案 »

  1.   

    需要在影射的CRecordSet类中的GetDefaultConnect()中直接写明用户名和密码:
    CString CYourRecordSet::GetDefaultConnect()
    {
    return _T("ODBC;DSN=ODBCName;UID=***;PWD=***");
    }
      

  2.   

    得看你安装SQL时选择的登陆方式是哪种。
      

  3.   

    sql server要求的密码验证是windows方式还是sql server方式呢?这是不同的。
      

  4.   

    我就是按照 jnxulei(石头) 一样的写法了,但竟然出现非法错误。
    我是用默认的方式做的。
      

  5.   

    我用下面的方法工作一直正常BOOL XXX::OpenDB()
    {
       if(m_pDB==NULL)      m_pDB = new CDatabase;
       if(!m_pDB->IsOpen())
       {
          CString csCN =  _T("Driver={SQL Server};Server=???;Dbq=???;UID=???;PWD=???");
          try
          {
             m_pDB->SetLoginTimeout(10);
             m_pDB->OpenEx(csCN,CDatabase::noOdbcDialog );
          }
          catch(CDBException* e)
          {
             _DP(m_pDB);
             e->ReportError();
             return FALSE;
          }
       }
       
       return (m_pDB->IsOpen());
    }
      

  6.   

    To awant2k(一点通) :
       谢谢你。这种方法我记得以前也试过,是可以的。但现在我想试一试用向导(因为简便)方式,不知为何总出错,好像以前有条类似的贴子,改个什么的值就解决了,但那条贴子找不到:(
    To All
       谢谢所有解答的人。是不是SQL2000版本太高所致呢?我怀疑这点,但可惜找不到个SQL 7.0来试。
      

  7.   

    sql有各种认证手段,你去看看sql服务器怎么设置的再说!
      

  8.   

    把你的sql server 改为混合模式验证即可。