|
![]() | 作者: catonline [catonline]
![]() |
登录 |
我想用 ADOConnection和ADOQquery控件实现登陆密码验证,“pwd表”字段有id,name,pwd,部分代码如下: ...... begin adoquery_denglu.close; adoquery_denglu.sql.clear; adoquery_denglu.SQL.Add('select * from pwd'); adoquery_denglu.open; adoquery_denglu.locate('name',name.text,[] ); temp:= adoquery_denglu.FieldByName('pwd').AsString; if trim(temp) = pwd.Text then begin close; end else begin messagebox(handle,'用户名或密码错误,请重新登陆。','警告!',mb_ok); name.setfocus; end end ...... name.text为用户名,pwd.text为相应用户密码,temp为string型局部变量。现在我发现只要是密码栏输入了pwd表中所包括的密码而不管与query_denglu.locate'name',name.text,[] )的用户名是否对应都可以执行下去,我猜想程序只是执行了(当然是输入了pwd表中的某个密码的情况下) temp:= adoquery_denglu.FieldByName('pwd').AsString; if trim(temp) = pwd.Text then begin close; end 这部分,并不与用户名一起验证,但又不知道该怎样才能用ADOConnection和ADOQquery这两个控件实现密码验证,忘高手指点一二!谢谢了! |
地主 发表时间: 11/04 16:36 |
![]() | 回复: sainthero [sainthero] ![]() |
登录 |
你的选择是无条件的 把选择的条件加上 |
B1层 发表时间: 11/11 14:02 |
![]() | 回复: catonline [catonline] ![]() |
登录 |
我也知道只是检查了“密码”而已,可怎么加上条件,条件加在什么地方?还得请详细指导,谢了! |
B2层 发表时间: 11/14 07:48 |
![]() | 回复: sainthero [sainthero] ![]() |
登录 |
ADO不清楚 如果只是Query sql.add('select * from xxx where user=N'); parambyname('N').asstring:=youruser; ..... mypass:=query1.fieldvalues['password'].asstring; //然后去比较password |
B3层 发表时间: 11/14 18:16 |
![]() | 回复: catonline [catonline] ![]() |
登录 |
谢非常感谢!我也有一种方法可以实现了,可以交流一下:procedure Tdenglu.Button1Click(Sender: TObject); var temp1:string; begin if (name.Text ='') then begin messagebox(handle,'用户名不能为空!请输入用户名。','抱歉!',mb_ok); name.SetFocus; end else if (pwd.text='') then begin messagebox(handle,'请输入密码。','抱歉!',mb_ok); pwd.setfocus; end else begin adoquery_denglu.close; adoquery_denglu.sql.clear; adoquery_denglu.SQL.Add('select * from pwd where id='''+name.text+''''); adoquery_denglu.open; i:=adoquery_denglu.fieldbyname('id').AsString; temp1:=adoquery_denglu.fieldbyname('pwd').AsString; if i='' then //i 为全局变量 begin messagebox(handle,' 没有此用户! ','警告!',mb_ok); name.setfocus; pwd.Text:=''; end else if temp1<>pwd.Text then begin messagebox(handle,' 密码错误! ','警告!',mb_ok); pwd.SetFocus; end else close; end end; end. [此贴被 西南竹(catonline) 在 11月19日10时9分 编辑过] |
B4层 发表时间: 11/19 10:7 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号