注册 登录
编程论坛 PowerBuilder

请问如何实现模糊查找功能?我下面的代码哪里出错了?

bingshi1986 发布于 2007-07-04 20:31, 2312 次点击
我想通过模糊检索,使查找的内容显示在数据窗口中,我的数据窗口名为dw_name,代码如下:
string ls_name
ls_name=trim (sle_name.text)
if not ls_name=""then
ls_name="%"+ls_name+"%"
dw_name.retrieve(ls_name)
else
MessageBox("数据不全!","请输入待查询书目的名称!")
end if
sle_name.SetFocus ()
数据库已经连接上,数据窗口也已经做好,并且在其它项中的准确查找中都可使数据库列在数据窗口中,但当上面这个程序运行时就没有反应了,但是编译能够通过,请高手指点!
7 回复
#2
千金散尽2007-07-04 22:01

string ls_name
ls_name=trim (sle_name.text)
if ls_name=""or isnull(ls_name) then
MessageBox("数据不全!","请输入待查询书目的名称!")
else
ls_name="%"+ls_name+"%"
dw_name.retrieve(ls_name)
end if
sle_name.SetFocus ()
另外在application里面确信有connect using sqlca; if sqlca.sqlcode <> 0等等
在窗口下面有没有写上dw_1.settransobject(sqlca)
dw_1.retrieve()
if dw_1.rowcount<1 then
dw_1.insertrow(0)

#3
乡村木子2007-07-05 10:16
dw_1.settransobjecct(sqlca)
dw_1.setfilter("字段名 like"+"'%"+sle_1.text+"%'")
dw_1.retrieve()

不过我这种只能对字符字段进行查询,我也不知道为什么。
#4
fyh2007-07-05 22:39
string ls_name
ls_name=trim (sle_name.text)
if not ls_name=""then
ls_name="%'"+ls_name+"'%" //字符查询一般用''括起来.
dw_name.retrieve(ls_name) //dw_name 是否已设置检索参数
else
MessageBox("数据不全!","请输入待查询书目的名称!")
end if
sle_name.SetFocus ()
#5
路過2007-07-06 14:06
同意2樓的說法,不知道問提解決啦沒有

#6
wang_bo5122007-07-17 09:51

这样试试看
string ls_name
ls_name=trim (sle_name.text)
if not ls_name=""then
ls_name="%"+ls_name+"%"

dw_name.SetFilter(ls_name)

dw_name.Filter( )
else
MessageBox("数据不全!","请输入待查询书目的名称!")
end if
sle_name.SetFocus ()


如用retrieve要定义检索参数。

#7
ugly9278462007-07-17 20:17
不懂,呵呵
#8
andkylee2007-07-27 09:32
应该是这个,单引号要放在%外面.
dw_1.setfilter("字段名 like"+"'%"+sle_1.text+"%'")
1