知识大全 在C/S体系中设置工作站与服务器的时钟同步

Posted 工作站

篇首语:识字粗堪供赋役,不须辛苦慕公卿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在C/S体系中设置工作站与服务器的时钟同步相关的知识,希望对你有一定的参考价值。

在C/S体系中设置工作站与服务器的时钟同步  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  摘要

  在实际应用中 经常要求客户机/服务器体系结构中各工作站的时钟与服务器的时钟保持同步 本文基于SYBASE数据库 Powerbuilder开发工具说明了一种解决方法

  一 前言

  PowerBuilder通过数据窗口对象 可方便 直接地对数据库进行操作 故已成为当前开发Client/Server模式应用的首选开发工具 在开发医院信息管理系统时 我们采用了PowerBuilder 作为前台开发工具 Sybase作为后台数据库

  医院信息管理系统中 有很多模块都要求工作站的时间与服务器保持同步 如 门诊收费系统要求能均匀地向各司药窗口分派处方 住院药房摆药要根据病房发送医嘱的时间顺序进行等 为解决此问题 我们编写了相应的程序 主要思路是 采用动态游标获取服务器时间 WIN 的API函数设置本机时间 具体实现方法如下

  二 实现方法

   连接数据库

  PowerBuilder支持多种数据库管理系统(DBMS) 如Sybase Oracle Informix Microsoft SQL Server等 根据不同的数据库类型 采用专用接口或ODBC连接数据库 建立接口配置文件(DB Profile)

   创建应用对象 在应用对象事件中编写脚本

   > 应用对象open事件的脚本如下

  startupfile = settime ini   sqlca DBMS= ProfileString (startupfile database dbms )  sqlca database=ProfileString(startupfile database database )  sqlca userid=ProfileString(startupfile database userid )  sqlca dbpass=ProfileString(startupfile database dbpass )  sqlca logid=ProfileString(startupfile database logid )  sqlca logpass=ProfileString (startupfile database LogPassWord )  sqlca servername=ProfileString(startupfile database ervername )  sqlca dbparm= ProfileString (startupfile database dbparm )  connect;  f_setlocaltime() //调用自定义函数完成设置本地工作站时间     > 应用对象Close事件中的脚本如下

  DISCONNECT Using SQLCA;

   定义WIN 的API函数为外部函数

  在Script画笔工作区中 选择Declare > Global External Functions 定义WIN 的API函数为外部函数 定义如下

  FUNCTION LONG SetLocalTime (ref systemtime systimeptr) LIBRARY Kernel dll

   定义存取时间参数的结构

  单击PainterBar或PowerPanel中的Structure Painter按钮 定义一个名为 systemtime的结构 组成结构的变量与对应的数据类型如下

  integer wyear  integer wmonth  integer wdayofweek  integer wday  integer whour  integer wminute  integer wsecond  integer wmillisecond     创建用户自定义函数来完成设置工作站时间

  创建一个名为f_settime的自定义函数 脚本如下

  systemtime s_systime //声明前面已定义结构类型的变量  datetime nettime  declare cur_time dynamic cursor for sqlsa; //声明动态游标  prepare sqlsa from select getdate() ;  open dynamic cur_time ;  fetch cur_time into :nettime; //通过数据库获取服务器时间  close cur_time;  s_systime wmonth=month(date(nettime))  s_systime wday=day(date(nettime))  s_systime wyear=year(date(nettime))  s_systime whour=hour(time(nettime))  s_systime wminute=minute(time(nettime))  s_systime wsecond=second(time(nettime))  s_systime wmillisecond=   SetLocalTime(s_systime) //调用WIN API函数 设置工作站时间      创建可执行应用程序

  在PowerBar或PowerPanel中单击Project按钮打开Project Painter Select Project对话框出现 单击New创建一个新的工程对象 输入可执行程序名(如 settime exe) 单击OK 然后单击build 即可创建可执行文件

   将可执行程序安装至各工作站

  将生成的可执行程序(如 settime exe)放入各工作站的Windows的启动菜单 即可在每次启动Windows时 工作站自动根据服务器时间校正本机时间

  三 结束语

cha138/Article/program/SQL/201311/16287

相关参考

知识大全 在DBGrid中设置不滚动的列及复制与粘贴[1]

在DBGrid中设置不滚动的列及复制与粘贴[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 在DBGrid中设置不滚动的列及复制与粘贴[2]

在DBGrid中设置不滚动的列及复制与粘贴[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n

知识大全 如何在EXCEL中设置一组数据的最大值与最小值之差的绝对值

如何在EXCEL中设置一组数据的最大值与最小值之差的绝对值?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

根据MKV控制系统的设计,在逻辑强置画面,可以显示(C)、(S)、()核的数据值。

根据MKV控制系统的设计,在逻辑强置画面,可以显示(C)、(S)、()核的数据值。A、(I)B、(R)C、(CD)D、(T)参考答案:BD

根据MKV控制系统的设计,在逻辑强置画面,可以显示(C)、(S)、()核的数据值。

根据MKV控制系统的设计,在逻辑强置画面,可以显示(C)、(S)、()核的数据值。A、(I)B、(R)C、(CD)D、(T)参考答案:BD

知识大全 在ASP.NET中设置母版页

在ASP.NET中设置母版页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 c#.net在WEB页中设置COOKIES

c#.net在WEB页中设置COOKIES  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在WE

逆时钟曲线的典型形态

逆时钟曲线的典型形态1、上升局面股价随着成交量的增加而增加,逆时针方向曲线的走势由下向右或向上转动2、下降局面量价同步下降,逆时钟方向曲线走势由平转下或右上方朝左转动3、循环局面量价是同步上升,后同步

知识大全 C中设置oracle环境变量

C中设置oracle环境变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Re:用PRO*C写

知识大全 Swing 中设置模态窗体和启动位置

Swing中设置模态窗体和启动位置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于Modal