with .... do begin 失效? |
缺席
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位! 我有一段語法
with DM_CustFare, DM_CustFareAcc do begin mdept:= IBQ_D1102DEPTNO.AsString; mcust:= IBQ_D1102CUSTNO.AsString; // 本次結點起始日 mdate1:= IBQ_D1102LACCDATE.AsString; // 本次結點截止日 mdate2:= IBQ_D1102NACCDATE.AsString; .... end;很奇怪的是 mdate1:= IBQ_D1102LACCDATE.AsString 這句, 如果這樣寫, 則 取出的 mdate1 是空字串, 但如果我加入 mdate1:= DM_CustFare.IBQ_D1102LACCDATE.AsString 則可以正常的取出該欄的內值, 我確認過 LACCDATE 欄位的確有資料, 上面其他的設定都沒有問題, 只有這項, 不知各位有無遇過該如何解決? 謝謝@! |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Exists DM_CustFareAcc.IBQ_D1102NACCDATE?? http://pywong.hk.st
|
09n
一般會員 發表:6 回覆:13 積分:13 註冊:2002-09-14 發送簡訊給我 |
你好.
不知道是否你一次引用兩個object在 with...do的範圍內.
而 DM_CustFare, DM_CustFareAcc 又同時擁有IBQ_D1102LACCDATE.. 所以mdate1:= IBQ_D1102LACCDATE.AsString; 會抓取到 DM_CustFareAcc.IBQ_D1102LACCDATE的值 例如
TTest1 = record
a , b :String;
end;
TTest2 = record
a , c :String;
end; with Test1, Test2 do begin
sData := a;
end; 則sData會存入 Test2.a的值...
指定Test1.a則才會抓到 Test1.a的值... 小弟才疏學淺.獻醜如有疏漏歡迎指教..
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 你好. 不知道是否你一次引用兩個object在 with...do的範圍內. 而 DM_CustFare, DM_CustFareAcc 又同時擁有IBQ_D1102LACCDATE.. 所以mdate1:= IBQ_D1102LACCDATE.AsString; 會抓取到 DM_CustFareAcc.IBQ_D1102LACCDATE的值 例如 TTest1 = record a , b :String; end; TTest2 = record a , c :String; end; with Test1, Test2 do begin sData := a; end; 則sData會存入 Test2.a的值... 指定Test1.a則才會抓到 Test1.a的值... 小弟才疏學淺.獻醜如有疏漏歡迎指教..回答兩位的疑問 DM_CustFareAcc.IBQ_D1102NACCDATE 確實存在! DM_CustFareAcc.IBQ_D1102NACCDATE 只存在於 DM_CustFareAcc 中, 我都檢查過了, 而且上面我提到的四個欄位, 只有這個是失效的, 如果是兩個DM都存在的話, 不應該是這樣的結局, 怪異吧! 其實之前我也遇到過這樣的問題, 後來也是直接指定了事, 我猜想這可能是Delphi5的bug吧!!! |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Don't think it is a bug. with DM_CustFare, DM_CustFareAcc do begin
{...} The compiler should first try to look for particular member in DM_CustFareAcc, if not found then DM_CustFare, if not found then self and raise error otherwise. Perhaps you could try to switch the order of the with... e.g. with DM_CustFareAcc, DM_CustFare do begin, if DM_CustFare should get a higer priority. http://pywong.hk.st
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: Don't think it is a bug. with DM_CustFare, DM_CustFareAcc do begin {...} The compiler should first try to look for particular member in DM_CustFareAcc, if not found then DM_CustFare, if not found then self and raise error otherwise. Perhaps you could try to switch the order of the with... e.g. with DM_CustFareAcc, DM_CustFare do begin, if DM_CustFare should get a higer priority. http://pywong.hk.st果然, 我改成 with DM_CustFareAcc, DM_CustFare do begin 後就沒有出現錯誤了, 感謝 william 兄指教! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |