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的表达式也能这么书写的话&