首页 > 开发 > 综合 > 正文

浅谈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]

如有不当之处,敬盼您的指点。

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表