PowerBuilder 11.5 以WebService為數據源生成數據窗口


 

分類: PowerBuilder2009-01-13 09:19 1844人閱讀 評論(9) 收藏 舉報

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM