有人要三级结构例子,我重新贴一下前天有人在这里贴的一个
主 题: PB7开发COM程序
作 者: williamjen (williamjen)
PB三层程序的简单示例(杭州 李记飞)
作者:李记飞 Email: jiffy99@sina.com
一.系统配置
1. 安装有PB7,
2. 安装有jaguar CTS ,V3.0/3.5,
3. 启动jaguarCTS服务,
二. 组件编程
(一)生成组件步骤:
1. 选New-> start wizards-> jaguar component-> ok;
2. next;
3. next;
4. application name: testCom,library:f:\testcom.pbl
5. 选中f:\testcom.pbl,next;
6. component name: n_testcom,next;
7. jaguar component name:n_testcom;next;
8. 输入jaguar server的name or ip ,port :default 9000;login id :default jagadmin,password:default 为空;next;
9. package name:输入或选服务器中已有的,输入TestCom;next;
10. 可根据需要选择,选中standard Component;,next;
11. 可根据需要选择,选中supported;next;
12. 可根据需要选择,选not supported,
13. 选中 use of unsupported datatypes generates an error; 其他可根据需要选择;next;
14. 选中supports remote debugging;next;
15. project name :p_testcom;next;
16. 按next;
17. 按finish;
(二)找到刚生成的userobject:n_testcom,在其中加入以下函数;
fucntion of_cts_retrieve return blob
//本示例没有检查错误
datastore i_ds_data
blob b_data; //the data from database to return
sqlca.DBMS = "ODBC"
sqlca.DBParm = "ConnectString='DSN=odbc_fin;UID=sa;PWD=imssasa'"
//你可以在jaguar中建立一个connect cache,用以下语句
//sqlca.DBParm = "CacheName='your_cache'"
connect using sqlca;
i_ds_data.dataobject = “your_datawindow_name “;
i_ds_data.settransobject(sqlca) ;
i_ds_data.retrieve();
i_ds_data.getfullstate(b_data);
return b_data;
(三)deploy到jaguar
1. copy 你的datawinodw到相同的pbl内,或加入到library list中,
2. 打开p_testcom ,检查显示的相关参数正确,
3. 按build,如果有错误检查一下出错信息,
三. Client编程
(一)建立联接对象
1. 先建立一个新的应用程序,
2. new -> object -> connection object wizards,ok;
3. next;
4. 选中你的pbl;next;
5. 选中requires jaguar connection;next;
6. 输入jaguar参数;next;
7. 选择或输入package Name: TestCom,next;
8. 输入你的connection object name:n_com_connection,next;
9. 选script,或其他也可;next;
10. 按finished
(二)建立代理
1. new -> project _-> jaguar proxy wizards,ok;
2. next;
3. 选中你的pbl;next
4. 输入project name:p_client;next;
5. 输入jaguar参数;next;
6. 找到对应的package TestCom下的n_testcom,选中,next
7. 选中你的pbl,next;
8. 选中prepend jaguar package name to component name;next;
9. 按finished;
10. 打开project p_client,
11. 按build .
(三)编写代码
1. 新建一个窗体,上面放一个datawindow control;加入一个button,
2. 在button中加入以下代码
connection myconnect
long ll_rc
myconnect = create n_com_connection
ll_rc = myconnect.ConnectToServer()
IF ll_rc < > 0 THEN
MessageBox("Connection failed", ll_rc)
END IF
Testcom_n_Testcom i_jagcomm
ll_rc = myconnect.CreateInstance(i_jagcomm,"Testom/n_Testcom")
if ll_rc < > 0 then
MessageBox("CreateInstance failed", ll_rc)
end if
blob l_blb_data
l_blb_data = i_jagcomm.of_cts_retrieve();
dw_1.setfullstate(l_blb_data);
此时,dw_1中应显示数据了!!!!!!!!!