CDatabase * db;
db=new CDatabase();
if(db->Open(_T("stu"),false,false,_T("ODBC;UID=stu;PWD=stu")))
{
PersonRecord->Open();
while(!PersonRecord->IsEOF())
{
str.Format("%s", PersonRecord->m_A);
pDC->TextOut(20,iIndex,str);
iIndex=iIndex+30;
PersonRecord->MoveNext();
}
}
else AfxMessageBox("Can't open Database");
PersonRecord->Close();
db->Close();
delete db;
"stu"是我配置的odbc,为什么我执行的时候,还要显示 odbc连接数据库的对话框,要求我输入密码
db=new CDatabase();
if(db->Open(_T("stu"),false,false,_T("ODBC;UID=stu;PWD=stu")))
{
PersonRecord->Open();
while(!PersonRecord->IsEOF())
{
str.Format("%s", PersonRecord->m_A);
pDC->TextOut(20,iIndex,str);
iIndex=iIndex+30;
PersonRecord->MoveNext();
}
}
else AfxMessageBox("Can't open Database");
PersonRecord->Close();
db->Close();
delete db;
"stu"是我配置的odbc,为什么我执行的时候,还要显示 odbc连接数据库的对话框,要求我输入密码
{ TRY
{
if(m_pDB!=NULL)
{
if(m_pDB->IsOpen())
m_pDB->Close();
}
else
m_pDB = new CDatabase;
m_pDB->OpenEx(lpszDBName,CDatabase::noOdbcDialog);
TRACE("CLOSE Database %s ...OK\n",lpszDBName);
}
CATCH_ALL(e)
{
e->Delete();
OprMesLog("数据库打开故障!:");
TRACE("CLOSE Database %s ...ERR\n",lpszDBName);
return FALSE;
}
END_CATCH_ALL return TRUE;
}
例子:
m_strDB_Name=_T("DSN=Security_SQL;UID=st3000;PWD=st3000");
OpenDatabase(m_strDB_Name);
OpenEx(LPCTSTR lpszConnectString, DWORD dwOptions )
第2个参数用CDatabase::noOdbcDialogCString szSysOdbcConn;
szSysOdbcConn.Format("DSN=%s;UID=%s;PWD=%s", g_OdbName, g_OUser, g_OPassword );
CDatabase m_db;
try
{
m_db->OpenEx(szSysOdbcConn, CDatabase::noOdbcDialog);
}
catch ( CDBException* e )
CDatabase::noOdbcDialog );