使用ADO如何將Access(.mdb)加入密碼 |
答題得分者是:lu
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
lu
高階會員 發表:11 回覆:189 積分:195 註冊:2003-11-19 發送簡訊給我 |
加密碼...請問你所說的加密碼,是不是在用M$ OFFICE的ACCESS打開該檔時,所要輸入的密碼阿?
如果是的話,你無法用ADO(這邊指的ADO是BROLAND內的ADOQuery等物件)完成,你要用ADOX,而詳細的用法,請查詢一下MSDN吧 用法粉簡單
1. 先利用Project->Import Type Library 將"C:\Program Files\Common Files\System\ADO\msado15.dll"匯入,過程中會一點點小麻煩,不過不大
[blue[提示一下,把所有的物件名稱,前面加入ADOX等字樣即可[/blue]
2. 直接使用ADOXCatalog 即可,如下例
WideString SQL = "Provider=Microsoft.JET.OLEDB.4.0;Data source=C:\\test.mdb;Jet OLEDB:Database Password=123456"; try { TADOXCatalog *ADOXCatalog1 = new TADOXCatalog(Application); ADOXCatalog1->Create (SQL); ADOXCatalog1->Disconnect (); delete ADOXCatalog1; } catch (const EOleException &Err) { ShowMessage (Err.Message); }這樣就OK了,偶知道偶說得粉....簡單,呵呵~~試試看吧...就當作是回家功課吧 ========================= <>大家一起快樂寫程式> |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
引言: 加密碼...請問你所說的加密碼,是不是在用M$ OFFICE的ACCESS打開該檔時,所要輸入的密碼阿? 如果是的話,你無法用ADO(這邊指的ADO是BROLAND內的ADOQuery等物件)完成,你要用ADOX,而詳細的用法,請查詢一下MSDN吧 用法粉簡單 1. 先利用Project->Import Type Library 將"C:\Program Files\Common Files\System\ADO\msado15.dll"匯入,過程中會一點點小麻煩,不過不大 提示一下,把所有的物件名稱,前面加入ADOX等字樣即可沒錯...我要加的密碼就是將原本開啟Access沒有密碼的,改成從程式中將mdb設定密碼... 我裝了你說的msado15.dll但是裝完後的元件好像不怎麼對,我在相同的目錄下有看到msadox.dll,我就裝了它,好像有比較像一點.... 但是我照你的程式碼會有錯誤訊息ㄝ... |
lu
高階會員 發表:11 回覆:189 積分:195 註冊:2003-11-19 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
zivu
一般會員 發表:11 回覆:28 積分:12 註冊:2004-04-29 發送簡訊給我 |
|
zivu
一般會員 發表:11 回覆:28 積分:12 註冊:2004-04-29 發送簡訊給我 |
這問題好像結案~~!可是我想說提供我的方法~~!我是分別將我的ACCESS資料表設密碼~~這邊先選工具在選保全在選資料庫設密碼就可以!可是設了以後打開騎它的資料表也都要用這個密碼喔~~!所以設這邊你考慮一下在決定~~!
這個好像比較符合你問的地方~~!BCB部分我是自己做首頁用密碼登入~~!密碼對了再導入第二頁~~!就是我的資料庫~~!這樣可能會比較容易~~~!不知道這樣有沒有幫到你~~!這樣兩邊的資料都有密碼~~!就不會被人看到~~! 不好意思~~!前面我回的那篇不知道要從哪刪除~~~! 發表人 - zivu 於 2004/05/15 01:11:58
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
引言: 這問題好像結案~~!可是我想說提供我的方法~~!我是分別將我的ACCESS資料表設密碼~~這邊先選工具在選保全在選資料庫設密碼就可以!可是設了以後打開騎它的資料表也都要用這個密碼喔~~!所以設這邊你考慮一下在決定~~! 這個好像比較符合你問的地方~~!BCB部分我是自己做首頁用密碼登入~~!密碼對了再導入第二頁~~!就是我的資料庫~~!這樣可能會比較容易~~~!不知道這樣有沒有幫到你~~!這樣兩邊的資料都有密碼~~!就不會被人看到~~!我的程式就是登入的時候要輸入密碼,還有我的資料庫檔是在程式第一次執行的時候自動產生的所以一開始並沒有密碼,是從第一次進入程式的人註冊一個帳號密碼的時候產生的密碼... |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
Form1->ADOConnection1->Provider = "Microsoft.Jet.OLEDB.4.0"; Form1->ADOConnection1->Properties->Item["Jet OLEDB:Database Password"]->Value=""; Form1->ADOConnection1->Properties->Item["Data Source"]->Value = dbpath; Form1->ADOConnection1->Mode = cmShareExclusive; Form1->ADOConnection1->Execute("ALTER Database Password " Edit_pw->Text " "); Form1->ADOConnection1->Close();我compiler的時候會錯在這兩行,不知道是什麼原因 [Linker Error] Unresolved external 'System::__linkproc__ __fastcall CheckAutoResult()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|syssupp |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
原來是要加上
namespace System { void __fastcall CheckSafecallResult(HRESULT hr) { return; } }現在我已經可以替一開始沒有密碼的資料庫加上密碼了,但是我沒辦法替已經加上密碼的資料庫改密碼... 以下是我的程式碼,請問要改什麼地方嗎?謝謝(Mode已經設成cmShareExclusive) AnsiString filename=OpenDialog1->FileName; ADOConnection1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename+";Persist Security Info=False"; AnsiString pas="1234"; ADOConnection1->Execute("ALTER DATABASE PASSWORD 1111 "+pas); ADOConnection1->Connected=true; ADOConnection1->Close();這段執行後會顯示"不是正確的密碼" |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
|
williamfox
一般會員 發表:14 回覆:15 積分:5 註冊:2002-08-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |