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

有关路径替换问题!!!!

答題得分者是:Justmade
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-14 10:52:06 IP:218.18.xxx.xxx 未訂閱
我存放在资料库中的路径为 \\mail\pic\... 因我现在把pic下的资料全部搬放到 主机 \\hong\pic 下面 资料库中的\\mail\pic\...的路径,请问有没有办法可以在让我进行查询的时候把 \\mail\pic\...的路径临时替换成 \\hong\pic... 主要就是替换主机名称,请问行吗?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-14 11:17:42 IP:202.39.xxx.xxx 未訂閱
TTable/TQuery 等透過 TDatabase 連線 則更改 TDatabase 的連線設定即可    TADOTable/TADOQuery 等透過 TADOConnection 連線 則更改 TADOConnection 的連線設定即可 ... 您是哪一種?    --- 每個人都是一本書
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-14 11:20:51 IP:218.18.xxx.xxx 未訂閱
我用的是TADOTable/TADOQuery 请问具体怎么更改连线? 我现在的查询代码如下: procedure TForm_caseembryo1.SpeedButton1Click(Sender: TObject); var image:timage; begin if qry1.Active=false then exit; Qry1.First; clearimage; while not Qry1.Eof do begin image:=timage.Create(ScrollBox1); image.Picture.LoadFromFile(Qry1.FieldByname('picpath').asstring); image.Parent:=ScrollBox1; Qry1.Next; end; end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-14 11:22:30 IP:218.18.xxx.xxx 未訂閱
hagar大哥: 我的路径是保存在资料库里面的,按你的方法好象行不通的啊!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-14 11:28:04 IP:202.39.xxx.xxx 未訂閱
Sorry! 會錯意了!  試試把 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=9549643&CC=213577">
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-14 11:30:10 IP:218.16.xxx.xxx 未訂閱
在 Delphi 內可用 : StringReplace(Query1.FieldByName('pic').AsString,'\\mail\','\\hong\',[]); 可在使用時 (如 load 圖) 才用或建立一 Lookup field    若你是要在 SQL 選取時已作調換,請如版規第一點所說 : 發表文章前請詳閱本區版規: 1.請註明資料庫系統及版本 2.若非資料(數據)庫相關問題, 將不預警加以移區並扣分 嘩十多分鐘變化這麼大,我按回覆時只有問題,中途做過點別的,一貼上原來已對答一堆了 發表人 -
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-14 11:40:08 IP:202.39.xxx.xxx 未訂閱
Justmade 兄是對的 小弟之前的 OldPattern 與 NewPattern 搞混了.    --- 每個人都是一本書
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-14 12:00:45 IP:218.18.xxx.xxx 未訂閱
我改写程序如下,但还是不行啊,烦请各位再帮我看看 while not Qry1.Eof do begin image:=timage.Create(ScrollBox1); if rb_mainland.Checked=true then image.Picture.LoadFromFile(Qry1.FieldByname('picpath').asstring); if rb_hk.Checked=true then image.Picture.LoadFromFile(StringReplace(Qry1.FieldByname('picpath').asstring, '\\pengjuntao\', '\\mail\', [])); image.Parent:=ScrollBox1; Qry1.Next; end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-14 12:04:26 IP:218.18.xxx.xxx 未訂閱
我用的资料库系统是sqlserver2000
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-14 12:08:22 IP:202.39.xxx.xxx 未訂閱
怎樣不可以?什麼錯誤訊息?    --- 每個人都是一本書
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-06-14 13:41:21 IP:218.18.xxx.xxx 未訂閱
错误信息就是找不着路径啊,是不是替换不了啊,还是怎么回事啊,我也搞迷糊了
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-06-14 13:48:54 IP:218.16.xxx.xxx 未訂閱
絕不是替換不了,只是你的替換有問題。 你可用 showMessage(StringReplace(Qry1.FieldByname('picpath').asstring, '\\pengjuntao\', '\\mail\', []))); 來看看替換後的路徑是否正確 其中一個可能是大小寫不對,那你可在 [] 內加入 rfIgnoreCase,即是 : showMessage(StringReplace(Qry1.FieldByname('picpath').asstring, '\\pengjuntao\', '\\mail\', [rfIgnoreCase])));
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-06-14 14:29:09 IP:218.18.xxx.xxx 未訂閱
Justmade大哥,确实是替换不了,用showmessage来看也是路径没变过,我把我的代码贴出来,请看看吧 procedure TForm_caseembryo1.SpeedButton1Click(Sender: TObject); var image:timage; begin if qry1.Active=false then exit; Qry1.First; clearimage; while not Qry1.Eof do begin image:=timage.Create(ScrollBox1); if rb_mainland.Checked=true then image.Picture.LoadFromFile(Qry1.FieldByname('picpath').asstring); if rb_hk.Checked=true then image.Picture.LoadFromFile(StringReplace(Qry1.FieldByname('picpath').asstring, '\\pengjuntao\', '\\mail\', [rfIgnoreCase])); image.Parent:=ScrollBox1; Qry1.Next; end; end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-06-14 14:35:02 IP:218.18.xxx.xxx 未訂閱
不好意思,我急了点,问题已经解决了,只要把前后两个路径名对调 下就好了,在此多谢各位的耐心解答,谢谢你们!
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-06-14 14:40:54 IP:218.16.xxx.xxx 未訂閱
你這Case看程碼沒用,因為又看不到你 : Qry1.FieldByname('picpath').asstring 的文字 若內裡跟本沒 '\\pengjuntao\' 字眼,甚可能轉換得到成 '\\mail\' ??? 你可以用一些 Debug 最其本的常識 來測試一下丫 ShowMessage(Qry1.FieldByname('picpath').asstring); ShowMessage(StringReplace(Qry1.FieldByname('picpath').asstring, '\\pengjuntao\', '\\mail\', [rfIgnoreCase])); ShowMessage(StringReplace('\\pengjuntao\xyz.jpg', '\\pengjuntao\', '\\mail\', [rfIgnoreCase])); 自己比對一下。若第三行也是替換不了再來說罷。
系統時間:2024-07-06 4:48:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!