国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

輕松利用PowerBuilder和EAServer搭建三層架構(gòu)程序

2024-07-21 02:10:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

輕松利用powerbuilder和easerver搭建三層架構(gòu)程序

作者:壞人張,發(fā)表時(shí)間:2004-9-19

powerbuilder是在c/s應(yīng)用中被普遍使用的開(kāi)發(fā)工具,是公認(rèn)的高效率的圖形化4gl工具。easerver是集動(dòng)態(tài)頁(yè)面發(fā)布和事務(wù)處理于一個(gè)身的企業(yè)級(jí)應(yīng)用服務(wù)器。這二者的結(jié)合可以構(gòu)成多層應(yīng)用的開(kāi)發(fā)和提交環(huán)境,開(kāi)發(fā)人員可以不離開(kāi)這個(gè)集成的開(kāi)發(fā)環(huán)境進(jìn)行應(yīng)用的開(kāi)發(fā)、調(diào)試、提交和運(yùn)行。

easerver中包括動(dòng)態(tài)頁(yè)面服務(wù)器powerdynamo和事務(wù)處理服務(wù)器jaguar cts,這兩者的結(jié)合使easerver成為發(fā)布動(dòng)態(tài)網(wǎng)頁(yè)和處理電子商務(wù)的應(yīng)用服務(wù)器,支持多種組件類(lèi)型,如com、corba、javabean/ejb和powerpuilder。它的一個(gè)更加顯著的特點(diǎn)是支持xml和j2ee。

  powerbuilder和easerver的結(jié)合能使企業(yè)在以下方面獲得成功:

   ● 從客戶/服務(wù)器升級(jí)到分布應(yīng)用。

   ● 開(kāi)發(fā)web和internet的電子商務(wù)應(yīng)用。

   ● 支持建造企業(yè)門(mén)戶的基礎(chǔ)。

    在本例中,作者介紹了一個(gè)如何利用powerbuilder和easerver來(lái)建立三層架構(gòu)應(yīng)用程序的范例,涉及到知識(shí)有:

1.如何在easerver中配置數(shù)據(jù)庫(kù)的連接

2.如何在powerbuilder中創(chuàng)建easerver組件(easerver component)

3.如何在powerbuilder中生成easerver代理對(duì)象(easerver proxy)

4.如何在powerbuilder中實(shí)現(xiàn)三層結(jié)構(gòu)應(yīng)用程序的連接

    至于easerver的安裝與配置等話題則不在此文討論范圍之內(nèi),詳情可以到http://sybooks.sybase.com/站點(diǎn)查找相關(guān)的文檔。

    在正式介紹本例以前,請(qǐng)確認(rèn)在你的機(jī)器上已經(jīng)成功安裝了easerver和powerbuilder,以及任意一種數(shù)據(jù)庫(kù)環(huán)境。

    本例使用的開(kāi)發(fā)環(huán)境為:

操作系統(tǒng)

windows server 2003 企業(yè)版

數(shù)據(jù)庫(kù)

ms sql server 2000 企業(yè)版

開(kāi)發(fā)環(huán)境

easerver5.1開(kāi)發(fā)版、powerbuilder9.0企業(yè)版

    其中easerver5.1開(kāi)發(fā)版可以從http://www.sybase.com上下載到。

 

    實(shí)現(xiàn)過(guò)程:

    1. 在easerver中配置數(shù)據(jù)庫(kù)的連接

       要在組件中實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),在組件內(nèi)部仍然與平時(shí)編寫(xiě)c/s應(yīng)用一樣,使用同樣的連接代碼,即指定sqlca的各個(gè)屬性的值,然后調(diào)用connect using sqlca即可,但是與c/s應(yīng)用不同的時(shí),連接操作是在應(yīng)用服務(wù)器上執(zhí)行的,即easerver所在的服務(wù)器,所以有兩個(gè)需要注意的地方:

       1) 應(yīng)用服務(wù)器上已經(jīng)配置了與數(shù)據(jù)源的連接(比如通過(guò)odbc),并確保組件內(nèi)連接時(shí)使用的sqlca屬性值為應(yīng)用服務(wù)器上相關(guān)參數(shù),而非本地連接,當(dāng)然如果應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器為同一臺(tái)機(jī)器時(shí)則連接參數(shù)可相同。

       2) 在easerver中已經(jīng)配置了connection cache,并且確保可以ping成功。              

       以下將會(huì)為你詳細(xì)介紹如何在easerver中配置connection cache的步驟:

       啟動(dòng)easerver manager并連接到easerver,在左邊的樹(shù)節(jié)點(diǎn)中選擇connection caches節(jié)點(diǎn),如下圖所示:

 



 

 

       這時(shí)在右邊詳細(xì)信息欄中顯示的是已經(jīng)配置的connection cache列表,你需要建立一個(gè)新的連接緩存,通過(guò)在右鍵彈出菜單中的new connection cache菜單項(xiàng),會(huì)彈出配置界面,由于每個(gè)版本的easerver中的配置界面不盡相同,所以這里列出了配置項(xiàng)的值,讀者可以選擇進(jìn)行填寫(xiě)

 

配置項(xiàng)名稱

配置項(xiàng)值

說(shuō)明

connection cache name

pb_eas_dbconnection

可自定義的名稱,任意填寫(xiě)

database type

sql_server

數(shù)據(jù)庫(kù)類(lèi)型,本例為sql_server

server name

pmdb_sql

為odbc數(shù)據(jù)源的名稱,而不是數(shù)據(jù)庫(kù)服務(wù)器的機(jī)器名

xa server name(optional)



選填項(xiàng)

user name

sa

 

password

sa的密碼

 

database driver type

odbc

本例通過(guò)odbc連接,必須

dll or class name

odbc32.dll

