SQL中money类型该怎么处理?(50分)

  • 主题发起人 主题发起人 haozh
  • 开始时间 开始时间
H

haozh

Unregistered / Unconfirmed
GUEST, unregistred user!
在DB控件中其默认显示为人民币
我如果想让它以美元的单位存储
或者涉及到美元和人民币之间的 计算怎么办?
 
用计算字段
 
假如会有浮动汇率的问题, 我建议不用计算字段, 最好分开两字段来存不同的货币, 并以Trigger把用预先订好的兑换率来运算.
 
同意楼上的
 
对不起 我还不太明白

每次用DB控件显示我们存储的Money字段时,都会自动地加上一个‘¥’符号
假如其中若干条记录是以‘$’的形式存储和计算该怎么办呢
难道我还要在旁边提示: 这个‘¥’不算数,实际应该是'$'
太混乱了吧?

erickleung & 栗子 :
你们的意思是:
每次存储一个Money(¥)字段时,再用触发器另外存一个($)进去,以此区分?
但是
该($)显示出来还是带一个'¥'符号阿!
用float 存?

其它朋友还有什么好办法!?
 
Money字段是不会存入'¥', '$'到数据库上. 这些都是按你计算机的国别而定. 只作显
示之用. Money有别於float, 如Access的Money是一个4位小数, 但是用64bit整数运算.
因为但凡用float运算都必有误差, 而Money却要确保这些误差给合乎会计要求.

我的意思是你的程式, 在概念层面上, 每个程序运作应该是用单一种货币, 如以人民币为
标准. 但当需要用其他美元时, 才以当时兑换率来运算. 而每个会计统计期後, 便要统
计出因浮动兑换率而产生的兑换差额. 有些外贸公司有专门户囗时, 就不用这些兑换.
只是在年结时才需要汇总计算.

如果你是用c/s模式, 所有标准的sql server都会有trigger, 便可以替你作上述的运算.
不然你得用你的程式, 在编印发票之时, 计算当时的美金价值和真正人民币值. 以作日
後统计之用.
 
erickleung,
十分感谢!

那我现在应该做的是不是:
加上一个外币字段,
每次涉及到货币字段的处理时,
通过Trigger(编写一个本程序中通用的货币换算的触发器)和灵活的汇率换算出实际的人民币和外币价格,
在需要这些数据时,只要调出需要的价格(人民币or外币)
 
而'¥'符号就不需要管它了
只当它是个点缀而已?
 
外币汇率换算trigger的主要的目的是可以隔离汇率上的差额, 并让管理层如何处理那些
差额. 所以不用凭空想像, 直接询问用户便知何时作那个trigger才是最好.
例如企业多避免同时使用多币值运作, 如他们会有另一份外币值的报价单. 所以在实际运
作时仍是单一种币值. 只是让其会计系统来处理实际的换算及定期更新平均兑汇率. 又或
者银行的运作, 他们却是看成为即当日买入和卖出不同的货币. 而我们所说的trigger便是
同时处理这些相关的事务了.

"而'¥'符号就不需要管它了
只当它是个点缀而已?" <---- 是.
 
erickleung, :
谢谢!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部