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

請問如何將空值帶入虛擬的欄位中

尚未結案
Fen
一般會員


發表:18
回覆:17
積分:7
註冊:2003-10-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-31 16:14:32 IP:61.219.xxx.xxx 未訂閱
tableDetail.Active := False; tableDetail.SQL.Clear; tableDetail.SQL.Add('Select * , :Para2 as CfmDate7 , :Para3 as CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice = :Para1'); tableDetail.Parameters.ParamByName('Para1').Value := StrToInt (txtIssueNotice.Text); tableDetail.Parameters.ParamByName('Para2').Value := ''; tableDetail.Parameters.ParamByName('Para3').Value := ''; tableDetail.Active := True; 各位大大: 我在虛擬欄位中CfmDate7 CfmDate8要塞入空值,應該如何做呢? 我程式這樣寫,會出現'提供不一致或不完全資訊,導致參數物件不適當的被拒',請各位大大幫忙看一下該如何改?
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-31 16:23:57 IP:219.68.xxx.xxx 未訂閱
tableDetail.Active := False;
tableDetail.SQL.Clear;
tableDetail.SQL.Add('Select * , :Para2 as CfmDate7 , :Para3 as 
CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice = :Para1');
tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text);
tableDetail.Parameters.ParamByName('Para2').Value := Nil;
tableDetail.Parameters.ParamByName('Para3').Value := Nil;
tableDetail.Active := True;
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-31 17:23:34 IP:211.74.xxx.xxx 未訂閱
Parameter can't put there Suggest as following:    tableDetail.Active := False; tableDetail.SQL.Clear; tableDetail.SQL.Add('Select * , '''' as CfmDate7 , '''' as  CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice  = :Para1'); tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text); tableDetail.Active := True;    ~悠遊法國號~
Fen
一般會員


發表:18
回覆:17
積分:7
註冊:2003-10-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-31 17:39:15 IP:61.219.xxx.xxx 未訂閱
2位大大:     我用geniustom大大的方法,會出現'[Error] MainUnit1.pas(590): Incompatible types: 'Variant' and 'Pointer''    用yachanga大大的方法,會有錯誤訊息,如附圖,該怎麼辦呢?< src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=14840908&CC=331912">
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-31 18:02:32 IP:210.66.xxx.xxx 未訂閱
geniustom可能是手誤 tableDetail.Active := False; tableDetail.SQL.Clear; tableDetail.SQL.Add('Select * , :Para2 as CfmDate7 , :Para3 as CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice = :Para1'); tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text); tableDetail.Parameters.ParamByName('Para2').Value := Null; tableDetail.Parameters.ParamByName('Para3').Value := Null; tableDetail.Active := True; 用Null試看看! Ian
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-01 00:10:58 IP:203.204.xxx.xxx 未訂閱
Fen 你好
tableDetail.Active := False;
tableDetail.SQL.Clear;
// 以下三種依需求任選一種
tableDetail.SQL.Add('Select * , '' '' as CfmDate7 , '' '' as 
CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice 
= :Para1'); // 給予' ' 代表一個字元寬的欄位,若兩個字元寬則再多加一個空白
tableDetail.SQL.Add('Select * , 0 as CfmDate7 , 0 as 
CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice 
= :Para1'); // 給予0 代表整數型態欄位
tableDetail.SQL.Add('Select * , 0.0 as CfmDate7 , 0.0 as 
CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice 
= :Para1'); // 給予0.0 代表浮點數型態欄位
tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text);
tableDetail.Active := True;
發表人 - chance36 於 2004/04/01 00:13:16
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-01 00:27:47 IP:61.230.xxx.xxx 未訂閱
Fen 您好    我誤解了你欄位型態  由錯誤訊息 您的欄位應該是 DateTime tableDetail.Active := False; tableDetail.SQL.Clear; tableDetail.SQL.Add('Select * , null as CfmDate7 , null as CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice = :Para1'); tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text); tableDetail.Active := True; 如果整數或浮點數可參考 Chance36 大大所寫 另外你試用DELPHI 5 嘛?? Delphi 裡面的 Null, Delphi 6 好像會換成Nil... So會出現'[Error] MainUnit1.pas(590): Incompatible types: 'Variant' and 'Pointer'' ~悠遊法國號~
Fen
一般會員


發表:18
回覆:17
積分:7
註冊:2003-10-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-02 09:37:36 IP:61.219.xxx.xxx 未訂閱
各位大大的方法我都試過了,如果用null,錯誤會跟我上面附的圖依樣,只是第二行actual:string ;如果用0,第二行actual:integer ;如果用0.0,第二行actual:bcd;用'' '',第二行actual:string 。    怎麼辦啊?? 
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-02 12:50:10 IP:210.68.xxx.xxx 未訂閱
可否請教您的資料庫為何??        ~悠遊法國號~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-02 13:14:02 IP:219.129.xxx.xxx 未訂閱
Fen你好:试试
引言: tableDetail.Active := False; tableDetail.SQL.Clear; tableDetail.SQL.Add('Select * , :Para2 as CfmDate7 , :Para3 as CfmDate8 from MoldIssueNoticePartsDetail Where IssueNotice = :Para1'); tableDetail.Parameters.Items[0].DataType :=ftinteger tableDetail.Parameters.ParamByName('Para1').Value := StrToInt (txtIssueNotice.Text); tableDetail.Parameters.Items[1].DataType :=ftinteger //改相应字段类型 tableDetail.Parameters.ParamByName('Para2').Value :=null; tableDetail.Parameters.Items[2].DataType :=ftinteger//改相应字段类型 tableDetail.Parameters.ParamByName('Para3').Value := null; tableDetail.Active := True; 各位大大: 我在虛擬欄位中CfmDate7 CfmDate8要塞入空值,應該如何做呢? 我程式這樣寫,會出現'提供不一致或不完全資訊,導致參數物件不適當的被拒',請各位大大幫忙看一下該如何改?
——行径窄处,留一步与人行—— 發表人 - deity 於 2004/04/02 13:15:27
Fen
一般會員


發表:18
回覆:17
積分:7
註冊:2003-10-20

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-02 13:37:02 IP:61.219.xxx.xxx 未訂閱
我的資料庫是msSQLServer,用的是delphi5!
Fen
一般會員


發表:18
回覆:17
積分:7
註冊:2003-10-20

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-04-02 13:47:37 IP:61.219.xxx.xxx 未訂閱
感謝deity大大:     承蒙您的方法,我已經試出來了,真是太感謝了。以下是我的程式碼,給大家參考: tableDetail.Active := False;                 tableDetail.SQL.Clear;                 tableDetail.SQL.Add('Select * , :Para2 as CfmDate7 ,:Para3 as CfmDate8  from MoldIssueNoticePartsDetail Where IssueNotice = :Para1');                 tableDetail.Parameters.ParamByName('Para1').Value := StrToInt(txtIssueNotice.Text);                 tableDetail.Parameters.ParamByName('Para2').DataType :=ftDateTime ;                 tableDetail.Parameters.ParamByName('Para2').Value := null;                 tableDetail.Parameters.ParamByName('Para3').DataType :=ftDateTime ;                 tableDetail.Parameters.ParamByName('Para3').Value := null;                 tableDetail.Active := True;
系統時間:2024-07-07 7:15:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!