用ClientDataset连接Sybase数据库,打开一个表,此表中有字段是numeric类型的,映射道Delphi中就是float类型的。修改numeric类型字段的数据后,用ApplyUpdates提交后,会产生异常:浮点数到Numeric类型隐式转换错误。原因是Sybase中浮点数不能直接赋值给numeric类型的字段,需要在SQL语句前加设置:set arithabort numeric_truncation off。请各位大侠帮忙!正确的答案都给分,有帮助的建议也给分!

解决方案 »

  1.   

    最简单的方法:ClientDataset.FieldByName().AsFloat
    再进行计算!
      

  2.   

    不行的。因为Sybase默认是不允许Float到numeric的直接转换的,而Delphi中没有numeric这种数据类型,所以才会出问题。有什么办法可以设置数据库的连接属性吗?
      

  3.   

    我想请问一下
    我也是用sybase的数据库
    但是在用ado写插入的时候报错:‘提供者或其它服务返回E_FAIL状态。’
    请问是怎么回事啊
      

  4.   

    还想请教一下你是用ClientDataset直接连接sybase数据库的吗
    不要配置odbc么?
      

  5.   

    to hjf8086: 第一个问题我没碰到过。第二个问题ODBC 要配的