不能用这种方法
CDatabase m_userdb;
g_bUserdbopen = m_userdb.Open(_T(DB_DSN_NAME), FALSE,
               FALSE, _T("ODBC;UID=sa;PWD=aaa"));
DSN不存在就报错有没有别的方法检测DSN?

解决方案 »

  1.   

    看看我的问题,注意别人对我这个问题的答复,或许能够解决你的问题。在VC和CB的数据库部分:为什么下面的SQLConfigDataSource总是返回false,123的数据源已经在我机器里存在,而且连接正常。    bool ( __stdcall *SQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR) = NULL;
        HINSTANCE hODBCDll = LoadLibrary("odbccp32.dll");
        if (!hODBCDll)
        {
            AfxMessageBox("动态库加载失败!");
    return ;
        }

        (FARPROC &) SQLConfigDataSource = GetProcAddress
                                        (hODBCDll, "SQLConfigDataSource");
        if (!SQLConfigDataSource)
        {
            FreeLibrary(hODBCDll);
            return ;
        } //察看数据源数据源
    BOOL lreturn = SQLConfigDataSource(NULL, 
    2,//配置数据源
    "SQL Server",//数据库驱动
    "DSN = 123\0"//数据源名称
    "Server = MyServer\0"//数据库服务器名称或者IP地址
    "Database = master\0");//数据库名称
      

  2.   

    有一套ODBC的函数,你可以在msdn中找啊