当前位置: 代码迷 >> PB >> pb初级有关问题
  详细解决方案

pb初级有关问题

热度:95   发布时间:2016-04-29 09:21:56.0
pb初级问题
请指教。
下面是一个登陆窗口。但当输入口令和密码,点击“登陆”时。没反应。。。
一下代码是在“登陆”按钮的clickd()事件。
本人刚学pb,不懂,请大虾指教,谢谢
string pw
int n
select "密码" 
into:pw 
from "guanliyuan" 
where "guanliyuan"."口令"=:sle_name.text and "guanliyuan"."密码"=:sle_code.text;
if sle_name.text=trim(pw) then
  n=n+1
 if sqlca.sqlcode=0 then
open(w_denglu_user)
close(parent) 
elseif n=3 then
messagebox('警告','你已达到最大次数,不能登录')
close(parent)
else
  sle_name.text=''
sle_code.text=''
messagebox('警告','口令或密码输入错误')
end if
end if

------解决方案--------------------
感觉是楼主的 select 语句有问题。
------解决方案--------------------
select "密码"
into:pw
from "guanliyuan"
where "guanliyuan"."口令"=:sle_name.text and "guanliyuan"."密码"=:sle_code.text;

-->
string name , code
name = sle_name.text 
code = sle_code.text

select 密码
into:pw
from guanliyuan
where 口令=:name and 密码=:code;

------解决方案--------------------
假设:sle_name 是用户名的输入框, 而sle_code 是密码的输入框,
那么可以这么写试试:
C/C++ code
///先定义窗口的实例变量 ii_nstring pwselect "密码" into :pw from "guanliyuan"  where "guanliyuan"."口令"=:sle_name.text and "guanliyuan"."密码"=:sle_code.text using sqlca;if sqlca.sqlcode = 0 then    if sle_code.text = pw  then        open(w_denglu_user)        close(parent)     elseif ii_n < 3 then        ii_n ++        sle_name.text=''        sle_code.text=''        messagebox('警告','口令或密码输入错误')    else        messagebox('警告','你已达到最大次数,不能登录')        close(parent)    end ifelse    messagebox('错误','交互密码验证错误:'+sqlca.sqlerrtext)    close(parent)end if
------解决方案--------------------
难道是数据库没有连接上?
------解决方案--------------------
或者 用debug 看看到哪沒反應的
------解决方案--------------------
探讨
或者 用debug 看看到哪沒反應的

------解决方案--------------------
一步一步调找!
  相关解决方案