全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1402
推到 Plurk!
推到 Facebook!

EDBEngineError 的錯誤

尚未結案
eddiewong
一般會員


發表:12
回覆:11
積分:4
註冊:2003-08-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-28 06:17:14 IP:61.230.xxx.xxx 未訂閱
首先在此再次感謝P.D.兄在之前問題的幫忙!!!新問題來了...        我的程式BDEAdmin-alias為\\]的視窗,輸入使用者名稱=Administrator後,開起DB的檔案夾. 再執行程式Table1.active=true,才不會出現錯誤. 請問如何...不用每次執行程式前,到網路芳鄰開起...
P.D.
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-28 22:05:37 IP:61.66.xxx.xxx 未訂閱
引言: 首先在此再次感謝P.D.兄在之前問題的幫忙!!!新問題來了... 我的程式BDEAdmin-alias為\\]的視窗,輸入使用者名稱=Administrator後,開起DB的檔案夾. 再執行程式Table1.active=true,才不會出現錯誤. 請問如何...不用每次執行程式前,到網路芳鄰開起...
你的問題, 我還是不是很明白, 不知你連線的對方是 win2000server, win2000professional, win98, winxp? 以及你網路介面是以 TCP/IP 或 NETBEUI 方式溝通, 不過按你的描述來看, 應該是對方所開放出來 的共用權限有問題, 否則正常來說, 在WINDOW內定義過網路共享磁碟, 應是會 在下一次自動連結, 以下有一個程式可以自動建立網路共享磁碟, 我在WIN98, WIN2000Professional測試過可以用的, 或許你可以用這個程式來自動建立 共享磁碟
function TForm1.NetDisk(UNC, NDisk: string): dword;
         var sysLoginUser:string;
             NR: TNETRESOURCE;
             dwResult: dword;
             lpBuffer: PChar;//lpstr;
             nSize: DWord;
             ERRstr: pChar;
begin
     result:= 0;
     nSize:= 255;
     GetMem(lpBuffer, nSize);
     GetUserName(lpBuffer,nSize);
     sysLoginUser:= lpBuffer;    // 取得系統登錄者名稱
     // 中斷網路磁碟機
     try
        WNetCancelConnection(pChar(NDisk),True);
     except
        on E: Exception do begin
           Application.MessageBox(pChar('系統錯誤:' E.Message),
                                        '中斷網路磁碟機',MB_ICONERROR MB_OK);
           exit;
        end;
     end;         // 如果不輸入UNC, 則代表取消網路磁碟機
     if trim(UNC)<>'' then begin
        result:= 0;
        NR.dwScope:= RESOURCE_GLOBALNET;
        NR.dwType:= RESOURCETYPE_DISK;
        NR.dwDisplayType:= RESOURCEDISPLAYTYPE_SHARE;
        NR.dwUsage:= RESOURCEUSAGE_CONNECTABLE;
        NR.lpLocalName:= pChar(NDisk);
        NR.lpRemoteName:= pChar(UNC);
        NR.lpProvider:= '';
        // 連線網路磁碟機
        try
           dwResult:= WNetAddConnection2(NR,pchar(''),pchar(sysloginUser),
                                         CONNECT_UPDATE_PROFILE);
           if dwResult <> NO_ERROR then begin
              case dwResult of
                ERROR_ACCESS_DENIED            : ERRstr:= pChar('ERROR_ACCESS_DENIED' #13 
                                                                '未獲准進入網路');
                ERROR_ALREADY_ASSIGNED         : ERRstr:= pChar('ERROR_ALREADY_ASSIGNED' #13 
                                                                '已有相同的登入者先佔用');
                ERROR_BAD_DEV_TYPE             : ERRstr:= pChar('ERROR_BAD_DEV_TYPE' #13 
                                                                '登入點與網路資源不符');
                ERROR_BAD_DEVICE               : ERRstr:= pChar('ERROR_BAD_DEVICE' #13 
                                                                '登入者不存在於網路名單中');
                ERROR_BAD_NET_NAME             : ERRstr:= pChar('ERROR_BAD_NET_NAME' #13 
                                                                '找不到指定的網路路徑');
                ERROR_BAD_PROFILE              : ERRstr:= pChar('ERROR_BAD_PROFILE' #13 
                                                                '登入者的PROFILE檔格式有問題');
                ERROR_BAD_PROVIDER             : ERRstr:= pChar('ERROR_BAD_PROVIDER' #13 
                                                                '網路介面不符');
                ERROR_BUSY                     : ERRstr:= pChar('ERROR_BUSY' #13 
                                                                '網路忙線中');
                ERROR_CANCELLED                : ERRstr:= pChar('ERROR_CANCELLED' #13 
                                                                '網路不在線上');
                ERROR_CANNOT_OPEN_PROFILE      : ERRstr:= pChar('ERROR_CANNOT_OPEN_PROFILE' #13 
                                                                '系統無法開啟登入者的PROFILE檔');
                ERROR_DEVICE_ALREADY_REMEMBERED: ERRstr:= pChar('ERROR_DEVICE_ALREADY_REMEMBERED' #13 
                                                                '這個登入者資源已被佔用');
                ERROR_EXTENDED_ERROR           : ERRstr:= pChar('ERROR_EXTENDED_ERROR' #13 
                                                                '網路發生不可預期的錯誤');
                ERROR_INVALID_PASSWORD         : ERRstr:= pChar('ERROR_INVALID_PASSWORD' #13 
                                                                '登入密碼不對');
                ERROR_NO_NET_OR_BAD_PATH       : ERRstr:= pChar('ERROR_NO_NET_OR_BAD_PATH' #13 
                                                                '網路服務不存在或資源未共享');
                ERROR_NO_NETWORK               : ERRstr:= pChar('ERROR_NO_NETWORK' #13 
                                                                '沒有網路環境');
              else                               Errstr:= pChar('未定義錯誤');
              end;
              Application.MessageBox(Errstr,'連線網路磁碟機',MB_ICONERROR MB_OK);
              result:= dwResult;
           end;
        except
           on E: Exception do begin
              Application.MessageBox(pChar('系統錯誤:' E.Message),
                                     '連線網路磁碟機',MB_ICONERROR MB_OK);
           end;
        end;
     end;
