pb 数据窗口中的 setsqlselect() 函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pb 数据窗口中的 setsqlselect() 函数相关的知识,希望对你有一定的参考价值。
我在PB中 对数据窗口添加如下代码:string user_nameuser_name="aa"ls_select="select * from cash_log where cash_log.user_name="+user_name dw_1.setsqlselect(ls_select)dw_1.retrieve()运行时会报错 : column 'aa' not found但是如果把其中一句改成ls_select="select * from cash_log where cash_log.user_name=‘aa’ "则运行正确请问我想用变量来确定select的条件,要真么消除错误??多谢支教啦,我水平太狗臭了,没脸见人
setsqlselect() 函数:获取数据窗口的select语法。
定义一个字符变量:
string ls_sql
ls_sql = dw_1.getsqlselect()
用来拼接查询条件,这样可以不使用参数的形式动态拼接查询条件来查询。
要配合setsqlselect()函数一起使用。
先get出来,然后对ls_sql进行加工修改后,再dw_1.setsqlselect()重新给回去,那么这个dw_1的后台语法就改变了,直接dw_1.retrieve(),就能按照新语法取值了。
这个修改的时候,只能修改where条件order by等。列的名字和个数,顺序,都不能做任何改动。 参考技术A 不知道你写没写全 前后应该都是"" ,里面的变量应该是'"++"' 的格式 意思就为'aa' ,+连接符要全;
ls_select="select * from cash_log where cash_log.user_name="+user_name
修改为ls_select="select * from cash_log where user_name=’ "+user_name+” ‘ “ 参考技术B string user_name
user_name="aa"
ls_select="select * from cash_log where cash_log.user_name= ‘"+user_name + “’”
dw_1.setsqlselect(ls_select)dw_1.retrieve()
字符串要用引号‘引起来’
如何使pb数据窗口不可编辑变为可编辑
对于整个数据窗口设置为只读后不可编辑,修正一下只读属性就可以了,dw_1.object.datawindow.readonly = "no"
对于数据窗口里面某一列设置Tab=0后也是无法编辑,需要将其调整过来
dw_1.modify( "某列名.TabSequence = 某一具体数值" )
还想到的一种就是将数据窗口某一列的protect属性设置了表达式,进行保护,将表达式删除即可
这样回答不知道够不,其他的暂时未想到…… :) 参考技术A 打开数据窗口,点击 工具栏中的 Tab order ,会看到每一列上方都一个数字
某列 不能修改编辑时,为0;允许修改编辑时,为非0数
各列的数字大小不要相同,一般都用10的整数倍
这个数据的大小顺序,决定了在运行该数据窗口,用tab键的顺序 参考技术B dw_1.object.datawindow.readonly = true //将数据窗口设为只读状态 参考技术C taborder设定上值,row-update里选择允许更新的表和列就行
以上是关于pb 数据窗口中的 setsqlselect() 函数的主要内容,如果未能解决你的问题,请参考以下文章
pb的数据窗口中的复选框,选中则在另一个dw窗口中显示,不选中则dw窗口中该条数据消失