incoolwen 发表于 2007-11-8 14:28

帮下忙```找错```谢谢

<P>string str,passeword   //定义游标变量<BR>declare myyou cursor for //定义个游标<BR>select  yh,mima from T_yh; //从T_yh表找用户和密码<BR>open myyou;   //打开游标     <BR>do while (sqlca.sqlcode=0)   <BR>    fetch myyou into :str,:password; //把找到的用户和密码分别给两个变量<BR>    where str=:sle_1.text  //问一下,这里除了用IF还可以用什么语语判断<BR>   if sqlca.sqlcode=100 then<BR>        messagebox("提示","没有这个用户")<BR>        sle_1.text=""<BR>        sle_1.setfocus()<BR>    elseif password&lt;&gt;sle_2.text then<BR>        messagebox("提示","密码错了")<BR>    sle_2.text=""<BR>     sle_2.setfocus()<BR>else<BR>    open(w_suan)<BR>    close(parent)<BR>    close(myyou)//关闭游标,问下``这句放到那个地方好```<BR>  end if</P>
<P><BR>本人刚刚学PB``很多问题都不知道```还请大家帮帮我````谢谢```````</P>

fyh 发表于 2007-11-11 18:20

<P>在程序中尽量不要用游标`````这样导致程序运行慢啊``<BR>///以下是我个人的建议~`````````<BR>String ls_Used,ls_Pass<BR>Long ll_UsedC,ll_PassC<BR><BR>ls_Used = Trim(Sle_1.Text)   ///用户名<BR>ls_Pass = Trim(Sle_2.Text)  //口令<BR>///////用户<BR>select Count(1) INTO :ll_UsedC  from T_yh  Where yh = :ls_Used ///用户是否存在<BR>IF ll_UsedC = 0 Then    ///未找到<BR>    MessaGeBox('提示','用户不存在!')<BR>    Sle_1.SetFocus()<BR>    Return       ///返回不往下执行<BR>End if<BR>//////口令<BR>select Count(1) INTO :ll_PassC  from T_yh  Where Mima = :ls_Pass ///口令是否正确<BR>IF ll_PassC= 0 Then     ///未找到<BR>    MessaGeBox('Error','你输入的口令错误!')<BR>    Sle_2.SetFocus()<BR>    Return    ///返回不往下执行<BR>End if<BR>///以上IF条件不成立的情况执行<BR>open(w_suan)<BR>close(parent)<BR><BR><BR>    <BR></P>

jsxwr 发表于 2007-11-14 20:41

<P>实际程序编写时,应该多考虑其安全性,单独对用户名或密码报错,会带来不必要的麻烦,所以不如直接把两项写进一个条件语句中!另外应对用户尝试次数进行限制。<br>//在父窗口中定为局部变量 Long ll_times<br><br><br>String ls_Used,ls_Pass<br>Long ll_Used<br><br>ls_Used = Trim(Sle_1.Text)   ///用户名<br>ls_Pass = Trim(Sle_2.Text)  //口令<br><br>select Count(*) INTO :ll_Used  from T_yh  Where yh = :ls_Used and Mima = :ls_Pass ;///用户是否存在<br>IF ll_Used &lt; 1 Then    <br>    MessaGeBox('提示','用户或密码错误!')<br>    ll_times = ll_times +1<br>    if ll_times &gt;=3 then halt  //最多给3次尝试机会!<br>    Sle_1.SetFocus()<br>    Return       <br>End if<br><br>ywzX(w_suan)<br>close(parent)<br></P>
[align=right][color=#000066][此贴子已经被作者于2007-11-14 20:42:53编辑过][/color][/align]


页: [1]

编程论坛