路徑的問題 |
答題得分者是:careychen
|
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
抱歉
問一個很愚蠢的問題 就是當我把我的程式,拿到別台電腦運作 http://delphi.ktop.com.tw/download.php?download=upload/48b6032bc7f76_新資料夾.rar 就會出現這訊息,想說路徑有問題,就直接在這台電腦改 但還是一樣出現這訊息,既然如此 那我就把ADO刪掉從新再拉 結果還是一樣,請前輩們幫個忙 ,這問題已經困惱很多天了 |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
既然是路徑的問題,讓您的程式與 Access 在同一個路徑下,應該不會錯吧
所以要達成上面的方式 您原本在 ADOConnection 的 ConnectionString 會指定一個路徑,而這個當然在您自己的開發環境上不會錯, 但被發佈的那一台機器沒有該相關的路徑,所以在 ADOConnectin 的 OnWillConnect 的事件裡面改寫 ConnectionString 裡的路徑就好了。 [code delphi] procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin // 先把原本元件內的 ConnectionString Copy 進來後,再改寫其路徑 // 然後發佈程式時,請把 Access 檔與程式放在一起 // ※※ 【注意】底下的 ConnectionString 請記得用您自己的,我的是 Office 2007 所以不大一樣!! ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";' 'Data Source=' ExtractFilePath(Application.ExeName) 'Database1.accdb;' 'Persist Security Info=True'; end; [/code] 以上是第一個注意事項,第二個注意事項,請在發佈前【先將 ADOConnection 的 Active 】設為 False 使用程式動態設為 True !!!!! ===================引 用 kill42el 文 章=================== 抱歉 問一個很愚蠢的問題 就是當我把我的程式,拿到別台電腦運作 http://delphi.ktop.com.tw/download.php?download=upload/48b6032bc7f76_新資料夾.rar 就會出現這訊息,想說路徑有問題,就直接在這台電腦改 但還是一樣出現這訊息,既然如此 那我就把ADO刪掉從新再拉 結果還是一樣,請前輩們幫個忙 ,這問題已經困惱很多天了
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-11-22 15:36:40, 註解 無‧
|
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
多謝 前輩熱情的指導
還有,前輩所說的【先將 ADOConnection 的 Active 】設為 False 但我找不到 ADOConnection 的 Active http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG 勞煩了,前輩 ===================引 用 careychen 文 章=================== 既然是路徑的問題,讓您的程式與 Access 在同一個路徑下,應該不會錯吧 所以要達成上面的方式 您原本在 ADOConnection 的 ConnectionString 會指定一個路徑,而這個當然在您自己的開發環境上不會錯, 但被發佈的那一台機器沒有該相關的路徑,所以在 ADOConnectin 的 OnWillConnect 的事件裡面改寫 ConnectionString 裡的路徑就好了。 [code delphi] procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin // 先把原本元件內的 ConnectionString Copy 進來後,再改寫其路徑 // 然後發佈程式時,請把 Access 檔與程式放在一起 // ※※ 【注意】底下的 ConnectionString 請記得用您自己的,我的是 Office 2007 所以不大一樣!! ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";' 'Data Source=' ExtractFilePath(Application.ExeName) 'Database1.accdb;' 'Persist Security Info=True'; end; [/code] 以上是第一個注意事項,第二個注意事項,請在發佈前【先將 ADOConnection 的 Active 】設為 False 使用程式動態設為 True !!!!!
編輯記錄
kill42el 重新編輯於 2008-11-22 23:20:46, 註解 無‧
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
嗯…這個…那個…是我搞錯了,拍謝拍謝,是 Connected 設為 False ~~!!!!
===================引 用 kill42el 文 章=================== 多謝 前輩熱情的指導 還有,前輩所說的【先將 ADOConnection 的 Active 】設為 False 但我找不到 ADOConnection 的 Active http://delphi.ktop.com.tw/download.php?download=upload/48b64d64c9fe5_未命名.JPG 勞煩了,前輩 ===================引 用 careychen 文 章=================== 既然是路徑的問題,讓您的程式與 Access 在同一個路徑下,應該不會錯吧 所以要達成上面的方式 您原本在 ADOConnection 的 ConnectionString 會指定一個路徑,而這個當然在您自己的開發環境上不會錯, 但被發佈的那一台機器沒有該相關的路徑,所以在 ADOConnectin 的 OnWillConnect 的事件裡面改寫 ConnectionString 裡的路徑就好了。 [code delphi] procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin // 先把原本元件內的 ConnectionString Copy 進來後,再改寫其路徑 // 然後發佈程式時,請把 Access 檔與程式放在一起 // ※※ 【注意】底下的 ConnectionString 請記得用您自己的,我的是 Office 2007 所以不大一樣!! ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";' 'Data Source=' ExtractFilePath(Application.ExeName) 'Database1.accdb;' 'Persist Security Info=True'; end; [/code] 以上是第一個注意事項,第二個注意事項,請在發佈前【先將 ADOConnection 的 Active 】設為 False 使用程式動態設為 True !!!!!
------
價值的展現,來自於你用哪一個角度來看待它!! |
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
前輩,你好 按照前輩給予的指示去修改ConnectionString 裡的路徑 想再請問 是否我哪邊有誤呢??一直出現錯誤 [code cpp] void __fastcall TForm1::ADOConnection1WillConnect( TADOConnection *Connection, WideString &ConnectionString, WideString &UserID, WideString &Password, TConnectOption &ConnectOptions, TEventStatus &EventStatus) { ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0 ;Password="";' 'Data Source=C:\Documents and Settings\Administrator\桌面\最終版本.999\stu.mdb;' 'Persist Security Info=False end; } [/code] http://delphi.ktop.com.tw/download.php?download=upload/48b6032bc7f76_新資料夾.rar ===================引 用 careychen 文 章=================== 既然是路徑的問題,讓您的程式與 Access 在同一個路徑下,應該不會錯吧 所以要達成上面的方式 您原本在 ADOConnection 的 ConnectionString 會指定一個路徑,而這個當然在您自己的開發環境上不會錯, 但被發佈的那一台機器沒有該相關的路徑,所以在 ADOConnectin 的 OnWillConnect 的事件裡面改寫 ConnectionString 裡的路徑就好了。 [code delphi] procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin // 先把原本元件內的 ConnectionString Copy 進來後,再改寫其路徑 // 然後發佈程式時,請把 Access 檔與程式放在一起 // ※※ 【注意】底下的 ConnectionString 請記得用您自己的,我的是 Office 2007 所以不大一樣!! ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";' 'Data Source=' ExtractFilePath(Application.ExeName) 'Database1.accdb;' 'Persist Security Info=True'; end; [/code] 以上是第一個注意事項,第二個注意事項,請在發佈前【先將 ADOConnection 的 Active 】設為 False 使用程式動態設為 True !!!!! |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
請看一下,我原本回的 Data Source 是動態指定 Access 路徑的,而你的程式依舊是寫死的
請改一下 ===================引 用 kill42el 文 章=================== 前輩,你好 按照前輩給予的指示去修改ConnectionString 裡的路徑 想再請問 是否我哪邊有誤呢??一直出現錯誤 [code cpp] void __fastcall TForm1::ADOConnection1WillConnect( TADOConnection *Connection, WideString &ConnectionString, WideString &UserID, WideString &Password, TConnectOption &ConnectOptions, TEventStatus &EventStatus) { ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0 ;Password="";' 'Data Source=C:\Documents and Settings\Administrator\桌面\最終版本.999\stu.mdb;' 'Persist Security Info=False end; } [/code] http://delphi.ktop.com.tw/download.php?download=upload/48b6032bc7f76_新資料夾.rar ===================引 用 careychen 文 章=================== 既然是路徑的問題,讓您的程式與 Access 在同一個路徑下,應該不會錯吧 所以要達成上面的方式 您原本在 ADOConnection 的 ConnectionString 會指定一個路徑,而這個當然在您自己的開發環境上不會錯, 但被發佈的那一台機器沒有該相關的路徑,所以在 ADOConnectin 的 OnWillConnect 的事件裡面改寫 ConnectionString 裡的路徑就好了。 [code delphi] procedure TForm1.ADOConnection1WillConnect(Connection: TADOConnection; var ConnectionString, UserID, Password: WideString; var ConnectOptions: TConnectOption; var EventStatus: TEventStatus); begin // 先把原本元件內的 ConnectionString Copy 進來後,再改寫其路徑 // 然後發佈程式時,請把 Access 檔與程式放在一起 // ※※ 【注意】底下的 ConnectionString 請記得用您自己的,我的是 Office 2007 所以不大一樣!! ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";' 'Data Source=' ExtractFilePath(Application.ExeName) 'Database1.accdb;' 'Persist Security Info=True'; end; [/code] 以上是第一個注意事項,第二個注意事項,請在發佈前【先將 ADOConnection 的 Active 】設為 False 使用程式動態設為 True !!!!!
------
價值的展現,來自於你用哪一個角度來看待它!! |
kill42el
一般會員 發表:30 回覆:50 積分:16 註冊:2008-06-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |