三、基于配置的datawindow控件,轻松完成校验功能(扩展filter和find函数)

本文探讨了如何在PowerBuilder中扩展datawindow控件的setfilter和find函数,以简化字段类型不同(如字符型、数值型、日期型)时的表达式编写。作者提出了使用问号作为变量占位符的灵感,类似于SQL动态游标的写法,旨在提高开发效率和降低错误率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerBuilder开发人员,datawindow的setfilter和find函数的表达式写法是一样的,变量要开发人员串到表达式中,但是表达式特容易写错。字符型字段、数值型字段、日期型字段的写法都不一样。

看一下setfilter和find函数表达式的范例"age > 24 and brxm = '欧阳严严'",如果表达式中的“24”和“孙”是变量的话,又要连接字符串"age > "+string(li_age)+" and brxm = '"+ls_username+"'"。用起来其实很不舒服,有没有什么简便一点的方法可以实现呢?

 

扩展filter和find函数想法的由来

我很喜欢PB里的动态游标的写法,SQL里的变量用问号来表示,using值直接用变量。

int li_age
string ls_username, ls_dm
li_age = 24
ls_username = '孙木贞'
ls_sql = "SELECT dm FROM xtgl_ddlbn WHERE age >= ? and username = ?"
Declare cur_ddlb Dynamic Cursor For SQLSA ;
Prepare SQLSA From :ls_sql ;
Open Dynamic cur_ddlb Using :li_age, :ls_username;
Do While True
	Fetch cur_ddlb Into :ls_dm;
	If sqlca.SQLCode <> 0 Then Exit
	
Loop
Close cur_ddlb ;

如果setfilter 和 find的表达式也能这么书写的话&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值