快速开发平台(企业版)--获取SQL SERVER服务器时间-福哥
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access开发平台


快速开发平台(企业版)--获取SQL SERVER服务器时间

发表时间:2013/11/29 14:20:37 评论(6) 浏览(7143)  评论 | 加入收藏 | 复制
   
摘 要:在在快速平台中企业版,使“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群(群号:198465573)
 
 相关文章
企业版如何连接INTERNET中的SQL服务器  【李双军  2008/10/6】
在MDB中获取sqlserver服务器时间  【竹笛  2010/1/11】
access开发平台企业版读取服务器时间  【一杯绿茶  2010/11/24】
【access源码示例】获取局域网中指定电脑上的时间\获取服务器时...  【红尘如烟  2012/3/1】
《检修整备信息平台》快速开发平台(企业版)开发心得  【林岚  2013/10/9】
【调价信息】盟威平台企业版将于12月1号上调售价--已调整  【麥田  2013/11/30】
常见问答
技术分类
相关资源
文章搜索
关于作者

福哥

文章分类

文章存档

友情链接