由于传递char * 或者CString时候,\0会引起错误,所以参考一下代码
Create Access data source name dynamically
摘自codeguru:char* szDesc;
int mlen;szDesc=new char[256];
sprintf(szDesc,"DSN=%s: DESCRIPTION=TOC support source: DBQ=%s: FIL=MicrosoftAccess: DEFAULTDIR=D:\\Database:: ","TestDB","D:\\Friends.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,"Sucess","INFORMATION",MB_OK);