浅谈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:WEIYIN2001@MSN.COM
如有不当之处,敬盼您的指点。