网上了看了好多为什么都不能用,我是用access2007数据库,希望有经验的人指点一下,是不是只用
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver(*.mdb,*.accdb)",
  "DSN=exam\0 DBQ=f:exam.mdb\0\0")
  return ;这个函数就可以了?为什么不行啊

解决方案 »

  1.   

    在字符串里直接写\0是不行的,应该用程序循环的方式写入,向下面的代码中,先在要写\0的地方用‘-’代替,然后用程序把'-'替换成'\0'就可以了。
    char* szDesc;
    int mlen;
    szDesc=new char[256];
    sprintf(szDesc,"DSN=%s- DBQ=%s--","exam","f:\\exam.mdb");
    ///注意下面这一段
    mlen = strlen(szDesc);
    for (int i=0; i<mlen; i++)
    {
         if (szDesc[i] == '-')  szDesc[i] = '\0';
    }if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)\0",(LPCSTR)szDesc))
    MessageBox(hwnd,"Failed","INFORMATION",MB_OK);
    else
    MessageBox(hwnd,"Success","INFORMATION",MB_OK);
    delete szDesc;