快速开发平台(企业版)--获取SQL SERVER服务器时间
时 间:2013-11-29 14:20:37
作 者:smileyoufu ID:1784 城市:成都
摘 要:在在快速平台中企业版,使“ACCESS前台+SQL SERVR后台”(也就是C/S模式)的多用户模式时,有时候需要使用系统的当前时间,比如记录订单关闭
时间、记录生成时间、记录修改时间,通常情况下,是直接使用NOW()函数直接取得客户端本机的时间赋给程序,然后写入到后台数据库。
正 文:
背景:
在在快速平台中企业版,使“ACCESS前台+SQL SERVR后台”(也就是C/S模式)的多用户模式时,有时候需要使用系统的当前时间,比如记录订单关闭
时间、记录生成时间、记录修改时间,通常情况下,是直接使用NOW()函数直接取得客户端本机的时间赋给程序,然后写入到后台数据库。
课题:
在上述背景下,直接使用NOW()函数带来的课题:可能各个客户端电脑时间不一致,或者有的客户端电脑的时间甚至是错误的。客户端时间不统一带来
的风险:操作的订单的记录时间不是当前的时间、记录生成不是当前时间、资金结算时间不是当前时间、甚至通过直接修改客户端电脑的时间来伪造相应时期的记录……,诸多问题看似小问题,但在实际工作活动中,很容易带来“蝴蝶效应”般的破坏。
对策:
使客户端遵守同一时间标准。比如我们在中国,不管是在哪个省份,都使用北京时间作为标准一样。那么我们在具有前后台(C/S)中时,都以后台数据库的时间为基准,此时不论客户端时间如何修改,都不会影响服务器上的时间。在SQL SERVRE内部,我们可以直接使用GETDATE()函数取得服务器当前时间,但是在客户端却没有直接的方法可以取得,由此我们可以编写一个如下的自定义函数,即可取得SQL SERVER服务器的时间。利用快速平台强大的功能,我们仅需使用一句有效代码即可取得服务器的时间。具体如下:
'函 数 名:GetServerTime()
'作 者:smileyoufu
'用 途:在快速平台中企业版,获取SQL SERVER服务器时间
'调用方法:在原使用 NOW() 函数的地方,写为 GetServerTime() 即可
' 如 debug.?GetServerTime() '即可得到SQL SERVER服务器时间
'创建日期:2013-11-28
'注意事项:'注意:该函数基于快速平台开发,不能直接移植到非快速开发平台的环境下使用。
Function GetServerTime() As Date '获得SQL SERVER服务器时间
Dim rst As Object
Set rst = OpenADORecordset("Select GETDATE() AS sys_Sqlser_time") '主要为这句代码取得了SQL SERVER服务器时间
GetServerTime = rst(0)
rst.Close
Set rst = Nothing
End Function
Access快速开发平台QQ群 (群号:321554481) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)