odbc创建动态数据源的问题
法尔我给他 2009-04-06 03:43:23 bool CreateData(void)
{
CString szPath;
::GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
szPath.ReleaseBuffer();
int nPos;
nPos = szPath.ReverseFind('\\');
szPath = szPath.Left(nPos);
CString szFile = szPath + "\\bookdata.mdb";//在当前路径下创建数据库
CString szAtr;
szAtr.Format(_T("DSN = bookdata!DBQ = %s!DEFAULTDIR = %s!!"),szFile,szPath);//sqlconfigdatasource函数的第四个参数lpszAttributes
HANDLE hFind;
WIN32_FIND_DATA wfd;
hFind = ::FindFirstFile(szFile,&wfd);//查找是否存在同名数据库
if(hFind == INVALID_HANDLE_VALUE)
{
int nlen;
nlen = szAtr.GetLength();
for(int i = 0;i<nlen;i++)
{
if(szAtr.GetAt(i) == '!')
szAtr.SetAt (i,'\0') ;
}
bool fCreated;
fCreated = SQLConfigDataSource(NULL,
ODBC_ADD_DSN,
_T("Microsoft Access Driver(*mdb)\0"),
(LPCWSTR)szAtr);
::FindClose (&hFind);
return fCreated;
}
return false;
}
总是失败,是什么问题?谢谢