请问一下我为什么老是注册数据源不成功呀!注册数据源的代码如下:
int ft;
if(m_set==NULL)
{
 ft=SQLConfigDataSource(NULL,
                    ODBC_ADD_DSN,
                   "Microsoft Access Driver(*.mdb)",
"DSN=Company\0"     "Description=fang wu yuan\0"
"FileType=Microsoft Access\0"
          "DBQ=C:\\PHONE.mdb\0"
"MaxScanRows=20\0" ); if(!ft)
                             {
                     AfxMessageBox("无法创建数据源!!!!!");
                     m_DSOK=false;
                     return;
                              }
每次运行他都是说‘无法创建数据源!!!!!’。希望好心人能帮帮我看!

解决方案 »

  1.   

    试一下直接改注册表的吧:int MakeSQLServerODBCDSN(LPCTSTR strDBServer,LPCTSTR strDBName,LPCTSTR strDSN,LPCTSTR strUID)
    {
    BOOL  bInstallDriver=TRUE;
    CRegKey  regKey;
    LONG lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software\\ODBC\\ODBCINST.INI\\SQL Server");
    if(lRet!=ERROR_SUCCESS)
    {
    bInstallDriver=FALSE;
    }
    else
    {
    char  szDirverPath[MAX_PATH]="";
    DWORD  dwCount=100;
    lRet=regKey.QueryValue(szDirverPath,"Driver",&dwCount);
    if((lRet!=ERROR_SUCCESS)||(dwCount<1))
    {
    DWORD dwErr=GetLastError();
    bInstallDriver=FALSE;
    }
    regKey.Close();
    }
    if(!bInstallDriver)
    {
    return -1;
    }
    CString  strKeyValueName="Software\\ODBC\\ODBC.INI\\";
    strKeyValueName+=strDSN;
    lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);
    if(lRet!=ERROR_SUCCESS)
    {
    return -2;
    }
    regKey.SetValue(strDBName,"Database");
    regKey.SetValue("SQLSrv32.dll","Driver");
    regKey.SetValue(strDBServer,"Server");
    regKey.SetValue(strUID,"LastUser");
    regKey.m_hKey=HKEY_LOCAL_MACHINE;
    regKey.SetKeyValue("Software\\ODBC\\ODBC.INI\\ODBC Data Sources","SQL Server",strDSN);
    regKey.Close();
    return 0;
      

  2.   

    请问"DBQ=C:\\PHONE.mdb\0"是否算作指出了数据源的绝对路径,这种方法如果实现了数据源的程序链接,如果将此程序移到另一台电脑上的d盘而非c盘会不会出现无法找到的错误?