• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        運(yùn)用POWERBUILDER開發(fā)數(shù)據(jù)庫的WEB查詢

        運(yùn)用POWERBUILDER開發(fā)數(shù)據(jù)庫的WEB查詢

        更新時(shí)間:2022-05-02 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        一、WEB.PB的工作原理

        POWERBUILDER對(duì)分布式計(jì)算的支持使得它能夠通過INTERNET/INTRANET來調(diào)用遠(yuǎn)程對(duì)象服務(wù)。通過WEB.PB,可以將POWERBILDER的分布式計(jì)算能力擴(kuò)展到WWW網(wǎng)中。WEB.PB允許服務(wù)器動(dòng)態(tài)地將內(nèi)容轉(zhuǎn)換成HTML傳送到客戶端的瀏覽器中。當(dāng)一個(gè)HTML文檔調(diào)用了一個(gè)遠(yuǎn)程對(duì)象的方法或者函數(shù)時(shí),WEB.PB將請(qǐng)求結(jié)果傳送給POWERBUILDER的服務(wù)應(yīng)用,由POWERBUILDER的服務(wù)應(yīng)用執(zhí)行相應(yīng)的代碼,并將結(jié)果返回給瀏覽器。這就是WEB.PB的工作原理,它實(shí)際上是通過網(wǎng)關(guān)接口(CGI)來調(diào)用PB應(yīng)用服務(wù)的。在HTML中有兩個(gè)標(biāo)簽,可以用來調(diào)用PB的應(yīng)用服務(wù):窗體< FORM >和錨點(diǎn)< A >,前者是在窗體命令中激活一個(gè)PB應(yīng)用,后者是通過調(diào)用超鏈接來指向PB應(yīng)用的。

        二、系統(tǒng)的運(yùn)行環(huán)境

        合肥市電信局網(wǎng)管中心目前運(yùn)行的電話網(wǎng)網(wǎng)管系統(tǒng)有本地網(wǎng)集中監(jiān)控和維護(hù)系統(tǒng)和長途網(wǎng)管系統(tǒng),其中本地網(wǎng)網(wǎng)管系統(tǒng)采用安徽省自行開發(fā)的一套系統(tǒng),服務(wù)器為ALPHA 4000小型機(jī),操作系統(tǒng)為Digital Unix 64,長途網(wǎng)管采用郵電部電信總局統(tǒng)一開發(fā)的ROMA系統(tǒng),操作系統(tǒng)為SCO UNIX,數(shù)據(jù)庫均為SYBASE SQL SERVER。我們另外采用了一臺(tái)IBM Netfinity 3000作為WEB服務(wù)器,采用Microsoft Windows NT 4.0為操作系統(tǒng), IIS4.0提供WWW服務(wù)。在安裝POWERBUILDER 6.0時(shí)選擇自定義安裝,然后選擇Internet Tools中的WEB.PB選項(xiàng)即可。

        三、配置IIS服務(wù)器

        Microsoft Internet Information Server(IIS)的主目錄下有一個(gè)子目錄\scrips,這是IIS用來存放CGI程序的目錄。如果需要使用標(biāo)準(zhǔn)CGI程序,則將\PB6\IT\BIN\PBCGI60.EXE復(fù)制到這個(gè)目錄下即可,如果使用ISAPI接口,則需要復(fù)制的文件是pbisa60.dll。

        但是為了保證服務(wù)能正常運(yùn)行,還必須自行查看IIS服務(wù)的目錄映像表,其步驟如下:

        1、確定IIS已經(jīng)安裝且運(yùn)行正常。

        2、運(yùn)行Internet Service Manager程序。

        3、選擇需要安裝配置的Web服務(wù)(IIS支持多種服務(wù),并能夠?qū)Χ嗯_(tái)計(jì)算機(jī)的服務(wù)進(jìn)行管理)。

        4、從菜單條中選擇屬性菜單下的服務(wù)屬性菜單項(xiàng)。

        5、選擇Directories頁。

        6、確定有一個(gè)別名為/scripts/的目錄項(xiàng)(別名即虛擬目錄名)。

        7、選擇/scripts/,并單擊Properties按鈕。

        8、確定Execute是在Access組中唯一被選中的項(xiàng)目(在這個(gè)目錄中不允許客戶機(jī)執(zhí)行讀寫操作)。

        9、如果對(duì)屬性作了修改,選擇OK進(jìn)行保存。

        10、如果沒有/scripts目錄,可以添加一個(gè)。

        四、編輯hosts 和 services 文件

        采用任何一個(gè)文本編輯器,編輯這兩個(gè)文件。通常hosts文件在c:\winnt\system32\driver\etc目錄下,添加下面一行:

        134.65.5.212 HFSA

        其中HFSA為主機(jī)名,134.65.5.212為IP地址。

        在c:\winnt\services文件中添加下面一行

        myapp 100015/tcp

        這一行的意義在于將所創(chuàng)立的PB服務(wù)添加到Windows的服務(wù)注冊(cè)文件中。使用TCP/IP協(xié)議的應(yīng)用程序都需要使用一個(gè)端口,服務(wù)應(yīng)用程序?qū)⒃谶@個(gè)端口布置一個(gè)監(jiān)聽程序,這個(gè)程序能夠捕捉到任何發(fā)送到這個(gè)端口的請(qǐng)求,并將請(qǐng)求輸送到應(yīng)用程序中。比如,HTTP協(xié)議協(xié)議使用端口80,F(xiàn)TP采用TCP的端口21。這里指定myapp 使用TCP的端口100015。獲取一個(gè)可用端口的方法是把上一行的端口號(hào)加1即可。

        五、查詢目標(biāo)

        SQL SERVER名: "HFWG2_SYB"

        數(shù)據(jù)庫名:exsydb

        表名和表結(jié)構(gòu):s12_a010007

        字段名 數(shù)據(jù)類型 長度 字段意義
        Ofcname char 10 局名
        Date int 4 日期
        Time smallint 2 時(shí)間
        Name char 16 路由名稱
        Ncit Int 4 電路數(shù)
        Ncct float 8 可用電路數(shù)
        Pegs int 4 呼叫次數(shù)
        Seiz Int 4 占用次數(shù)
        Succ int 4 成功次數(shù)
        Answ Int 4 應(yīng)答次數(shù)
        Serl float 8 占用話務(wù)量
        Rerl float 8 通話話務(wù)量
        Retries int 4 中繼重選次數(shù)
        no_answ int 4 久叫不應(yīng)次數(shù)
        cong_dist int 4 對(duì)端擁塞次數(shù)
        ls_busy int 4 對(duì)端市話忙次數(shù)
        ts_busy int 4 對(duì)端長話忙次數(shù)


        要求在瀏覽器中輸入日期和時(shí)間,對(duì)表s12_a010007查詢,并在網(wǎng)頁中反映出結(jié)果。

        六、創(chuàng)建Powerbuilder應(yīng)用程序

        1、 新建一個(gè)應(yīng)用(myapp)。

        2、 新建一個(gè)窗口(w_1),定義一個(gè)instance 變量(i_server_transport)。

        3、 單擊應(yīng)用畫板中的script按鈕,為myapp應(yīng)用的open事件編寫代碼如下:

        open(w_1)

        4、 打開窗口w_1,為它的open事件編寫代碼如下

        int li_ListenReturnCode
        /*創(chuàng)建傳輸對(duì)象,并設(shè)置其屬性*/
        i_server_transport = CREATE transport
        i_server_transport.driver="winsock" //采用TCP/IP協(xié)議
        i_server_transport.application="myapp" //應(yīng)用名稱
        i_server_transport.location="HFSA" //本地連接
        /*監(jiān)聽客戶,并返回狀態(tài)值*/
        li_ListenReturnCode= i_server_transport.Listen()
        if(li_ListenReturnCode< >0) then
        MessageBox("服務(wù)器監(jiān)聽出錯(cuò)"&
        "服務(wù)器不能正常進(jìn)行監(jiān)聽:~r~n~r~n"+&
        "請(qǐng)確保當(dāng)前TCP/IP服務(wù)不能被其它埠占據(jù),以及"+&
        "myapp 10015/tcp",stopsign!)
        Halt
        Endif

        5、 為w_1的close事件編寫代碼如下:

        i_server_transport.stopListening() //停止在埠的監(jiān)聽
        DESTORY i_server_transport //從內(nèi)存中清除傳輸對(duì)象
        close(parent)

        6、 創(chuàng)建一個(gè)datawindow(d_zy),查詢條件為日期、時(shí)間。這是POWERBUILDER的特色之一,這里就不作詳細(xì)解釋。

        7、 定義一個(gè)用戶對(duì)象u_web_ct1,并定義一個(gè)UserObject Function f_get_2a01(integer date,integer time) return string

        其代碼如下:

        datastore ds_tf
        string ls_html
        int li_rowcount
        //連接數(shù)據(jù)庫
        sqlca.DBMS="SYC Sybase System 10 CTLIB"
        sqlca.Database="exsydb"
        sqlca.UserId="sa"
        sqlca.Dbpass=""
        sqlca.LogPass=""
        sqlca.ServerName="HFWG2_SYB"
        sqlca.LogId="sa"
        sqlca.DbParm=""


        connect using sqlca;

        if sqlca.sqlcode < > 0 then
        Messagebox(" ","connect error")
        end if

        ds_tf = create datastore

        ds_tf.dataobject="d_a01"
        ds_tf.SetTransObject(sqlca)
        li_rowcount=ds_tf.Retrieve(date,time)

        if li_rowcount=0 then
        disconnect using sqlca;
        return "no record!"
        elseif li_rowcount< 0 then
        disconnect using sqlca;
        Return "retrieve failure!"
        end if


        ls_html = ds_tf.Object.DataWindow.data.HTMLTable


        destroy ds_tf
        disconnect using sqlca;

        return ls_html


        七、 使用

        1、在主頁中添加如下代碼:

        < form name="form1" method="post"
        action="http://134.65.5.212/scripts/
        pbcgi60.exe/internet/u_web_ct1/f_get_2a01?" >

        < font size="-3" >< b >< p >日期: < input type="text" name=
        "date" size="20" > < /b >< /font >< /p >
        < p >< b >< font size="-7" >時(shí)間: < /font >< font size="-3" >
        < input type="text" name="time" size="20" > < /font >< /b >< /p >
        < p >< input type="submit" name="Submit" value="Submit" > < /p >
        < /form >

        2、運(yùn)行myapp應(yīng)用,啟動(dòng)瀏覽器,輸入日期和時(shí)間,結(jié)果如下:



        八、小結(jié)

        由于POWERBUILDER是專業(yè)級(jí)的數(shù)據(jù)庫開發(fā)工具,可以不受數(shù)據(jù)庫的種類和平臺(tái)的限制,采用它的WEB.PB技術(shù)來進(jìn)行Internet/Intranet開發(fā),能夠?qū)㈤_發(fā)者的精力都集中到業(yè)務(wù)邏輯的實(shí)現(xiàn)上,而不是花費(fèi)大量的時(shí)間去考慮和數(shù)據(jù)庫連接的問題。這種基于瀏覽器/服務(wù)器結(jié)構(gòu)的應(yīng)用優(yōu)勢(shì)在于系統(tǒng)的維護(hù)簡(jiǎn)單,幾乎所有的工作都集中在WEB服務(wù)器上,大大減少了對(duì)多個(gè)客戶端的維護(hù)工作。另外,由于能夠?qū)⑦\(yùn)算任務(wù)合理地分布在瀏覽器和服務(wù)器之間,整個(gè)系統(tǒng)運(yùn)行的費(fèi)用也將大大降低。

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 99久久久国产精品免费牛牛| yellow视频免费看| 99爱在线观看免费完整版| 中文字幕在线亚洲精品| a级特黄毛片免费观看| 国产aⅴ无码专区亚洲av麻豆| 亚欧国产一级在线免费| 伊人婷婷综合缴情亚洲五月| 中国在线观看免费的www| 亚洲综合色自拍一区| 最近更新免费中文字幕大全| 日本红怡院亚洲红怡院最新| 成人影片一区免费观看| 亚洲男人都懂得羞羞网站| 91大神在线免费观看| 亚洲1区1区3区4区产品乱码芒果| 亚洲一级免费毛片| 亚洲精品无码你懂的| 国产乱人免费视频| 日韩免费高清播放器| 中文字幕亚洲综合精品一区| 国产卡一卡二卡三免费入口| 亚洲精品天堂无码中文字幕| 亚洲国产V高清在线观看| a级在线观看免费| 亚洲中文无码线在线观看| 日韩精品免费电影| 9久热这里只有精品免费| 久久久久久亚洲精品成人| 成人免费毛片内射美女-百度| 亚洲精品成a人在线观看夫| 美腿丝袜亚洲综合| 国产成人免费午夜在线观看| 亚洲av日韩精品久久久久久a| 久久久久亚洲av成人无码电影| 十八禁在线观看视频播放免费| 亚洲永久在线观看| 亚洲情XO亚洲色XO无码| 91免费播放人人爽人人快乐| 一级黄色毛片免费看| 亚洲国产成人资源在线软件|