delphi数据修改语句中数据类型转换有关问题?
delphi数据修改语句中数据类型转换问题??
数据库字段: 实发量 float ,单价 money
delphi修改语句:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update clxhd set 单价='#39+edit8.Text+#39',
+ ' 实发量=''#39+edit7.Text+#39'' '
+' where clb_id='#39+edit9.Text+#39' ' ;
ADOQuery1.ExecSQL;
程序运行修改的时候出错信息:将截段字符串或二进制数据~!
主要问题就是类型转换问题:如何把字符类型转换为浮点类型或money类型?才能修改的时候不出错!
------解决方案--------------------
Sorry,我搞错了。
try
edit8.Text := Trim(edit8.Text);
StrToFloat(edit8.Text);
except
ShowMessage('请输入合法的单价');
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update clxhd set 单价='#39+edit8.Text+#39',
+ ' 实发量=''#39+edit7.Text+#39'' '
+' where clb_id='#39+edit9.Text+#39' ' ;
ADOQuery1.ExecSQL;
------解决方案--------------------
edit7\8\9 其中一个编辑框内的数据长度超过了数据库字段的长度。
试试:
Sql中的内容,必然是字符串,所以1楼兄弟的代码编译器不会通过。
数据库字段: 实发量 float ,单价 money
delphi修改语句:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update clxhd set 单价='#39+edit8.Text+#39',
+ ' 实发量=''#39+edit7.Text+#39'' '
+' where clb_id='#39+edit9.Text+#39' ' ;
ADOQuery1.ExecSQL;
程序运行修改的时候出错信息:将截段字符串或二进制数据~!
主要问题就是类型转换问题:如何把字符类型转换为浮点类型或money类型?才能修改的时候不出错!
------解决方案--------------------
Sorry,我搞错了。
try
edit8.Text := Trim(edit8.Text);
StrToFloat(edit8.Text);
except
ShowMessage('请输入合法的单价');
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=' update clxhd set 单价='#39+edit8.Text+#39',
+ ' 实发量=''#39+edit7.Text+#39'' '
+' where clb_id='#39+edit9.Text+#39' ' ;
ADOQuery1.ExecSQL;
------解决方案--------------------
edit7\8\9 其中一个编辑框内的数据长度超过了数据库字段的长度。
试试:
ADOQuery1.SQL.Text:=' update clxhd set 单价=:price, 实发量=:relcount where clb_id=:clbid' ;
ADOQuery1.Parameters.ParamByName('price').Value := trim(edit7.text);
ADOQuery1.Parameters.ParamByName('relcount').Value := trim(edit8.text);
ADOQuery1.Parameters.ParamByName('clbid').Value := trim(edit9.text);
Sql中的内容,必然是字符串,所以1楼兄弟的代码编译器不会通过。