从数据类型 varchar 转换为 numeric 时出错.怎么解决

 我来答
mischemeXL
2015-11-21 · TA获得超过280个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:166万
展开全部
首先这个问题涉及到ADO编程。
既然你使用了TADOQUERY控件。说明你应该对这方面有一些了解了。
下面我会和你说下调试的方法和问题出现的原因以及解决方案。
1.调试
当你在adoquery1.ExecSQL;这句设置断点,即鼠标停留在该行,按下F5。
右击选择菜单Debug-Evaluate/Modify弹出对话框,在Expression输入adoquery1.sql.text按下回车
Result将显示该数据的内容。你将得到一条完整的数据库操作语句。
复制该SQL语句,到查询分析器或者PL/SQL中执行。将得到错误原因。
2. 原因
由于你的插入语句使用的是含有引号的值,根据标准SQL语法,理解为字符数组。而你数据库中的表字段是数字类型的。由于数据类型不相符。数据库报错。错误原因即你题目中写到的。
3.解决方案
将SQL语句修改一下,或者修改数据库中的表字段结构。(一般情况表结构不会轻易变动,除非是设计时不合理)
4.优化
关于SQL的优化方案有很多类型。例如你题目中的写法,运行时准确性可以保证,但是效率可以提高。比如将sql的拼写使用绑定变量方式。如果批量使用该语句时,可以多条一起提交。优化的原理是利用数据库自带的缓存,提高效率。
另外,表在设计时竟可能不要使用中文。控件名称多使用一些有意义的变量名。比如InsertQuery,Date,Account.
祝你在使用中得到更快的技术提升。同时代码有很好的可读性。
琼细科1
2015-11-20 · TA获得超过421个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:896万
展开全部
楼上的2位回答明显不靠谱,你插入的最后一个值,对应的列是否数值型的。在插入数值型的列的时候,如果没有值,要么插入0,要么插入null值,插入''就会出现从数据类型 varchar 转换为 numeric 时出错。你其他的列都应该没问题,如果数值的长度够...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式