我是 用vs2005 在MFC下 使用odbc打开access数据库时 老是弹出选择数据源提示框。
打开时的代码如下:
CString lpszFile = sPath + _T("\\AlarmDisc.mdb");
char* szDesc;
int mlen;
szDesc=new char[256];
sprintf(szDesc,"DSN=%s? DESCRIPTION=TOC support source? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s?? ","AlarmDisc",lpszFile,sPath);
mlen = strlen(szDesc);
for (int i=0; i<mlen; i++)
{
if (szDesc[i] == '?')
szDesc[i] = '\0';
}
WCHAR wszClassName[256];
memset(wszClassName,0,sizeof(wszClassName));
MultiByteToWideChar(CP_ACP,0,szDesc,strlen(szDesc)+1,wszClassName,sizeof(wszClassName)/sizeof(wszClassName[0]));
if (FALSE == SQLConfigDataSource(NULL,ODBC_ADD_DSN,_T("Microsoft Access Driver (*.mdb)\0"),_T("DSN=AlarmDisc"))) // (LPCWSTR)wszClassName
AfxMessageBox(_T("SQLConfigDataSource Failed"));
try
{
CString strConnect;
strConnect.Format(_T("DSN=AlarmDisc;"));
if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib))
{
AfxMessageBox(_T("Unable to Connect to the Specified Data Source"));
return FALSE ;
}
}
catch(CDBException *pE)
{
pE->ReportError();
pE->Delete();
return FALSE;
}
每次在执行 if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib)) 时就会弹出 选择数据源的提示框
各位大神 谁帮我解决一下
------解决思路----------------------
OpenEx的第二个参数改成这样试试CDatabase::useCursorLib
------解决思路----------------------
CDatabase::noOdbcDialog
------解决思路----------------------
使用odbcad32.exe设置系统DSN
在win64位系统下设置32位程序使用的数据库别名要用c:\windows\syswow64\cliconfg.exe
在win64位系统下设置32位程序使用的系统DSN要用c:\windows\syswow64\odbcad32.exe
------解决思路----------------------
你使用的连接串不正确
------解决思路----------------------
string里加上 ;Trusted_Connection=Yes试试