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

請問如何判斷出正確的sql2000的空值

答題得分者是:supman
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-05 11:08:48 IP:202.175.xxx.xxx 未訂閱
 
 var mhtl_bill_lading :string;
........  
  mhtl_bill_lading := SO_Q1.FieldByName('mhtl_bill_lading').AsString;//SQL SERVER 是空值時
  showmessage(mhtl_bill_lading);
  if mhtl_bill_lading = '' then
  begin
    QR_BILL_LADING_L.Caption := 'REQUIRED';//應等於這個
  end
  else
  begin
    QR_BILL_LADING_L.Caption := 'NOT REQUIRED';//但却只會顯示這個
  end;
  showmessage(QR_BILL_LADING_L.Caption);
請問如何得出判斷出正確的空值 謝謝解答
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-05 11:21:49 IP:203.204.xxx.xxx 未訂閱
您好: 照理講空值與Null回來都是'',不曉得是什麼問題,改成以下試試:
if SO_Q1.FieldByName('mhtl_bill_lading').IsNull then
 begin
  QR_BILL_LADING_L.Caption := 'REQUIRED';//應等於這個
 end
 else begin
  QR_BILL_LADING_L.Caption := 'NOT REQUIRED';//但却只會顯示這個
 end;
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-05 11:37:19 IP:202.175.xxx.xxx 未訂閱
問題還是存在 這問supman大大.會不會是table有所限制呢. 在server得出是isnull真是空值 會不會是server問題呢? 其它空值沒問題.真是很奇怪. 因為他好像是永遠有資料似的 不論有沒有資都是一樣......
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-05 11:51:32 IP:203.204.xxx.xxx 未訂閱
您好: 這樣真是怪怪的,該不會您那欄有空白的值吧? 下一段這樣看看 select isnull(欄位,'沒有值') from tabel 如果他是null就會傳回沒有值,如果不是出現沒有值,就表示裡面有資料. 或者把SQL改成: select isnull(欄位,'') from tabel 再放到程式看看. 發表人 - supman 於 2005/05/05 11:53:53
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-05 12:10:18 IP:202.175.xxx.xxx 未訂閱
 
  sql.Text := 'select * from mhsodmas where sorder_id=:sorder_id';
      ParamByName('sorder_id').Value := sorder_id_Edit1.Text;
      open;       SQL.Text:='select isnull(MHTL_Bill_LAding,'') from mhsodmas';
  Open;    
出現 missing right quote 同時想請教supman sql.text 和 sql.add()有沒有分別. 在這看過一段文章有說sql.add()是有限制文字. 我只想知大家的功能是不是一樣的.謝謝回答
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-05 14:09:08 IP:202.175.xxx.xxx 未訂閱
supman真不好意思 我一時看錯 是沒有null的值 應該是有個空白值在裡面 這請問是什麼原因會產生這樣的效果.
cashxin2002
版主


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-05 14:21:36 IP:202.62.xxx.xxx 未訂閱
您好﹗    missing right quote的錯誤信息是指缺少引號﹐將SQL改成如下﹕ SQL.Text:='select isnull(MHTL_Bill_LAding,'''') from mhsodmas'; 以上紅色和藍色的引號均為單引號﹐原因是字串加入到同樣為字串形態的SQL語句中﹐需要在左右各加一個引號用﹒ SQL.Add()和SQL.Text雖然都是指定SQL的屬性內容﹐但還是有一些區別的﹐描述如下﹕ SQL.Add()是一種方法﹐其將Add后的字串加入到現有的SQL語法之后﹐比如說目前SQL屬性中有'Select * From 資料表'這句SQL敘述﹐當下達Add('Where 欄位1 <> 0')時﹐SQL屬性值就變成'Select * From 資料表 Where 欄位1 <> 0'了﹐所以我們如果使用Add()的方法賦予新的SQL敘述﹐通常會在Add()方法之前加上SQL.Clear的方法來清空目前SQL屬性中已有的字串敘述﹒ SQL.Text是一種屬性﹐其可直接指定SQL的字串內容﹐并覆蓋掉目前SQL屬性中已有的SQL敘述字串﹐所以在指定之前﹐不需要用SQL.Clear方法來清空SQL屬性內容﹒ 一般來講﹐使用SQL.Add()方法或者是直接指定SQL.Text屬性﹐在單行的敘述中不要超過255個字節﹒Add()方法可用多行來追加﹐而Text屬性可用組字串的方法來解決﹐如下﹕ SQL.Text := '敘述1'; SQL.Text := SQL.Text + '敘述2'; 供您參考﹗ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/05/05 14:25:45
------
忻晟
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-05 14:37:53 IP:202.175.xxx.xxx 未訂閱
多謝cashxin2002大大的陳述 請問cashxin2002大大 null的值 和 空白值 有什麼分別 這請問是什麼原因會產生這樣的效果.
cashxin2002
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-05 15:33:40 IP:202.62.xxx.xxx 未訂閱
您好﹗    簡單的說Null就是空值﹐沒有內容﹔而空白值是指零長度的字串﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
figo
初階會員


發表:47
回覆:70
積分:28
註冊:2004-12-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-05 17:48:32 IP:202.175.xxx.xxx 未訂閱
感謝兩位大大回答
系統時間:2024-06-28 23:46:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!