delphi调用TADOStoredProc保存数据的问题
delphi调用TADOStoredProc保存数据,动态赋值,在对应mssql里面numeric(18,6)类型时,Parameters[1].DataType := ftBCD,但是用事件探查器跟踪出来的结果,是全是带$的四位小数,我把EnableBCD = False,还是一样。
另外我用TADOStoredProc静态的来加载参数,设置同上面描述的,Parameters里面的value的type属性自动变成Currency ,不可以改变,但是偶尔type是空的时候,就可以是没有$的小数,而且位数可以自己控制。只要变成Currency以后可就再也改不掉了,也不允许为空了。除非重新加载所有的参数。
我也想着把Parameters[1].DataType := ftfloat,这样的话,不论怎么样,传递过去的都是浮点型,小数位数也是无法控制的。
请问:1、如何能不显示$符号,我想通过NumericScale来设置想要保留的小数位数。
2、怎么能不是4位小数。而是自己可以控制。
谢谢
[解决办法]
本人从未使用过 TADOStoredProc , 因为我觉得Parameters相当麻烦.
假设一个SQL Procedure 如 Proc_abc (a int, b varchar)
我就情愿写成
adoquery1.text:= 'exec proc_abc '+ inttostr(1)+','+QuotedStr(Edit1.Text);
adoquery1.execsql;
[解决办法]
如果像我在一楼写的那样拼SQL语句, 你可以像下面那样传STRING
Format('%8.2f',[AValue]) // AValue 是一个Double类型数据