浅谈PB使用心得(一)(原创)
2024-07-21 02:09:58
供稿:网友
浅谈pb使用心得(一)(原创)
作者:balloonman2002 2004年6月26日
本文拟结合powerbuilder语言,浅谈自己使用pb开发过程中的一些心得,这些算不上巧妙方法,重点侧重一些基础性知识和易忽视点归纳整理:
一、如何用好pb帮助
很多新学pb的朋友总是希望能够找到好的pb教程,其实我觉得pb自带的pb帮助就是最好的在线pb教程,它系统、全面的涵盖了pb从变量声明、语句编写、各类函数、各类对象、内置控件、dwo详解、数据接口到pfc深层应用的各个方面,不仅分类清晰,而且说明到位、用例典型。另外,本身的索引功能也非常详实,唯一不足的就是无法象msdn一样可以全文检索。但这丝毫不会影响其作为最经典的pb教程的事实,我个人强烈建议新学pb的朋友能够从头开始好好了解一下pb帮助,:),本文中所描述的内容也只是将pb帮助中的一些零散知识整理起来,详细的资料可以进一步查阅相关帮助内容。
此外,pb自带的dwsyntax、code examples也是非常好的案头工具。
二、如何动态修改datawindow object的数据源
(一)通过getsqlselect、setsqlselect函数实现
dwcontrol.getsqlselect ( )
dwcontrol.setsqlselect ( statement )
说明:这种情况下要求新旧select出来的结果列要求一致,并且select语句不能有retrieve arguments。
(二)通过dw_control.object.datawindow.table.select属性实现
sqlvar = 'select ... where ...'
dw_1.modify("datawindow.table.select='" + sqlvar + "'")
说明:这种情况下可以使用retrieve arguments,但必须要求只能使用原来已定义的arguments。
(三)通过create函数重构datawindow来实现
dwcontrol.create ( syntax {, errorbuffer } )
这其中的syntax语法可以通过以下四种方式获取:
1、setting = dw_1.object.datawindow.syntax
setting = dw_1.describe("datawindow.syntax")
2、libraryexport ( libraryname, objectname, objecttype )
3、transaction.syntaxfromsql ( sqlselect, presentation, err )
4、自己组合拼装syntax,但这种要求开发者非常熟悉dwo对象语法
(四)通过setfilter函数过滤部分数据来实现
dwcontrol.setfilter ( format )
这种方法其实是一种间接达到目的的方法。
(五)通过处理sqlpreview事件来实现
这种方法也是一种间接达到目的的方法,它通过改变sqlpreview事件中的sqlsyntax参数来实现修改数据源。
三、常见错误处理检测方法
(一)对于因sql语句操作引起的错误,通常借助:sqlca.sqlcode或indicator variables来检测:
sqlca.sqlcode:
value meaning
0 success
100 fetched row not found
-1 error; the statement failed. use sqlerrtext or sqldbcode to obtain the detail.
indicator variables:
0 valid, non-null value
-1 null value
-2 conversion error
(二)对于其他系统错误,需要处理error、dberror、itemerror、systemerror等事件,如果是pb9可以借助:try...catch...finally...end try语句
………
本文未完待续
………
如需要进一步资料,请联系qq:27855043,msn:[email protected]
如有不当之处,敬盼您的指点。