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

請問IntraWeb ISAPI程式內如何設定資料庫路徑?

答題得分者是:Brian77
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-21 01:28:05 IP:203.217.xxx.xxx 未訂閱
請問各位先進: 目前我利用IntraWeb ado建構ISAPI程式,一開始我先用StandAlone程式測試時沒有問題,為了設計上的靈活考量,我將資料庫的連結寫在程式內,並先用變數設定後再指定給ADOConnection,變數是藉由ExtractFilePath( ParamStr(0) )找到Server主機上的路徑,StandAlone程式執行後沒有問題。當我改成ISAPI程式後執行時卻發生資料庫路徑讀取錯誤訊息,debug後發現:因為ISAPI是由DLLHost.exe呼叫的,該程式路徑在C:\WINNT\System32下,所以用ExtractFilePath( ParamStr(0) )得到的變數內容便是C:\WINNT\System32,而我的dll檔案與mdb資料庫檔案卻可能是在D:\XXX\...,所以我的問題是:如何取得Server主機上的路徑?我記得ASP有個語法Server.MapPath("...")可以取得某網站的本機路徑,不知道在Delphi IntraWeb中如何做到?還是有其他方法可設定或讀取某個路徑變數... 另外,想請教另一個問題:有時isapi編譯的DLL程式執行後發生問題時,當作完修改後想重新編譯測試時,卻發生因為上次執行的session還未結束,導致dll檔還在使用中(我想應該是dllhost.exe還Hold住),導致Delphi無法覆蓋dll檔案而編譯失敗,不知有沒有什麼方法能釋放該dll嗎? 請各位先進能不吝指教。Thanks for your help.
Brian77
中階會員


發表:8
回覆:114
積分:94
註冊:2002-05-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-21 11:49:49 IP:61.61.xxx.xxx 未訂閱
路徑的取得:
var
  FN: array [0..MAX_PATH-1] of char;
  ScriptName:String;
begin
  SetString(ScriptName,FN,GetModuleFileName(hInstance,FN,SizeOf(FN)));
  // ScriptName 即該 exe 或 dll 的檔名含路徑 (相當於 exeName)
end;
DLLHost.exe 會 Hold 住, 可叫出工作管理員檢查 "處理程序", 會有數項DLLHost.exe, 其中一項的使用者類似 "IWAM_電腦名稱", 把它結束掉, 就好了
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-21 16:59:49 IP:203.217.xxx.xxx 未訂閱
引言: 路徑的取得:
var
  FN: array [0..MAX_PATH-1] of char;
  ScriptName:String;
begin
  SetString(ScriptName,FN,GetModuleFileName(hInstance,FN,SizeOf(FN)));
  // ScriptName 即該 exe 或 dll 的檔名含路徑 (相當於 exeName)
end;
DLLHost.exe 會 Hold 住, 可叫出工作管理員檢查 "處理程序", 會有數項DLLHost.exe, 其中一項的使用者類似 "IWAM_電腦名稱", 把它結束掉, 就好了
首先感謝前輩的不吝指教。 依照您的指引已經可以抓到DLL所在目錄了,原先我以為只是某個物件的Property即可取得,沒想到它得用到一般Windows DLL,不知道在web上會不會造成什麼影響,但至少已經可以解決目前難關,真是感謝您的指導。 另外有關DLLHost.exe 會 Hold 住一事,我之前也是想要結束它的Process,但總會先出現一個警告視窗,選取’是’按鈕後又出現’這項操作無法完成,存取被拒’的視窗,所以無法順利釋放該dll檔案,不知前輩還有其他方式可以解決嗎? 再次謝謝您的幫忙。
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-21 22:33:23 IP:61.56.xxx.xxx 未訂閱
你好: 如果你使用 Window 2000 可以參考下圖 < src="http://sourceprovide.deepen.com.tw/K_Top/StopIIS.jpg">
Brian77
中階會員


發表:8
回覆:114
積分:94
註冊:2002-05-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-22 09:56:03 IP:61.61.xxx.xxx 未訂閱
引言: 依照您的指引已經可以抓到DLL所在目錄了,原先我以為只是某個物件的Property即可取得,沒想到它得用到一般Windows DLL,不知道在web上會不會造成什麼影響,但至少已經可以解決目前難關,真是感謝您的指導。
我想, IntraWeb 本身應該就有使用數種 WinAPI 了. 這應該沒什麼不良影響.
David
一般會員


發表:13
回覆:26
積分:7
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-22 15:40:03 IP:203.217.xxx.xxx 未訂閱
非常感謝Brian77與ha0009兩位先進的指教,讓我能順利解決這兩個問題,只是現在有個兩難問題,因為兩位先進各解決了一個問題,所以很難做下決定,無論如何,對兩位先進的不吝指教,小弟實在非常感謝。 Thanks for your help.
系統時間:2024-05-06 2:25:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!