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

兩個奇怪的檔案 *.lck

答題得分者是:P.D.
GiABin
一般會員


發表:6
回覆:8
積分:2
註冊:2002-11-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-05 16:02:09 IP:203.75.xxx.xxx 未訂閱
各位前輩,請問 Paradox.lck 和 Pdoxusrs.lck 為什麼會產生? 因為他們會產生在跟執行檔同一目錄下,會產生 Permission denied 錯誤(因為我設唯讀) 我不知道在什麼情況下會這樣??? 我用 BDE 5.11 , Delphi 5 標準版, 連接 Oracle 9i 感謝
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-05 16:05:48 IP:61.66.xxx.xxx 未訂閱
引言: 各位前輩,請問 Paradox.lck 和 Pdoxusrs.lck 為什麼會產生? 因為他們會產生在跟執行檔同一目錄下,會產生 Permission denied 錯誤(因為我設唯讀) 我不知道在什麼情況下會這樣??? 我用 BDE 5.11 , Delphi 5 標準版, 連接 Oracle 9i 感謝
只要你是用 BDE 方式, 就會有這兩個檔案產生, 不可以設唯讀, 因為這是 BDE在控制連線及開啟資料庫時鎖定判別之用, 正常在程式結束, LCK檔就會 自動被移除!
GiABin
一般會員


發表:6
回覆:8
積分:2
註冊:2002-11-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-06 13:32:40 IP:203.75.xxx.xxx 未訂閱
感謝 P.D.    But 我所有的程式都放在一起(目錄設成唯讀), CLIENT 只拉捷徑,問題是 為什麼其他程式都不會 有這個問題,只有某一個程式會,所以我就很納悶    PS:所有捷徑的開始位置都一樣連到這一個唯讀目錄    我目前的解法是把 捷徑的開始位置改成 LOCAL 就可 但我還是相知道原因????    謝謝
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-06 16:35:16 IP:211.78.xxx.xxx 未訂閱
引言: 感謝 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-07 09:09:13 IP:61.222.xxx.xxx 未訂閱
你可以試試看在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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-07 11:56:55 IP:203.75.xxx.xxx 未訂閱
謝謝 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-07 12:08:08 IP:61.222.xxx.xxx 未訂閱
我會設定 Session.NetFileDir := '\\Server\aaa'; // Server端的存放目錄(可存取) 是因為我用的是FoxPro的資料庫, 所以Pdoxusrs.net需要在Server上,這樣所有的使用都才能共享這個檔案, 而Paradox.lck與Pdoxusrs.lck無法共用,所以放在Client端, 至於Oracle是否可都放在Client端,可能你要自己試試看了!
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-08 00:57:08 IP:61.66.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-10 12:03:15 IP:203.75.xxx.xxx 未訂閱
Hi, P.D. 我贊成你的作法,但如果有一二百台CLIENT,哪要更新個程式就累了, 所以用目前的方法,不知你有何好方法? ORACLE 本身有沒有提供Delphi的Compoent元件可以用,這我就孤陋寡聞了, 可能其他人知道吧 (就我所知是沒有啦) Paradox.lck 和 Pdoxusrs.lck 和 Pdoxusrs.net 我可以搞定了,謝謝 用 ODBC 是不可能的,因為我們用過.....很慢 以上 謝謝啦 問的好得
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-10 21:55:25 IP:61.66.xxx.xxx 未訂閱
引言: 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, 好在目前的硬體配備來說不算大事啦! 提供你一個參考
系統時間:2024-05-10 10:02:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!