|
楼主 |
发表于 2020-7-19 20:15:01
|
显示全部楼层
我想楼上的并未理解我的问题。
我的问题是:
数据库中decimal(20, 8)的数据类型在客户端如何输入,不考虑把数据库的decimal改为其他类型。就是怎么能输入12位整数8位小数的数字。
TCurrencyField本质上即是TFloatField,唯一区别是他的字段类型为ftCurrency。
TFloatField的精度是15位,decimal(20,8)的精度是20位,比如在客户端输入123456789012.12345678这个数值,这个数值对decimal(20,8)是合法的,可以直接在数据库中输入。但是TFloatField和TCurrencyField的精度是15位,在保存时会忽略后面超出的位,只把123456789012.123保存到数据库。TCurrencyField和TFloatField我做过测试。
如果手动添加字段,把类型定义为String会有Type mismatch for field '' excepting: String actual: BCD.错误。
如果手动添加字段,把类型定义为Variant,则可以实现,但只限于在adoquery中添加,3层结构中在adoquery中添加一个variant类型字段,再在TClientDataSet中打开DataSet或加入字段时会提示adoquery中variant类型的字段类型未定义。 |
|