兩個奇怪的檔案 *.lck |
答題得分者是:P.D.
|
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 各位前輩,請問 Paradox.lck 和 Pdoxusrs.lck 為什麼會產生? 因為他們會產生在跟執行檔同一目錄下,會產生 Permission denied 錯誤(因為我設唯讀) 我不知道在什麼情況下會這樣??? 我用 BDE 5.11 , Delphi 5 標準版, 連接 Oracle 9i 感謝只要你是用 BDE 方式, 就會有這兩個檔案產生, 不可以設唯讀, 因為這是 BDE在控制連線及開啟資料庫時鎖定判別之用, 正常在程式結束, LCK檔就會 自動被移除! |
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 感謝 P.D. But 我所有的程式都放在一起(目錄設成唯讀), CLIENT 只拉捷徑,問題是 為什麼其他程式都不會 有這個問題,只有某一個程式會,所以我就很納悶 PS:所有捷徑的開始位置都一樣連到這一個唯讀目錄 我目前的解法是把 捷徑的開始位置改成 LOCAL 就可 但我還是相知道原因???? 謝謝 >>< face="Verdana, Arial, Helvetica"> 1.如果可能的話, 是否可以詳細描述你的bde設定! 2.是否可以嘗試把目錄唯讀拿掉試試! 3.其他程式不會, 是否這些程式都沒有使用 bde 的資料感知元件作業? 4.使用bde時, 還有一個Pdoxusrs.net產生在那裡呢? 5.另外建議, 你使用的這類資料庫不太適合用bde來管! 發表人 - P.D. 於 2003/03/06 16:39:01 |
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
你可以試試看在Client端存放Paradox.lck及Pdoxusrs.lck
誰Sever端存放Pdoxusrs.net procedure TForm1.FormCreate(Sender: TObject);
begin
Session.PrivateDir := 'c:\aaa'; // Client端的存放目錄
Session.NetFileDir := '\\Server\aaa'; // Server端的存放目錄(可存取)
end; 我也不知為什麼會有這些檔案,但好像用BDE一定會產生!
|
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
謝謝 P.D. 及 l630521 的回應,我作以下的說明:
1.BDE 的設定如下,如有錯誤請指正
BDE 5.11 DATABASE PAGE
TYPE=ORACLE
BATCH COUNT=200
BLOB SIZE=32
BLOBS TO CACHE=64
ENABLE BCD=FALSE
ENABLE INTEGERS=FALSE
ENABLE SCHEMA CACHE=TRUE
LANGDRIVER=
LIST SYNONYMS=NONE
MAX ROWS=-1
NET PROTOCOL=TNS
OPEN MODE=READ/WRITE
ROWSET SIZE=20
SCHEMA CACHE DIR=
SCHEMA CACHE SIZE=8
SCHEMA CACHE TIME=-1
SERVER NAME=T9I
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
SQLQRYMODE=
USER NAME=WP CONFIRURATION PAGE DRIVERS\NATIVE\ORACLE
VERSION=3.0
TYPE=SERVER
DLL=SQLD_ORA.DLL
DLL32=SQLORA32.DLL
VENDOR INIT=ORACLIENT9.DLL 2.唯讀拿掉就沒問題,或者一樣是唯讀但程式捷徑的開始位置設為 c:3.其他程式一樣會透過BDE連資料庫,所以使用元件幾乎一模一樣,TQuery,Database..
4.Pdoxusrs.net產生在 c:5.l630521 的作法應該可解決,但我想三者都放在 CLIENT 不知可行否
6.不透過BDE 連 ORACLE,那 P.D. 的建議是什麼呢? 我很有興趣
之前我曾用過 ADO,但覺得效能也差不多,不知其他的方法是?
Sorry 麻煩你們了。 問的好得
|
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
Oracle 9i 我並沒有使用過, 不是很清楚它們在server的架構如何,
不過我再仔細看了你原來的說明, 有一點明白你說的東東 1.你把程式放在server, 拉捷徑到client執行, 而server唯讀
我曾經有經驗, 如果程式為唯讀有些電腦是無法執行的(必須具備read/write權限), 所以你把捷徑路徑全部改向client就可以跑, 因為 client沒有權限問題,
這也是你會出現Permission denied 的原因! 2.如果我要做client/server的話, 一般我會把program(甚至不是捷徑)放在client端, data 放在server 上, 這樣對server的serivce會有較好的效率 3.Paradox.lck 和 Pdoxusrs.lck 這兩個檔會隨程式所在位置而產生(除非重指定位置), 因此如果你的程式是由server呼叫, readonly作法就是不對的, 因此能執行那就是很奇怪, 當然我不知道你其他程式是如何寫法而可以用, 不過我想如果你仔細再去查一下, 應該可以找到問題, 我們只能從旁推敲而已! 3.Pdoxusrs.net這個檔案如果data要共用, 就如l630521所說一定要在server上
如果你的client端是win98/95, 該檔必須還存在於server root之下(floder下會
造成錯誤), 所以我才會提到你的Pdoxusrs.net放在那裡? 4.因為 bde 在 share上有諸多限制, 並不是很好用, 像我使用Interbase資料庫, 它本身有提供Delphi的Compoent元件可以用, 不知Oracle 是否也有提供, 要不然用ado odbe也可以 如果我有寫錯, 請各位再指正囉!
|
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Hi, P.D. 我贊成你的作法,但如果有一二百台CLIENT,哪要更新個程式就累了, 所以用目前的方法,不知你有何好方法? ORACLE 本身有沒有提供Delphi的Compoent元件可以用,這我就孤陋寡聞了, 可能其他人知道吧 (就我所知是沒有啦) Paradox.lck 和 Pdoxusrs.lck 和 Pdoxusrs.net 我可以搞定了,謝謝 用 ODBC 是不可能的,因為我們用過.....很慢 以上 謝謝啦 問的好得 >>< face="Verdana, Arial, Helvetica"> 其實我現在有個做法, 用了二年的Delphi, 我發展了 DLL程式, 我把 DLL全部 放在網路上, 然後我只寫了一支MAIN.DPR放在CLIENT端, 因為程式是以 EXE檔 為一切來源的根本, 所以就算一二百台CLIENT, 都是由主程式CALL DLL TO CLIENT MEMEORY 沒有問題(不過我沒倒沒用這麼多, 最多只有三十台), 當然對SERVER來說, 會造成一個不小負擔, 因為 DLL在SERVER/CLIENT端不斷的LOAD, FREE, 好在目前的硬體配備來說不算大事啦! 提供你一個參考 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |