hr = m_pConnection->Open(
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;"
"Data Source=d:\\DB\\REMO.mdb;"
"Mode=Share Deny Read|Share Deny Write", "", "", 0);
m_pConnection->Execute("ALTER DATABASE PASSWORD [123] NULL", NULL, adCmdText);
以上將密碼設為 123。
hr = m_pConnection->Open(
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;"
"Data Source=d:\\DB\\REMO.mdb;"
"Jet OLEDB:DataBase Password=123;"
"Mode=Share Deny Read|Share Deny Write", "", "", 0);
m_pConnection->Execute("ALTER DATABASE PASSWORD [456] [123]", NULL, adCmdText);
注意:連接字串中必須包含 Jet OLEDB:DataBase Password=舊密碼 才能正常開啟。
hr = m_pConnection->Open("DSN=REMO", "Admin", "456", 0);
需預先建立系統 DSN 名為 REMO。
hr = m_pConnection->Open(
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;"
"Data Source=d:\\DB\\REMO.mdb;"
"Jet OLEDB:DataBase Password=456;"
"Mode=Share Deny Read|Share Deny Write", "", "", 0);
第 2、3 參數留空,密碼已在連接字串中。缺點:路徑寫死,建議用 GetModuleFileName() 動態取得路徑。
// 取得執行檔目錄
CString sPath;
GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
sPath.ReleaseBuffer();
int nPos = sPath.ReverseFind('\\');
sPath = sPath.Left(nPos); // 上一層目錄
CString lpszFile = sPath + "\\REMO.mdb";
m_strFilePath = lpszFile;
char* szDesc = new char[256];
sprintf(szDesc,
"DSN=%s? DESCRIPTION=遠程車載控制資料源? DBQ=%s? FIL=MicrosoftAccess? DEFAULTDIR=%s??",
"REMO", lpszFile, sPath);
int mlen = strlen(szDesc);
for (int i=0; i
需 #include <odbcinst.h> 並連結 ODBCCP32.lib。
Data Source 必須為完整路徑,否則 Open 失敗。