我做了一个ODBC的连接,可它老是弹出选择数据源的框,可我已经创建了数据源,不知如何解决,谁有例子给发一个?E-mail: [email protected]#include <afxdb.h>CDatabase m_db;
CRecordset m_rs;
CString strSQL = _T("");
strSQL = "select max(Pre_entry_) as maxID from Form_hea where Pre_entry_ like '%";
strSQL += (LPCTSTR)cbstrCCFHead.m_str;
strSQL += "%'";
if(m_db.Open(_T("CCF"),FALSE,FALSE, _T("ODBC;DSN=CCF")),TRUE)
{
if(m_db.IsOpen())
{
//m_rs.m_pDatabase = &m_db;
if(m_rs.Open(CRecordset::snapshot,_T(strSQL),CRecordset::readOnly))
{
long rc = m_rs.GetRecordCount();
MessageBox("Success","Title",MB_OK);
}
}
}

解决方案 »

  1.   

    if(m_db.Open(_T("CCF"),FALSE,FALSE, _T("ODBC;DSN=CCF")),TRUE)
    修改为:
    if (m_db.OpenEx( _T("ODBC;DSN=CCF"), CDatabase::noOdbcDialog | CDatabase::useCursorLib))
      

  2.   

    我以前也有过类似的问题发生, 其实只是一个笔误, 不是DSN的名字就是
    Open(...........)中那有错。
      

  3.   

    这肯定是那里一个小失误造成的,看看你的DSn数据源是否正确
      

  4.   

    m_db.Open(_T("CCF"),FALSE,FALSE, _T("ODBC;DSN=CCF")),TRUE)是可以通过但下一步:
    m_rs.Open(CRecordset::snapshot,_T(strSQL),CRecordset::readOnly)老是弹出选择框,不知如何解决?????????????
      

  5.   

    m_rs中的数据库连接不是你打开的连接。
      

  6.   

    在 .Open()函数中的第四个参数改为_T("0DBC;DSN=CCF;UID=xxx;PWD=xxx")
    就可以了
      

  7.   

    to  Gladstone(大士) :  还是不可以,不知道谁有好方没,给寄一个!
      

  8.   

    TO all:  你们帮忙解决一下,一定重谢!有例子发一个给我?
      

  9.   

    Open函数里面加一个Loginin = false,具体不是很清楚,查一下MSDN
      

  10.   

    我也做过这样的程序,可以用的。一般是因为DSN上有错误。有QQ吗?25653944是我的。我们可以交流一下。
      

  11.   

    db.OpenEx("DSN=DSNname",CDatabase::noOdbcDialog))
    不就可以了吗?
      

  12.   

    1.看出错信息是什么
    2.看connectionstring的格式是否正确
      

  13.   

    //m_rs.m_pDatabase = &m_db;你把这儿屏掉干嘛,当然就找不到数据源了,如果屏掉也可以,你可以这样CRecordset m_rs(&m_db)来声名。
      

  14.   

    怎么可能啊,我做这个从来就没有出现你所说的,
    总之我是这么用的
    db.OpenEx("DSN=DSNname",CDatabase::noOdbcDialog))
    没有出过错。