在做添加資料的時候,“商品單位”這個欄位的值居然寫不進資料內,但系統又沒有任何出錯的提示,并且其它的欄位都能成功寫入,在翻查資料庫時,也沒發現欄位設定有什么問題,百思不得其解,請求各位大神指點迷津。
以下是該段代碼:
procedure TSPRKXX.SpeedButton1Click(Sender: TObject); //商品數量添加
begin
with DM.QSPRK do
begin
Close;
SQL.Add('insert into InStoreProduct(入庫編號,商品編號,商品名稱,所屬類別,商品規格,商品單位,單價,入庫數量,總價,經手人姓名,入庫日期,備注)');
SQL.Add('Values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l)');
Parameters.ParamByName('a').Value:='RK'+Edit1.Text + FormatDateTime('yyyymmdd',Now()); //入庫編號
Parameters.ParamByName('b').Value:=Trim(Edit2.Text); // 商品編號
Parameters.ParamByName('c').Value:=Trim(ComboBox2.Text); // 商品名稱
Parameters.ParamByName('d').Value:=Trim(Edit3.Text); // 所屬類別
Parameters.ParamByName('e').Value:=Trim(Edit4.Text); //商品規格
Parameters.ParamByName('f').Value:=Edit5.Text; //商品單位 就是該欄位寫不進資料庫
Parameters.ParamByName('g').Value:=StrToFloat(Trim(Edit6.Text)); //單價
Parameters.ParamByName('h').Value:=StrToInt(Trim(Edit7.Text)); //入庫數量
Parameters.ParamByName('i').Value:=StrToFloat(Trim(Edit8.Text)); //總價
Parameters.ParamByName('j').Value:=Edit11.Text; //經手人編號
Parameters.ParamByName('k').Value:=StrToDateTime(Trim(Edit10.Text));
Parameters.ParamByName('l').Value:=Memo1.Text; //備注
ExecSQL;
ShowMessage('添加商品數量成功!')
end;
end;
uj5u.com熱心網友回復:
檢查下商答品單位欄位的型別和長度,另edit5.text是否錄入字符。uj5u.com熱心網友回復:
跟別的不一樣,沒有trimuj5u.com熱心網友回復:
建議你采集一下sql陳述句,然后在sql環境運行一下,看看哪里的問題:在ExecSQL;之前增加一句:
memo2.lines.add(sql.text);
自己增加一個memo2控制元件,運行后貼出memo2中的sql陳述句,就知道哪里的問題了。
這種辦法很適用檢查錯誤。
另外,其他的就應該是1#所說的欄位長度問題了,或者edit的序號對應問題了。
uj5u.com熱心網友回復:
1、with DM.QSPRK doclose;
sql.clear;
sql.add();
sql.execsql;
end;
把clear加上
2、Edit5.Text換成一個固定值試試,比如“測驗單位”。
uj5u.com熱心網友回復:
加入一條代碼showmessage(Edit5.text);
執行檢查是否Edit5.tex無字符。
uj5u.com熱心網友回復:
1、資料庫表里的欄位型別是什么?長度多少?2、跟蹤一下,到這行時,Edit5.text的值是什么
先弄清楚這些,告訴我們
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47711.html
標籤:數據庫相關
