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

首頁 > 開發(fā) > 綜合 > 正文

PB7.0中實(shí)現(xiàn)Jaguar GTS組件開發(fā)

2024-07-21 02:10:20
字體:
供稿:網(wǎng)友
pb7.0中實(shí)現(xiàn)jaguar gts組件開發(fā)
廣州金宇恒科技有限公司 陳紀(jì)山 01-6-25 下午 05:42:09

pb7.0 與jaguar cts(組件事務(wù)服務(wù)器) 做到了緊密集成,只需要編寫少量代碼,就可以建立基于jaguar cts 的組件,同時(shí)jaguar cts本身內(nèi)置pb虛擬機(jī),使用pb7.0編寫的組件可以直接與jaguar cts進(jìn)行高效通信。這樣pb組件通過jaguar cts與后臺數(shù)據(jù)庫建立連接,方便地實(shí)現(xiàn)基于三層體系結(jié)構(gòu)的開發(fā)。 建立jaguar 組件 在pb中有三種方法可以建立jaguar組件: 1、start wizard:建立一個(gè)新的應(yīng)用、新的用戶對象和新的工程; 2、object wizard:在已有的應(yīng)用的基礎(chǔ)上建立一個(gè)新的用戶對象和工程; 3、project wizard:從已有的用戶對象中生成一個(gè)jaguar組件。 你可以根據(jù)需要選擇以上三種方法之一來建立jaguar組件。建立jaguar組件一般有如下四步: 1、使用start wizard(或者object wizard、project wizard)來建立一個(gè)新的應(yīng)用、新的用戶對象和新的工程; 2、為用戶對象加入方法、事件和實(shí)例變量; 3、測試組件; 4、發(fā)布組件至jaguar cts。 建立jaguar客戶端應(yīng)用 為了實(shí)現(xiàn)客戶端與jaguar組件的通信,需按如下步驟建立jaguar客戶端應(yīng)用: 1、使用jaguar connection object wizard建立一個(gè)連接對象; 2、使用jaguar proxy wizard來建立一個(gè)工程,使用該工程產(chǎn)生代理對象; 3、建立窗口、菜單、腳本來做一個(gè)客戶端圖形用戶界面; 4、編寫適當(dāng)?shù)拇a來創(chuàng)建jaguar組件實(shí)例并且訪問它的方法(通過代理對象); 5、測試客戶端應(yīng)用; 6、發(fā)布客戶端應(yīng)用。 實(shí) 例 本實(shí)例通過pb7.0建立一個(gè)jaguar cts組件,然后發(fā)布至jaguar cts服務(wù)器,該服務(wù)器通過odbc數(shù)據(jù)源(本例數(shù)據(jù)源名為eas demo db v3)與后臺數(shù)據(jù)庫(本例使用sybase adaptive anywhere數(shù)據(jù)庫,數(shù)據(jù)庫名為:easdemodb.db) 相連,客戶端代理程序通過jaguar cts組件對后臺數(shù)據(jù)庫進(jìn)行訪問,比如查詢employee表中的雇員情況等,從而實(shí)現(xiàn)一個(gè)典型的pb三層體系結(jié)構(gòu)應(yīng)用。具體做法如下: 1.建立jaguar cts組件 啟動pb7.0,選擇file-->new,彈出一個(gè)對話框,選擇start wizard頁,雙擊啟動jaguar componet圖標(biāo),在向?qū)У闹敢拢梢砸徊揭徊缴梢粋€(gè)新的應(yīng)用、組件、工程,在此分別命名為jag_app、n_jag_cmp、p_jag_prj。 打開library畫筆,打開jag_app所在的庫文件,雙擊打開 n_jag_cmp用戶對象,在declare欄聲明如下實(shí)例變量: protected: datastore ids_emp //聲明一個(gè)不可視的數(shù)據(jù)存儲對象 在n_jag_cmp用戶對象的constructor事件中,建立數(shù)據(jù)庫連接,代碼如下: // profile eas demo db v3 sqlca.dbms = “odbc" sqlca.database = “eas demo db v3" sqlca.autocommit = false sqlca.dbparm = “connectstring= ‘dsn=eas demo db v3;uid=dba;pwd=sql'" // connect using sqlca; //創(chuàng)建數(shù)據(jù)存儲對象,并作必要設(shè)置 ids_emp=create datastore ids_emp.dataobject=“d_emp" ids_emp.settransobject(sqlca) 在n_jag_cmp用戶對象的destructor事件中,做如下清理工作來釋放資源: destroy ids_emp disconnect using sqlca; 為n_jag_cmp用戶對象增加一個(gè)函數(shù)uf_employee,該函數(shù)訪問類型為public,返回值為blob類型,無參數(shù),函數(shù)體如下: blob lblb_data ids_emp.retrieve() ids_emp.getfullstate(lblb_data) return lblb_data 創(chuàng)建一數(shù)據(jù)窗口對象,名為:d_emp,該數(shù)據(jù)窗口顯示風(fēng)格為grid,語法如下: select “employee".“emp_id", “employee".“emp_fname", “employee".“emp_lname", “employee".“birth_date", “employee".“salary", “employee".“sex" from “employee" 關(guān)閉除了library之外的所有畫筆,雙擊p_jag_prj工程對象打開工程畫筆,點(diǎn)擊快捷工具欄的build圖標(biāo),編譯并將該組件發(fā)布至指定的jaguar cts 服務(wù)器。 2.建立客戶端應(yīng)用 選擇file-->new, 彈出一個(gè)對話框,雙擊start wizard 頁的application圖標(biāo),創(chuàng)建一個(gè)新的pbl庫和一個(gè)應(yīng)用對象,pbl庫名為:jag_client.pbl,應(yīng)用對象名稱為:jag_client_app。 選擇file-->new, 彈出一個(gè)對話框,雙擊object頁的 connection object wizard圖標(biāo),創(chuàng)建一個(gè)連接對象,連接對象名稱為jag_connection,注意在 specify connectivity畫面選擇連接選項(xiàng)時(shí)務(wù)必選擇requires jaguar connection一項(xiàng)。指定 jaguar cts 服務(wù)器所在的機(jī)器名,缺省的端口為9000,缺省的登錄id為jagadmin。選擇相應(yīng)包的名稱(即建立jaguar cts組件時(shí)所指定的包的名稱)。按照向?qū)е甘就瓿捎嘞碌牟襟E。 選擇file-->new, 彈出一個(gè)對話框,雙擊project頁的jaguar proxy wizard圖標(biāo)創(chuàng)建一個(gè)代理工程對象,名稱為p_jag_client_prg,按上述同樣的方法指定jaguar cts服務(wù)器和包的參數(shù)。 創(chuàng)建完畢后,雙擊p_jag_client_prg對象,打開工程畫筆,點(diǎn)擊快捷工具欄的build圖標(biāo),聯(lián)編p_jag_client_prg對象。這時(shí)你就會發(fā)現(xiàn)在jag_client.pbl 中多了一個(gè)n_jag_cmp代理對象。 選擇file-->new, 彈出一個(gè)對話框,雙擊object頁的 window圖標(biāo),創(chuàng)建一個(gè)窗口對象,對象名稱為:w_proxy,保存該對象。 在w_proxy中增加如下控件:一個(gè)數(shù)據(jù)窗口控件,控件名為:dw_employee,一個(gè)按鈕控件,控件名為cb_retrieve,文本為:提取數(shù)據(jù)。 在w_proxy的declare 欄位聲明一個(gè)連接實(shí)例和一個(gè)組件實(shí)例,代碼如下: jag_connection my_conn n_jag_cmp my_comp 在w_proxy的open事件中實(shí)例化連接對象,并連接至jaguar cts,代碼如下: my_conn = create jag_connection my_conn.connecttoserver() 在w_proxy的close事件中斷開連接并清理連接對象,代碼如下: my_conn.disconnectserver() destroy my_conn 在cb_retrieve按鈕的clicked事件中加入如下代碼: blob lblb_data if not isvalid(my_comp) then my_conn.createinstance(my_comp) //創(chuàng)建組件實(shí)例 end if lblb_data=my_comp.uf_employee() //調(diào)用組件的方法 dw_employee.setfullstate(lblb_data) //將所需的數(shù)據(jù)展示于數(shù)據(jù)窗口中 最后編譯并運(yùn)行客戶端程序,會得到如下運(yùn)行結(jié)果: 本實(shí)例在windows nt4.0(sp4)、adaptive server anywhere6.0、jaguar cts3.0、pb7.0下運(yùn)行通過。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 井陉县| 峡江县| 仲巴县| 安丘市| 临西县| 台东市| 东丽区| 方正县| 宜川县| 咸阳市| 彩票| 梅河口市| 江川县| 昌宁县| 永修县| 虎林市| 顺平县| 礼泉县| 建昌县| 沛县| 科技| 天长市| 皋兰县| 滕州市| 稷山县| 龙游县| 从化市| 南城县| 舒兰市| 高邑县| 永登县| 卢氏县| 乐平市| 上犹县| 岳池县| 铜陵市| 津市市| 横山县| 宜兰县| 如皋市| 河北省|