線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1920
推到 Plurk!
推到 Facebook!

使用ADO如何將Access(.mdb)加入密碼

答題得分者是:lu
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-29 18:22:06 IP:211.76.xxx.xxx 未訂閱
請問一下,在使用ADO下,有什麼方法可以利用程式將資料庫檔案加入密碼,我在站上找了很久都沒看到使用ADO元件加入密碼的。請知道的告訴我一下吧..謝謝
lu
高階會員


發表:11
回覆:189
積分:195
註冊:2003-11-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-29 18:44:11 IP:221.169.xxx.xxx 未訂閱
加密碼...請問你所說的加密碼,是不是在用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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-30 05:09:49 IP:211.76.xxx.xxx 未訂閱
引言: 加密碼...請問你所說的加密碼,是不是在用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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-30 09:10:55 IP:221.169.xxx.xxx 未訂閱
挖勒~~偶居然看錯了,原諒偶吧,老人家眼睛總是會有點...花 錯誤訊息?? 請問你的錯誤訊息是啥? 偶的作法是把>大家一起快樂寫程式
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-02 01:42:53 IP:211.76.xxx.xxx 未訂閱
這是錯誤訊息....
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-04 01:12:08 IP:61.62.xxx.xxx 未訂閱
請參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=49443 若需要 bcb 版的話, 請再提出, 我再補上!
zivu
一般會員


發表:11
回覆:28
積分:12
註冊:2004-04-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-15 01:05:21 IP:219.68.xxx.xxx 未訂閱
這問題好像結案~~!可是我想說提供我的方法~~!我是分別將我的ACCESS資料表設密碼~~!BCB部分我是自己做首頁要用密碼登入~~!密碼對了再導入第二頁~~!就是我的資料庫~~!這樣可能會比較容易~~~!不知道這樣有沒有幫到你~~!
zivu
一般會員


發表:11
回覆:28
積分:12
註冊:2004-04-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-15 01:08:25 IP:219.68.xxx.xxx 未訂閱
這問題好像結案~~!可是我想說提供我的方法~~!我是分別將我的ACCESS資料表設密碼~~這邊先選工具在選保全在選資料庫設密碼就可以!可是設了以後打開騎它的資料表也都要用這個密碼喔~~!所以設這邊你考慮一下在決定~~! 這個好像比較符合你問的地方~~!BCB部分我是自己做首頁用密碼登入~~!密碼對了再導入第二頁~~!就是我的資料庫~~!這樣可能會比較容易~~~!不知道這樣有沒有幫到你~~!這樣兩邊的資料都有密碼~~!就不會被人看到~~! 不好意思~~!前面我回的那篇不知道要從哪刪除~~~! 發表人 - zivu 於 2004/05/15 01:11:58
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-05-15 01:36:08 IP:211.76.xxx.xxx 未訂閱
引言: 這問題好像結案~~!可是我想說提供我的方法~~!我是分別將我的ACCESS資料表設密碼~~這邊先選工具在選保全在選資料庫設密碼就可以!可是設了以後打開騎它的資料表也都要用這個密碼喔~~!所以設這邊你考慮一下在決定~~! 這個好像比較符合你問的地方~~!BCB部分我是自己做首頁用密碼登入~~!密碼對了再導入第二頁~~!就是我的資料庫~~!這樣可能會比較容易~~~!不知道這樣有沒有幫到你~~!這樣兩邊的資料都有密碼~~!就不會被人看到~~!
我的程式就是登入的時候要輸入密碼,還有我的資料庫檔是在程式第一次執行的時候自動產生的所以一開始並沒有密碼,是從第一次進入程式的人註冊一個帳號密碼的時候產生的密碼...
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-05 00:09:40 IP:211.76.xxx.xxx 未訂閱
      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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-10-07 01:06:45 IP:140.126.xxx.xxx 未訂閱
原來是要加上
 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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-10-07 14:59:57 IP:203.95.xxx.xxx 未訂閱
請問你有加上 ADOConnection1.Properties.Item['Jet OLEDB:Database Password'].Value := oldpwd; 來進行已有密碼的 mdb 檔連結嗎?
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-10-07 15:08:06 IP:211.76.xxx.xxx 未訂閱
我是用BCB... 我有試過加上ADOConnection1->Properties->Item["Jet OLEDB:Database Password"]->Value= oldpwd; compiler會過,但是執行後會有記憶體錯誤,我試了好多種方式還是不行,麻煩一下了..謝謝
williamfox
一般會員


發表:14
回覆:15
積分:5
註冊:2002-08-05

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-05-16 21:41:30 IP:218.170.xxx.xxx 未訂閱
小弟在自已摸索後,發現這方法也行
系統時間:2024-04-29 4:13:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!