如何取得尚未塞入值給ADOStoredProc.Parameters |
尚未結案
|
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
小弟想要知道如何判別尚未傳給ADOStoredProc.Parameters值??
var
i:integer;
begin for i:0 to ADOStoredProc1.Parameters.Count-1 do
if ADOStoredProc1.Parameters[i].Value=Unassigned then
\\ADOStoredProc1.Parameters[i].Value:=某值 end; 小弟本來是用上面這段寫法,結果發現當Parameters為integer的時候,若先前有給0的值或是為string的型態給予空白,都會符合Unassigned,這樣無法判斷起,有其他方式嗎??? 發表人 - IVANKUO 於 2004/03/12 14:36:50
------
ivankuo |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
terrychen前輩
我有試過了,Unassigned<>Null ,所以尚未給值得就會跳過了 if ADOStoredProc1.Parameters[i].Value=NULLthen 又不能
if (ADOStoredProc1.Parameters[i].Value=NULL)
and (ADOStoredProc1.Parameters[i].Value=unassigned) then 或是
if (ADOStoredProc1.Parameters[i].Value=NULL) or
((ADOStoredProc1.Parameters[i].Value<>NULL)
and (ADOStoredProc1.Parameters[i].Value=unassigned)) then 都不行,難道要特別另外處裡??
------
ivankuo |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi ivankuo, 我還不是很清楚你的需求,不過基本上 terrychen 大大的用法是正確的,應該由邏輯觀念著手,亦即你如何來看 Null 與 Unassigned 如同你所言,Unassigned <> Null,Parameters 為 Integer 的時候,若先前有給 0 的值或是為 String 的型態給予空白,都會符合 Unassigned
也就是說 ADOStoredProc1.Parameters[0].Value := 0; --> ADOStoredProc1.Parameters[0].Value = Unassigned
ADOStoredProc1.Parameters[1].Value := ''; --> ADOStoredProc1.Parameters[1].Value = Unassigned
ADOStoredProc1.Parameters[2].Value := Null; --> ADOStoredProc1.Parameters[2].Value = Null
ADOStoredProc1.Parameters[3].Value := 'xxx'; --> ADOStoredProc1.Parameters[3].Value <> Unassigned,ADOStoredProc1.Parameters[3].Value <> Null 如果你認定 Unassigned 視同已經給值,用 terrychen 大大的用法即可
if ADOStoredProc1.Parameters[i].Value = NULL then ....若 Unassigned 視同未給值,用以下寫法 if (ADOStoredProc1.Parameters[i].Value = NULL) or (ADOStoredProc1.Parameters[i].Value = Unassigned) then ....---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
ivankuo
中階會員 發表:132 回覆:272 積分:95 註冊:2002-11-21 發送簡訊給我 |
感謝兩位前輩指導
小弟是發覺當ADOStoredProc1.Parameters[i].Value:=Unassigned的時候,ADOStoredProc是不允許的,會出現Parameters[i].name not supported ,若是ADOStoredProc1.Parameters[i].Value:=0或是空白,是可以的,Unassigned的認知看來在ADOStoredProc中,我想應該是未給值,只是等於0或空白也視同Unassigned,這就有點奇怪了,但若是同已給值不就表示Unassigned=已給值??
這樣不是很奇怪嗎??,不過我已經另外的功夫去處理判斷問題,也達到我要的,只是比較麻煩吧。
------
ivankuo |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |