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

Recordset 的null 值問題

尚未結案
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-22 14:27:19 IP:202.82.xxx.xxx 未訂閱
例如: showMessage(adotable2.Recordset.Fields[2].value); 如果Fields[2] 在database 的值是空字串,便會出現Invalid variant type conversion. 請問如何偵測fields[2] 的value 是空字串? 我用以下的code 好像不行 if (adotable2.Recordset.Fields[2].value = '') then showMessage('testing') else showMessage('testing2'); 結果是會出現"testing2", 但實際上.我在database 的fields[2] 是空字串. 還有一個問題, adotable2.Recordset.Fields[2].value 和 adotable2.Fields[2].asVariant 有什麼分別? 發表人 - tidal 於 2004/12/22 14:34:59
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-22 14:52:03 IP:211.21.xxx.xxx 未訂閱
Hi, 您可以使用 adotable2.Recordset.Fields[2].asString 將資料強制轉型。
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-22 14:52:10 IP:202.62.xxx.xxx 未訂閱
您好﹗    改成如下試試﹕
if (adotable2.Recordset.Fields[2].value = Null) then 
  showMessage('testing')
else 
  showMessage('testing2');
Value可代表任何的資料形態﹐如回傳值為1﹐其即認定為Integer等數字形態﹐回傳值為'Text'﹐其即認定為String等字串形態﹒﹒﹒ AsVariant代表將資料轉成Variant變型資料形態 ========================= 我是您的朋友﹐有您真好﹗ =========================
------
忻晟
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-22 15:03:43 IP:211.21.xxx.xxx 未訂閱
if (adotable2.Recordset.Fields[2].value = Null) 如此,當adotable2.Recordset.Fields[2].value <> null 時,會發生不同型態比對的錯誤。宜改為if (adotable2.Recordset.Fields[2].asString = '')
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-22 15:30:24 IP:203.95.xxx.xxx 未訂閱
Hi, 建議你改用 delphi 封裝好的 Fields 來存取會方便的多, 如 if ADOTable1.Fields[2].IsNull ....
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-23 09:38:04 IP:219.80.xxx.xxx 未訂閱
你好
    補充一個方式。
  if VarIsNull (Test.Recordset.Fields.Item ['data'].Value) then
    ShowMessage ('Null')
  else
    ShowMessage ('not Null')
kenspc
一般會員


發表:1
回覆:20
積分:4
註冊:2004-12-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-23 10:34:48 IP:61.6.xxx.xxx 未訂閱
使用TField的IsNull方法就行了. if (adotable2.Recordset.Fields[2].IsNull) then showMessage('testing') else showMessage('testing2');
系統時間:2024-05-18 5:38:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!