求助:PB登录selcet语句查询用户名和密码不对也可以返回0
编了一个登录窗口,用SELECT语句查询,如果单行编辑框输入的内容(用户编码)在用户表中有记录刚进行下一步操作,我用户表中的数据为007,但是如果单行编辑框输入的内容是0078,select语句的返回值也是0,也就是说只要单行编辑框输入的内容前三们是007后面不管是什么都可以通过,一直不明白是什么问题,请高手指点,不胜感激!我是PB新手,大家多帮助呀.
[解决办法]
改成这样
- C/C++ code
string ls_operator_id,yhm = '%%^#$%' --用户名先随便取一个ls_operator_id=sle_zh.textselect yonghuming into :yhm from caozuoyuan where bianma=:ls_operator_id;if sqlca.sqlcode <> 0 then //语句执行不成功(可能原因有:①数据库连接有问题②表名或字段名不存在③返回的行多于1行,也就是bianma有重复) messagebox("错误","用户判断出现问题!~r~n出错原因:" + sqlca.sqlerrtext ,StopSign!) returnend ifif yhm = '%%^#$%' then //用户名还是先前那个随便取的,说明该用户不存在 sle_zh.text="" dlcs = dlcs + 1 //登录错误次数加1 //登录错误次数达到3次,则无法再进行登录,自动退出程序 if dlcs >= 3 then messagebox("登录失败","对不起,你没有使用权限!") Halt close; end if returnend if//用户存在,设置用户名sle_yhm.text = yhm//将焦点设置到密码输入框上sle_mima.setfocus()