Database 版 (精华区)

发信人: zhaowei (小燕子), 信区: Database
标  题: 17.3 创建 Connection Object
发信站: 紫 丁 香 (Fri Jun 11 17:37:38 1999), 转信

现在,我们已经定义了NVO,并生成它的代理对象,下一步再来看一看如何定义和初始
化它一个链接对象Connection Object。与Transaction对象不一样,系统并不为应用程
序自动生成这个对象,而需要自已手工定义。
打开应用程序画板,选择它的Open事件。在其中只有一句打开窗口语句:
Open Win_shoping。我们定义一个全程变量,输入:Connection myconnection。再
从脚本编辑器中输入myconnect = create connection,为这个connection对象进行初
始化。接着我们赋予它三个最基本的属性值:application、driver和location.。在
不清楚之前,我们先给它们空值。至此为止,已经为connection对象初始完毕,我们还
需用它来服务器建立联系。输入myconnect ConnectToServer。为了检查它是否真地找
到了服务器,我们还需要输入一些脚本来验证它的返回值。如它的返回值不为空,则程
序提示一些出错信息。如果等于0,则说明它已经正确链接到服务器,于是进一步打开
主窗口win_shoping(图17-4)。
    我们建立了myconnect对象,相应地,还应该在程序结束之前将它释放掉,以便系统
回收这个对象所占的内存空间。打开Close事件,先中止服务端的服务线程,同时释放服
务器为我们分配的内存空间。输入myconnect DisconnectServer。随后,再
释放myconnect对象,输入destroy myconnect。在PowerBuilder中,如果创建一个用
户自定义的对象,我们就在不需要时把它释放掉。

图17-4
    接下去,我们把这个代理对象加到应用程序中。打开窗口win_shoping,在"折扣"
按钮中加入代码。Cpo_discount po_discount:定义一个NVO对象实例;
po_discount SetConnect myconnect:这一句,我们为代理指定链接对象;这样每当代
理对象调用了一函数,myconnect对象就为应用程序重定向到远程的NVO中,这个NVO存
在于服务器中。po_discount = create Cpo_discount:初始化这个NVO实例;最后,
我们释放这个实例。
    现在,我们已经把程序改成了一个在分布式环境下运行的应用程序。在客户端中,
所有函数都指向了这个po_discount代理对象。
    在测试这个程序之前,我们对myconnect对象属性作一些修改。再打开Application
画板,我们把myconnect的driver属性改为local,并让其它两个属性继续为空。
当driver的值为local,PowerBuilder就会把分布式程序当作非分布式程序来运行。当程
序调用代理对象,代理转向Connection对象,如果Connection对象发
现driver为local,Connection就不会发链接请求信息。我们来测试一下这个程序。按
下运行按钮,程序被正确运行了。单击"Discount",程序返回了"0.9"。

--
________________________________________________________________
 我和一个朋友去散步,遇见一个漂亮的少妇带着一个小孩平时极腼腆的朋友一改
平日恹恹睡态,勇敢的走上前去, ∴
         《||||||||||||||||||||■※※◎    亲切的看着那小孩说:
                               ∵    ."   多可爱的孩子啊,
                                 ...''   抬头看看少妇,“还有孩子他妈!”

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.226.249]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.102毫秒