使用TADOQuery添加数据,代码如下:
with adoQuery do
begin
Connection := adoconnection1; //此链接的是access数据库
SQL.Clear;
SQL.INSERT('insert into test(xid, xname) values(:xid, :xname);');
ParameterByName('xid').DataType := ftInteger;
ParameterByName('xid').Value := 1;
ParameterByName('xname').DataType := ftString;
ParameterByName('xname').Value := Null;
ExecSQL; //出现错误,非法精确度的数值
end;
//测试了,假如为整数类型为空使用,上面的方法,赋值Null OK。说明使用Null作为字段空值无问题。
//深思后从字面上感觉是参数类型的问题,因此将ftString 换成 ftWideString 不好用。
查看了所有的ft..xxx..类型,发现ftMemo,经过测试发现OK. 在access数据的类型为文本或短文本都好用。
网上没有找到上面类似的文章,估计改方案了!
本文介绍使用TADOQuery向Access数据库插入数据时遇到的非法精确度数值错误,并给出了解决方案。通过调整字符串类型参数,成功解决了NULL值插入问题。
2408

被折叠的 条评论
为什么被折叠?



