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

Firebird的gbak.exe透過OpenDialog1就無法備份或回存?

答題得分者是:leveon
chris681016
中階會員


發表:64
回覆:117
積分:96
註冊:2006-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-12-19 16:52:14 IP:211.75.xxx.xxx 訂閱
如題
11

如果預設值,直接按回存,可以回存成功
如果透過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;

編輯記錄
chris681016 重新編輯於 2012-12-19 01:52:42, 註解 無‧
chris681016 重新編輯於 2012-12-19 01:59:15, 註解 無‧
leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-12-19 17:54:30 IP:118.165.xxx.xxx 訂閱
我又來猜猜看
大概是你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
中階會員


發表:64
回覆:117
積分:96
註冊:2006-10-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-12-19 17:57:00 IP:211.75.xxx.xxx 訂閱
真的耶~~~大大真力害~~~

===================引 用 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.
版主


發表:571
回覆:3880
積分:3666
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-12-26 09:32:04 IP:118.160.xxx.xxx 未訂閱
插花一下,  很多人不知道, 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
中階會員


發表:25
回覆:169
積分:98
註冊:2003-11-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-01-07 16:30:55 IP:42.74.xxx.xxx 訂閱
最近在練習資料庫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, 註解 無‧
系統時間:2017-10-21 23:50:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!