• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    C/S體系中設置工作站與服務器時鐘同步

    發布: 2008-9-12 13:58 | 作者: 網絡轉載 | 來源: 皇家pb | 查看: 46次 | 進入軟件測試論壇討論

    領測軟件測試網 摘要: 在實際應用中,經常要求客戶機/服務器體系結構中各工作站的時鐘與服務器的時鐘保持同步;本文基于SYBASE數據庫、Powerbuilder開發工具說明了一種解決方法。 

    一、前言 

    PowerBuilder通過數據窗口對象,可方便、直接地對數據庫進行操作,故已成為當前開發Client/Server模式應用的首選開發工具。在開發醫院信息管理系統時,我們采用了PowerBuilder 作為前臺開發工具,Sybase作為后臺數據庫。 

    醫院信息管理系統中,有很多模塊都要求工作站的時間與服務器保持同步,如:門診收費系統要求能均勻地向各司藥窗口分派處方、住院藥房擺藥要根據病房發送醫囑的時間順序進行等。為解決此問題,我們編寫了相應的程序,主要思路是:采用動態游標獲取服務器時間, WIN32的API函數設置本機時間,具體實現方法如下: 

    二、實現方法: 

    1、 連接數據庫 

    PowerBuilder支持多種數據庫管理系統(DBMS),如Sybase、Oracle、Informix、Microsoft SQL Server等;根據不同的數據庫類型,采用專用接口或ODBC連接數據庫,建立接口配置文件(DB Profile)。 

    2、 創建應用對象,在應用對象事件中編寫腳本 

    1>、應用對象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() //調用自定義函數完成設置本地工作站時間
     

    2>、應用對象Close事件中的腳本如下: 

    DISCONNECT Using SQLCA; 

    3、 定義WIN32的API函數為外部函數 

    在Script畫筆工作區中,選擇Declare > Global External Functions...,定義WIN32的API函數為外部函數,定義如下: 


    FUNCTION LONG SetLocalTime (ref systemtime systimeptr) LIBRARY "Kernel32.dll"
     

    4、 定義存取時間參數的結構 

    單擊PainterBar或PowerPanel中的Structure Painter按鈕,定義一個名為:systemtime的結構,組成結構的變量與對應的數據類型如下: 


    integer wyear
    integer wmonth
    integer wdayofweek
    integer wday
    integer whour
    integer wminute
    integer wsecond
    integer wmillisecond
     

    5、創建用戶自定義函數來完成設置工作站時間 

    創建一個名為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; //通過數據庫獲取服務器時間
    lose 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=30
    SetLocalTime(s_systime) //調用WIN32 API函數,設置工作站時間。
     

    6、創建可執行應用程序 

    在PowerBar或PowerPanel中單擊Project按鈕打開Project Painter。Select Project對話框出現,單擊New創建一個新的工程對象,輸入可執行程序名(如:settime.exe),單擊OK。然后單擊build,即可創建可執行文件。 

    7、將可執行程序安裝至各工作站 

    將生成的可執行程序(如:settime.exe)放入各工作站的Windows的啟動菜單,即可在每次啟動Windows時,工作站自動根據服務器時間校正本機時間。 

    三、結束語 

    上述方法是創建一個獨立的可執行文件來實現工作站與服務器的時間同步;編程時,也可在應用程序的open事件或程序登錄對應事件中調用上述f_settime函數,以實現工作站的時間與服務器同步。此方法已在開發醫院信息管理系統中加以應用,取得了很好的效果。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 服務器 工作站 設置 時鐘


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>