PB中如何使用拼音进行模糊查询

例如我查询的人叫做‘张三’我输入字母‘z’怎样才能自动列出所有z字母开头的人名?... 例如我查询的人叫做‘张三’ 我输入 字母‘z’ 怎样才能自动列出 所有z字母开头的人名? 展开
 我来答
iamwangzhe2015
推荐于2016-07-07 · TA获得超过684个赞
知道小有建树答主
回答量:320
采纳率:100%
帮助的人:281万
展开全部
①在where后面写 z% 就代表开头字母是z的意思 !
如果在pb的脚本区编写的话 和sqlserver中还不太一样.
给你说下思路(这是我再别的地方回答人的思路,不懂还可以问我):
这是一种高级查询方法,在数据很多的时候查询条件尤为突出!
首先得到数据窗口的原始数据源sql语句.譬如你要对dw_1的数据进行多条件过滤.就在事件中写:
string ls_sql
ls_sql = dw_1.getsqlselct()//此时ls_sql变量得到dw_1的sql语句.
然后将条件拼成一个and 语句 例子:
譬如年龄字段,性别字段和班级字段.(这只是个例子,希望你能明白意思,然后为你所用)
分别为age,sex,class
此时用户已经选完了这三个条件的值(此处可以多种方法实现.1让用户直接输入。单行编辑框 2。多选框。3.下拉列表框.等等)
譬如用户选择的是age = 24,sex = 1(1-为男,0为女),class = 2
此时拼串!

例子:
string ls_sql,ls_sql_new,ls_condition
string ls_age,ls_sex,ls_class
ls_sql = dw_1.getsqlselect()//得到默认的数据窗口sql语句。
ls_age = '24'
ls_sex ='1'
ls_class ='2'
ls_condition =" age='"+ls_age+"' and sex = '"+ls_sex +"' and class = '"+ls_class+"'"//条件拼写完成
ls_sql_new = ls_sql +" where "+ ls_condition //这里注意拼写的时候where 后面 and 前后都要加个空格!
dw_1.setsqlselect(ls_sql_new)//将拼成的串 设置成新的数据窗口sql语句 此时就是多个过滤条件的结果!
更多追问追答
追问
z%我知道 这个是模糊查询 可能我提问不是太清楚    看了你回答这么多 我也怪不好意思的 
我的意思是这样 例如我要查询的人名字叫‘张三’ 那么我在sle控件里面输出zs 这时候应该要能检索出‘张三’这个人
我现在用的是比较笨的方法 例如 表中有一个字段为 姓名 然后我再添加一个字段 叫做 ‘姓名代码’
张三 对应的姓名代码 就是‘zs’ 李四代码就是 ‘ls’ 然后使用模糊查询 也就是你所说的姓名 like %str%
追答
嗯?现在的问题是什么?
blue_flyer
2012-05-29 · TA获得超过223个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:158万
展开全部
给你个代码
最好是有你设的名称代码列,这样检索起来效率,根据数据窗口中的代码列执行增量查询
在SLE控件中新建pbm_enchange自定义事件函数 然后在里面写入
if sle_1.text='' then
dw_1.setfilter("")
dw_1.filter()
elseif sle_1.text<>'' then
dw_1.setfilter("pm_pym like '"+upper(sle_1.text)+"%'")
dw_1.filter()
end if
追问
不是这个意思。算了我自己想办法吧。谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式