連接驅(qū)動(dòng),必須

maximum connection pool size

75

為75

minimum connection pool size

0

默認(rèn)

pooled connection idle timeout

300

默認(rèn)

pooled connection refresh rate

600

默認(rèn)

       如果使用easerver5.1以下,會(huì)有一個(gè)refresh按鈕,記得改寫(xiě)這些配置后,按此按鈕以更新配置。

       完整了以上的配置后,回到了easerver manager主界面中,在右邊詳細(xì)信息欄中會(huì)添加你剛才添加的數(shù)據(jù)聯(lián)接緩存,通過(guò)右鍵菜單中的ping菜單試試看是否可以ping的通,如果通了的話則表明已經(jīng)成功建立了數(shù)據(jù)連接緩存,不通的話,請(qǐng)查看以上步驟是否有遺漏的地方或者是否已經(jīng)配置了odbc數(shù)據(jù)源。

    2. 在powerbuilder中創(chuàng)建easerver組件(easerver component)

       成功完整了步驟1之后,接下來(lái)可以進(jìn)行powerbuilder編程了,在本例中powerbuilder中的對(duì)象結(jié)構(gòu)如下圖:



                                   



在powerbuilder中創(chuàng)建easerver組件的步驟:

1) 建立不可視類(lèi)n_cst_eas

   函數(shù):long of_retrieve( )

       代碼:

            long       ll_rows

            datastore  lds_data

 

            // profile pmdb

            sqlca.dbms = "odbc"

            sqlca.autocommit = false

            sqlca.dbparm = "connectstring='dsn=pmdb_sql;uid=sa;pwd=mis'"

 

            connect using sqlca;

            

            if sqlca.sqlcode <> 0 then return sqlca.sqlcode

            

            lds_data = create datastore

            lds_data.dataobject = 'ds_data'

            lds_data.settransobject( sqlca )

            ll_rows = lds_data.retrieve()

 

            disconnect using sqlca;

 

            return ll_rows

    2) 建立easerver組件

       建立一個(gè)新的easerver component,各參數(shù)在以下幾幅圖示中顯示出來(lái):

 

                               

                                              













                       

                       

                       

                        

       按照以上步驟執(zhí)行完畢后,最后執(zhí)行deploy project以將組件提交到easerver,其中需要說(shuō)明的是package name可以自定義的新的package(手工輸入),也可是選擇package列表中的已有package(在新建向?qū)е锌梢赃x擇)。

       成功提交以后,可以在easerver manager發(fā)現(xiàn)剛剛提交的package已經(jīng)在installed packages節(jié)點(diǎn)中顯示出來(lái)了。

    3. 在powerbuilder中生成easerver代理對(duì)象(easerver proxy)

       建立一個(gè)新的easerver proxy,各參數(shù)在以下幾幅圖示中顯示出來(lái):

                               

                               

                              







       按照以上步驟執(zhí)行完畢后,最后執(zhí)行deploy project以在pb中生成easerver代理對(duì)象。

    4. 在powerbuilder中實(shí)現(xiàn)三層結(jié)構(gòu)應(yīng)用程序的連接

       以上已經(jīng)完成了easerver組件和easerver代理對(duì)象的生成,接下來(lái)要進(jìn)行的就是在powerbuilder應(yīng)用程序中聲明代理對(duì)象,進(jìn)而可以在應(yīng)用程序中執(zhí)行easerver組件的方法了。

       具體方法:

       在powerbuilder建立一個(gè)應(yīng)用,執(zhí)行下列代碼:

       long        ll_rows

       connection  lc_connect                               //連接對(duì)象

       n_cst_eas   ln_eas_proxy                             //easerver代理對(duì)象

       

       

       lc_connect = create connection                       //創(chuàng)建連接對(duì)象

       lc_connect.application = 'pb_eas_demopackage'        //package name,可以不寫(xiě),具體使//用方法可以查閱pb幫助文檔中關(guān)//于connection對(duì)象的幫助

       lc_connect.driver = 'jaguar'          //連接對(duì)象對(duì)象的驅(qū)動(dòng),對(duì)于easerver,值為jaguar

       lc_connect.userid = 'jagadmin'        //登錄帳號(hào),這里為管理員

       lc_connect.password = '你的密碼'           

       lc_connect.location = 'iiop://server1:9000'          //對(duì)應(yīng)服務(wù)器server1的9000端口

       

       lc_connect.connecttoserver( )

       

       lc_connect.createinstance( ln_eas_proxy, 'n_cst_eas' ) //創(chuàng)建easerver代理對(duì)象的實(shí)例

       

       ll_rows = ln_eas_proxy.of_retrieve( )                //調(diào)用easerver組件的方法(函數(shù))

       

       messagebox("total rows is:", string( ll_rows ) )

       

       destroy ln_eas_proxy

       destroy lc_connect

 

 

      到這里,已經(jīng)完成了從配置到編碼實(shí)現(xiàn)利用powerbuilder和easerver搭建一個(gè)典型的三層架構(gòu)程序的過(guò)程,希望可以對(duì)你入門(mén)有所幫助,歡迎技術(shù)探討,聯(lián)系我。

 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 德昌县| 尼木县| 天门市| 瑞金市| 白朗县| 广水市| 丰城市| 临邑县| 横峰县| 深水埗区| 北票市| 洪湖市| 桑日县| 河南省| 梧州市| 忻城县| 通山县| 朝阳县| 柏乡县| 永昌县| 榕江县| 延安市| 信阳市| 新沂市| 靖远县| 纳雍县| 绥滨县| 海宁市| 永定县| 隆昌县| 剑河县| 桃源县| 桐梓县| 都安| 孙吴县| 景宁| 西贡区| 封丘县| 太白县| 丰台区| 民县|