請教『無法識別的錯誤』 |
尚未結案
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
請教各位先進
小弟在處理下面程式碼時,發生無法識別的錯誤
資料庫是MSSQL,資料表為MASTER-DETAIL
procedure TSale.tempExit(Sender: TObject); begin DM.Tmp.Close; DM.Tmp.SQL.Clear; DM.Tmp.SQL.Add('select * from sale110 where sale_no=''' DBEdit1.Text ''''); DM.Tmp.Open; if length(temp.Text) = 11 then begin if DM.Tmp.Locate('product_no',temp.Text,[]) then begin showmessage('產品編號重複'); temp.Text:=''; end else begin DM.Sale110.Append; DM.Sale110.FieldByName('product_no').Value:= temp.Text; DM.Sale110.FieldByName('product_num').Value:= 1; temp.Text:=''; temp.SetFocus; end; end else if length(temp.Text) = 6 then begin DM.Sale100.Edit; DBEdit3.Text:= temp.Text; temp.Text:=''; temp.SetFocus; end; end;其錯誤是在紅色部分產生的 之前出現這ㄍ錯誤是因為DETAIL資料表的KEY沒設好 但這次真的不知道為何產生此問題?? 所以請教各位前輩 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 先問一下, temp的Text值是從哪里取得的? 如果确定資料表的Key設定沒有問題, 請仔細檢查一下資料表中對應欄位('product_no')有無寫錯(与程式碼中的欄位名稱有誤差), 其欄位形態是否為字串形態(String). 還有一個需要注意的地方, 如同hagar版主的回复, 雖然和您目前的問題無關, 但是盡量使用AsString的方法來指定形態會比較好, 其還有一個特性可將Null值自動轉為空字串, 因為在資料異動作業時, 使用Value時, 若值為Null, 資料表可能會出錯. 參考看看! =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
if length(temp.Text) = 11 then
這樣做判斷如果temp.Text 如果是11各空白也會觸發,造成'product_no'為空值,
建議改為if trim(temp.Text) = 11 then 來做看看..
另外DM.Sale110.FieldByName('product_no').Value:= temp.Text;
改為
DM.Sale110.FieldByName('product_no').AsString:= Trim(temp.Text);
底下之
if length(temp.Text) = 6 then 如同...
TRY TRY SEE...
引言: 您好 我TEMP TEXT 的值是由條碼機取得 條碼機讀取時會將資料讀入並做enter的動作 故將事件寫在temp.exit |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |