Firebird的gbak.exe透過OpenDialog1就無法備份或回存? |
答題得分者是:leveon
|
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
如題
如果預設值,直接按回存,可以回存成功 如果透過OpenDialog1,一樣的路徑「資料來源」路徑或是「資料還源」路徑,就會回存失敗 有人遇過嗎? 難道OpenDialog1會佔住資料庫嗎 sstr:='-c -REP -v 來源 目地 -user sysdba -password masterkey' ; try back_no:=ShellExecute(handle, 'open', 'gbak.exe',pchar(sstr) , nil,SW_SHOWNORMAL ); // SW_HIDE finally IF back_no<>42 THEN showmessage('回存失敗') ELSE showmessage('回存完成'); end; 編輯記錄
|
leveon
資深會員 發表:30 回覆:389 積分:303 註冊:2012-02-12 發送簡訊給我 |
我又來猜猜看
大概是你open XX後 工作目錄跑掉 找不到gbak.exe 的位置 ShellExecute 之前 設一下"CurrentDirectory"看看 SetCurrentDirectory(Pchar(ExtractFileDir(Application.ExeName))); gbak.exe 應該有放在執行檔旁邊 ===================引 用 chris681016 文 章=================== 如題 sstr:='-c -REP -v 來源 目地 -user sysdba -password masterkey' ; try back_no:=ShellExecute(handle, 'open', 'gbak.exe',pchar(sstr) , nil,SW_SHOWNORMAL ); // SW_HIDE finally IF back_no<>42 THEN showmessage('回存失敗') ELSE showmessage('回存完成'); end; |
chris681016
中階會員 發表:69 回覆:122 積分:98 註冊:2006-10-12 發送簡訊給我 |
真的耶~~~大大真力害~~~
===================引 用 leveon 文 章=================== 我又來猜猜看 大概是你open XX後 工作目錄跑掉 找不到gbak.exe 的位置 ShellExecute 之前 設一下"CurrentDirectory"看看 SetCurrentDirectory(Pchar(ExtractFileDir(Application.ExeName))); gbak.exe 應該有放在執行檔旁邊 ===================引 用 chris681016 文 章=================== 如題 sstr:='-c -REP -v 來源 目地 -user sysdba -password masterkey' ; try back_no:=ShellExecute(handle, 'open', 'gbak.exe',pchar(sstr) , nil,SW_SHOWNORMAL ); // SW_HIDE finally IF back_no<>42 THEN showmessage('回存失敗') ELSE showmessage('回存完成'); end; |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
插花一下, 很多人不知道, OpenDialog 這組fucntion 被呼叫時, 其實底層的路徑已經被改變了,
並非我們所想像還停留在原來的位置 ===================引 用 chris681016 文 章=================== 真的耶~~~大大真力害~~~ ===================引 用 leveon 文 章=================== 我又來猜猜看 大概是你open XX後 工作目錄跑掉 找不到gbak.exe 的位置 ShellExecute 之前 設一下"CurrentDirectory"看看 SetCurrentDirectory(Pchar(ExtractFileDir(Application.ExeName))); gbak.exe 應該有放在執行檔旁邊 ===================引 用 chris681016 文 章=================== 如題 sstr:='-c -REP -v 來源 目地 -user sysdba -password masterkey' ; try back_no:=ShellExecute(handle, 'open', 'gbak.exe',pchar(sstr) , nil,SW_SHOWNORMAL ); // SW_HIDE finally IF back_no<>42 THEN showmessage('回存失敗') ELSE showmessage('回存完成'); end; |
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
最近在練習資料庫adoconnection時,
原本以為ConnectionString = "DSN=dBase Files;UID=;SourceDB=..." 中的SourceDB可以指定資料庫路徑, 結果發現一直有問題, 無法找到其他目錄下的的資料庫(只會找跟應用程式相同目錄夾@@) 後來, 我也利用到leveon所提的目前工作路徑解決這個麻煩: 將上述問題切換到資料庫所在的目錄夾就搞定! 在此特別提出感謝! ";
------
The first step toward proving things for yourself is to understand how others have done it before!
編輯記錄
fusung 重新編輯於 2013-01-07 01:32:17, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |