請問如何將空值帶入虛擬的欄位中 |
尚未結案
|
Fen
一般會員 ![]() ![]() 發表:18 回覆:17 積分:7 註冊:2003-10-20 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
l630521
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
yachanga
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
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 發送簡訊給我 |
|
Fen
一般會員 ![]() ![]() 發表:18 回覆:17 積分:7 註冊:2003-10-20 發送簡訊給我 |
感謝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;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |