快速开发平台(企业版)--获取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)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)
- 仓库管理实战课程(2)-软件背景和...(03.18)
- 仓库管理实战课程(1)-讲师介绍(03.16)