编程论坛's Archiver

bingshi1986 发表于 2007-7-4 20:31

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

我想通过模糊检索,使查找的内容显示在数据窗口中,我的数据窗口名为dw_name,代码如下: <BR>string ls_name <BR>ls_name=trim (sle_name.text) <BR>if not ls_name=""then <BR>ls_name="%"+ls_name+"%" <BR>dw_name.retrieve(ls_name) <BR>else <BR>MessageBox("数据不全!","请输入待查询书目的名称!") <BR>end if <BR>sle_name.SetFocus () <BR>数据库已经连接上,数据窗口也已经做好,并且在其它项中的准确查找中都可使数据库列在数据窗口中,但当上面这个程序运行时就没有反应了,但是编译能够通过,请高手指点!<BR>

千金散尽 发表于 2007-7-4 22:01

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







乡村木子 发表于 2007-7-5 10:16

dw_1.settransobjecct(sqlca)<BR>dw_1.setfilter("[size=4][b]字段名[/b][/size] like"+"'%"+sle_1.text+"%'")<BR>dw_1.retrieve()<BR><BR>不过我这种只能对字符字段进行查询,我也不知道为什么。

fyh 发表于 2007-7-5 22:39

string ls_name <BR>ls_name=trim (sle_name.text) <BR>if not ls_name=""then <BR>    ls_name="%'"+ls_name+"'%" //字符查询一般用''括起来.<BR>    dw_name.retrieve(ls_name) //dw_name 是否已设置<U><STRONG>检索参数</STRONG><BR></U>else <BR>    MessageBox("数据不全!","请输入待查询书目的名称!") <BR>end if <BR>sle_name.SetFocus () <BR>

路過 发表于 2007-7-6 14:06

同意2樓的說法,不知道問提解決啦沒有<BR><BR>

wang_bo512 发表于 2007-7-17 09:51

<P>这样试试看<BR>string ls_name <BR>ls_name=trim (sle_name.text) <BR>if not ls_name=""then <BR>ls_name="%"+ls_name+"%" <BR><BR>dw_name.SetFilter(ls_name)</P>
<P>dw_name.Filter( )<BR>else <BR>MessageBox("数据不全!","请输入待查询书目的名称!") <BR>end if <BR>sle_name.SetFocus () <BR><BR><BR>如用retrieve要定义检索参数。</P>

ugly927846 发表于 2007-7-17 20:17

不懂,呵呵

andkylee 发表于 2007-7-27 09:32

应该是这个,单引号要放在%外面.<BR>dw_1.setfilter("<FONT size=4><B>字段名</B></FONT> like"+"'%"+sle_1.text+"%'")<BR>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.