扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:禹艳萍 梁丽燕 来源:皇家pb 2007年10月25日
关键字: C/S
摘要: 在实际应用中,经常要求客户机/服务器体系结构中各工作站的时钟与服务器的时钟保持同步;本文基于SYBASE数据库、Powerbuilder开发工具说明了一种解决方法。
一、前言
PowerBuilder通过数据窗口对象,可方便、直接地对数据库进行操作,故已成为当前开发Client/Server模式应用的首选开发工具。在开发医院信息管理系统时,我们采用了PowerBuilder 作为前台开发工具,Sybase作为后台数据库。
医院信息管理系统中,有很多模块都要求工作站的时间与服务器保持同步,如:门诊收费系统要求能均匀地向各司药窗口分派处方、住院药房摆药要根据病房发送医嘱的时间顺序进行等。为解决此问题,我们编写了相应的程序,主要思路是:采用动态游标获取服务器时间, WIN32的API函数设置本机时间,具体实现方法如下:
二、实现方法:
1、 连接数据库
PowerBuilder支持多种数据库管理系统(DBMS),如Sybase、Oracle、Informix、Microsoft SQL Server等;根据不同的数据库类型,采用专用接口或ODBC连接数据库,建立接口配置文件(DB Profile)。
2、 创建应用对象,在应用对象事件中编写脚本
1>、应用对象open事件的脚本如下:
2>、应用对象Close事件中的脚本如下:
DISCONNECT Using SQLCA;
3、 定义WIN32的API函数为外部函数
在Script画笔工作区中,选择Declare > Global External Functions...,定义WIN32的API函数为外部函数,定义如下:
4、 定义存取时间参数的结构
单击PainterBar或PowerPanel中的Structure Painter按钮,定义一个名为:systemtime的结构,组成结构的变量与对应的数据类型如下:
5、创建用户自定义函数来完成设置工作站时间
创建一个名为f_settime的自定义函数,脚本如下:
6、创建可执行应用程序
在PowerBar或PowerPanel中单击Project按钮打开Project Painter。Select Project对话框出现,单击New创建一个新的工程对象,输入可执行程序名(如:settime.exe),单击OK。然后单击build,即可创建可执行文件。
7、将可执行程序安装至各工作站
将生成的可执行程序(如:settime.exe)放入各工作站的Windows的启动菜单,即可在每次启动Windows时,工作站自动根据服务器时间校正本机时间。
三、结束语
上述方法是创建一个独立的可执行文件来实现工作站与服务器的时间同步;编程时,也可在应用程序的open事件或程序登录对应事件中调用上述f_settime函数,以实现工作站的时间与服务器同步。此方法已在开发医院信息管理系统中加以应用,取得了很好的效果。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者