end;    
使用方式 NetDisk('\\SHARED-C\DATA','P:') //路徑以UNC表達
eddiewong
一般會員


發表:12
回覆:11
積分:4
註冊:2003-08-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-29 04:41:08 IP:61.230.xxx.xxx 未訂閱
非常感謝P.D.兄!! 雖然我的文筆很難董, 不過您太神啦! 解答我的問題 都是我要滴!!!!!!
bhead811
一般會員


發表:13
回覆:18
積分:6
註冊:2003-05-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-06 18:55:49 IP:61.220.xxx.xxx 未訂閱
hi : 因為這個function很有用,所以我一看到時,馬上就開始測試,但 我測試了以後,發現有一個問題,是我必須先手動連線,(例如:在執行裏,鍵入\\SHARED-C\DATA),之後再用此NetDisk function,這樣才能建立網路磁碟機,否則若沒有先手動連結的話,則會出現'未定義的錯誤'. 我的系統是win2000 professial. Best Regards
P.D.
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-07 00:26:21 IP:61.66.xxx.xxx 未訂閱
引言: hi : 因為這個function很有用,所以我一看到時,馬上就開始測試,但 我測試了以後,發現有一個問題,是我必須先手動連線,(例如:在執行裏,鍵入\\SHARED-C\DATA),之後再用此NetDisk function,這樣才能建立網路磁碟機,否則若沒有先手動連結的話,則會出現'未定義的錯誤'. 我的系統是win2000 professial. Best Regards
應該是不會, 我測試過, 只要你參數下對, 系統是會自動連結的, 要不然就失去這個function的意義, 有空我再測測你的環境!
bhead811
一般會員


發表:13
回覆:18
積分:6
註冊:2003-05-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-07 09:21:26 IP:61.220.xxx.xxx 未訂閱
引言:
引言: hi : 因為這個function很有用,所以我一看到時,馬上就開始測試,但 我測試了以後,發現有一個問題,是我必須先手動連線,(例如:在執行裏,鍵入\\SHARED-C\DATA),之後再用此NetDisk function,這樣才能建立網路磁碟機,否則若沒有先手動連結的話,則會出現'未定義的錯誤'. 我的系統是win2000 professial. Best Regards
應該是不會, 我測試過, 只要你參數下對, 系統是會自動連結的, 要不然就失去這個function的意義, 有空我再測測你的環境!
我找到原因了,實在是我的疏忽,問題是出在要加PASSWORD, dwResult := WNetAddConnection2(NR, pchar('xxxxxxx'), pchar(sysloginUser),CONNECT_UPDATE_PROFILE); 這個
系統時間:2024-05-19 5:52:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!