微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerBuilder 11.5 以WebService为数据源生成数据窗口

PowerBuilder 11.5在千呼万唤中终于出来了,看来Sybase公司为此确实花了不少力气,增加了不少对WebService方面的支持

特别是增加了以WebService为数据源的DataWindow,最近我用Xfire写了一个WebService,以它为数据源做了一个DataWindow。

 

第一步,如下图,选择Web Service数据源:

选择Web Service数据源

 

第二步,如下图,输入WebService的WSDL文件的地址:

输入WebService的WSDL文件的地址

 

第三步,如下图,选择WebService接口:

选择WebService接口

 

第四步,如下图,选择WebService的接口方法:

选择WebService的接口方法

 

第五步,如下图,选择你要生成DataWindow的WebService的返回结果:

 

选择你要生成DataWindow的WebService的返回结果

 

第六步,如下图,Finish即可:

 

 

通过以上六步就生成了如下DataWindow:

生成的DataWindow

 

但是在生成过程中我却发现一个百思不得其解的问题,对于Java中的数值型结果,PowerBuilder都会生成一个

System.Boolean ksdmSpecified,ksdm是字段名。而对于String型则无此问题,真是搞不懂,是不是PowerBuilder对Java的支持

够好呢?但是Xfire生成的WebService都是标准WebService呀。

 

对于生成的DataWindow,只是在DataWindow中加入了以下代码,并生成一个Query.dll

 

webservice=webservice=(WSDL="http://localhost/hissq/services/Query?wsdl"  assembly="Query.dll"  namespace="WebService" classname="Query" method="GetKsdm" methoddeFinition="<method name='GetKsdm' ns='WebService' pbname='GetKsdm'><return name='returnvalue' type='WebService.HisKsxx' isRef='False' ArrayDim='1' IsNullableType='False' /></method>" structurename="HisKsxx(system.int64 ksdm,System.Boolean ksdmSpecified,System.String ksmc,System.String pydm)" inputparms="" resultsetparm=-1)
 sort="ksdm A " )

 

接下来,生成以后,怎么更新与插入呢,PowerBuilder专门增加了对WebService的更新,如下图:

 

 

一、更新设置:

请注意Use Original是使用初始值进行更新。

二、插入设置:

 

哈哈,一个WebService的DataWindow就全部设置完毕了。

 

查询和更新操作就和普通DataWindow一样了。

 

更新:

 

integer li_r

li_r = dw_1.update()


If li_r <0 Then messageBox("错误",is_error)

 

查询,如果有参数也是和普通DataWindow一样传递:

 

dw_1.retrieve()

 

对于WebService调用错误可以在DataWindow的事件wserror中取得,参数为errormessage。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