大虾请教关于数据库保存数据的问题(50分)

  • 主题发起人 主题发起人 LJYY20000102
  • 开始时间 开始时间
L

LJYY20000102

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库名为ZLXHMX(ACCESS)字段名 sjxhsl为数字 双精度型
如下代码当EDIT9里的为整数时可以保存数据,当EDIT9为代整数小数时就提示
"ADOQuery1.Parameters.ParamByName('txhsl').Value:=edit9.Text;"有问题请帮忙看看


ADOQuery1.Close;
ADOQuery1.Sql.Clear ;
ADOQuery1.SQL.Add('insert into ZLXHMX(lrrq,cpmc,cpbh,clmc,clbh,xh,dw,xhsl,cjsl,cjrwd,CJDW,CJDWBH ,jhxhsl,jhXHSLJE,cpdw,ljjhxhsl,SHBZ,sjxhsl)'
+'values(:tlrrq,:tcpmc,:tcpbh,:tclmc,:tclbh,:txh,:tdw,:txhsl,:tcjsl,:tcjrwd,:TCJDW,:TCJDWBH ,:tjhxhsl,:tjhXHSLJE,:tcpdw,:tLJjhxhsl,:TSHBZ,:tsjxhsl)');
ADOQuery1.parameters.ParamByName('tlrrq').value :=edit17.Text ;
ADOQuery1.parameters.ParamByName('tcpmc').value :=edit11.text;
ADOQuery1.Parameters.ParamByName('tcpbh').Value :=edit13.Text;
ADOQuery1.Parameters.ParamByName('tclmc').Value :=edit22.text;
ADOQuery1.parameters.ParamByName('tclbh').value :=edit15.text;
ADOQuery1.parameters.ParamByName('txh').value :=ComboBox4.Text;
ADOQuery1.parameters.ParamByName('tdw').value :=edit16.text;
ADOQuery1.Parameters.ParamByName('txhsl').Value:=edit9.Text;
ADOQuery1.parameters.ParamByName('tcjsl').value :=edit23.text;
ADOQuery1.Parameters.ParamByName('tcjrwd').Value :=edit10.TeXT;
ADOQuery1.parameters.ParamByName('TCJDW').value :=edit20.text;
ADOQuery1.Parameters.ParamByName('TCJDWBH').value:=edit25.TeXT;
ADOQuery1.Parameters.ParamByName('tcpdw').value:=edit14.TeXT;
ADOQuery1.Parameters.ParamByName('tjhxhsl').value:=ADOQuery3.fieldbyname('clyl').Value ;//计划单位消耗材料定额
// round(WGCPXHJE/SL*100)/100
//CCCC7:real;//完工产品成本 ---合计
ADOQuery1.Parameters.ParamByName('tsjxhsl').value:=round(strtoint(edit9.Text)/strtoint(edit23.Text)*100)/100;
ADOQuery1.Parameters.ParamByName('tljjhxhsl').value:=(EDIT23.Text*ADOQuery3.fieldbyname('clyl').Value) ;//累计计划单位消耗材料定额
//ADOQuery1.Parameters.ParamByName('tjhXHSLJE').value:=ADOQuery3.fieldbyname('clylje').Value ; //计划单位消耗材料金额
ADOQuery1.Parameters.ParamByName('TSHBZ').value:=ComboBox2.Text ; //材料消耗是否结转进产品的标志
ADOQuery1.ExecSQL;
 
大侠:帮忙呀!我急着解决这个问题
 
edit9.Text的数据类型是字符型
你需要转换一下:STRTOFLOAT(EDIT9.TEXT)
 
还是不行我在EDIT9.TEXT中输入1111.12 保存数据时提示"1111.12 IS NOT A RALID INTEGER VALUE"错误
 
不好意思上面错误提示输错拉应是 我在EDIT9.TEXT中输入1111.12 保存数据时提示"1111.12 IS NOT A VALID INTEGER VALUE"错误
 
是不是你把Parameter的类型设置成Integer了呢
 
Parameter的类型设置成value
 
你是不是这样呢?
ADOQuery1.Parameters.ParamByName('txhsl').Value:=strtofloat(edit9.Text);
 
急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
ADOQuery1.parameters.ParamByName('tlrrq').AsString :=edit17.Text ;
ADOQuery1.parameters.ParamByName('tcpmc').AsString :=edit11.text;
ADOQuery1.Parameters.ParamByName('tcpbh').AsString :=edit13.Text;
ADOQuery1.Parameters.ParamByName('tclmc').AsString :=edit22.text;
ADOQuery1.parameters.ParamByName('tclbh').AsString :=edit15.text;
ADOQuery1.parameters.ParamByName('txh').AsString :=ComboBox4.Text;
ADOQuery1.parameters.ParamByName('tdw').AsString :=edit16.text;
ADOQuery1.Parameters.ParamByName('txhsl').AsFloat := StrToFloat(Trim(edit9.Text));
ADOQuery1.parameters.ParamByName('tcjsl').AsString :=edit23.text;
ADOQuery1.Parameters.ParamByName('tcjrwd').AsString :=edit10.TeXT;
ADOQuery1.parameters.ParamByName('TCJDW').AsString :=edit20.text;
ADOQuery1.Parameters.ParamByName('TCJDWBH').AsString :=edit25.TeXT;
ADOQuery1.Parameters.ParamByName('tcpdw').AsString :=edit14.TeXT;
 
Johnny_du:
你好!
如下ADOQuery1.parameters.ParamByName没有 "AsString"和" AsFloat"这些属性只有"value"这个属性可选
ADOQuery1.parameters.ParamByName('tdw').AsString :=edit16.text;
ADOQuery1.Parameters.ParamByName('txhsl').AsFloat := StrToFloat(Trim(edit9.Text));
 
确定你的存储过程中的参数类型为Currency 或Float都可以
ADOQuery1.Parameters.ParamByName('txhsl').Value:=StrToCurr(Trim(edit9.Text));"
ADOQuery1.Parameters.ParamByName('txhsl').Value:=StrToFloat(Trim(edit9.Text));"
 
superego:
你好!
我的数据库是ACCESS
txhsl字段为 sjxhsl为数字 双精度型
 
忘说了:用你告诉我的方法还是提示""1111.12 IS NOT A RALID INTEGER VALUE"错误
 
这个问题就没办法解决吗?
 
这个问题就没办法解决吗?
 
这个问题就这么难
 
这个问题就这么难吗
 

Similar threads

后退
顶部