在做添加数据的时候,“商品单位”这个字段的值居然写不进数据内,但系统又没有任何出错的提示,并且其它的字段都能成功写入,在翻查数据库时,也没发现字段设置有什么问题,百思不得其解,请求各位大神指点迷津。
以下是该段代码: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;
以下是该段代码: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;
解决方案 »
- 600分悬赏高难度问题。需要顶级选手解答,低手免進。
- 一个难者不会,会者不难的问题
- 如何从另一台机得知局域网内的电脑通过代理服务器连接的internet或收发电子邮件?
- 如何定位一个字符串在另一个字符串中的位置?在线等待
- 在线等待!用SaveDialog存文件时,如何让对话框不显示出来?参与者都有分!!!!
- 多线程程序运行时死掉了(主窗体响应不了消息,新线程也不再工作)
- 報表央縣示!(20)
- 如何将数组清空?
- 我想做一个注册表编辑器?
- 大虾请帮忙!一个图文混排系统的解决方案
- 运行 .ocx 的 ActiveX 插件在IE浏览器运行时,提示 Invalid variant operation,求前辈指教!!!
- 求助:Delphi xe10安卓环境搭建问题
在ExecSQL;之前增加一句:
memo2.lines.add(sql.text);
自己增加一个memo2控件,运行后贴出memo2中的sql语句,就知道哪里的问题了。
这种办法很适用检查错误。另外,其他的就应该是1#所说的字段长度问题了,或者edit的序号对应问题了。
close;
sql.clear;
sql.add();
sql.execsql;
end;
把clear加上
2、Edit5.Text换成一个固定值试试,比如“测试单位”。
showmessage(Edit5.text);
执行检查是否Edit5.tex无字符。
2、跟踪一下,到这行时,Edit5.text的值是什么
先弄清楚这些,告诉我们