例如有一个登陆界面,要求输入用户名和密码,下面有一个登陆的按钮。当按下登陆按钮的时候,要求验证输入框中的用户和密码是否在sql数据库的ID表中。ID表中有ID,password,和quanxian三列,当ID和password匹配的时候,返回quanxian中的值。如果没有则返回值为0。问要用什么控件,具体代码是什么。
解决方案 »
- 多线程
- sql语句题
- 我差劲得很,居然不知道在Delphi中如何实现几个不同类型的变量共享内存区,惭愧,那位帮我回忆一下?
- 替我们市场总监发的欲觅技术总监/资深经理/项目经理/系统分析员/系统设计员/程序员(测试员就不要来了)的征友启事★★★★★
- 文本文件保存的问题。
- 各位大侠,哪里有DELPHI的反编译软件下载?
- 刚找到新工作,做在线视频捕捉的开发,请大家提点建议
- 如何实现这样的功能?
- 库表结构转换问题:在Delpli 中如何将MS SqlSERVER中的表转换为FoxPro格式保存?
- 小弟用DELPHI做一个ASP组件,碰到一些问题,急!!!!求救!详情请看!
- 简单的问题,我很菜鸟。
- 将Excel表格中的数据导入数据库
设置LoginPromt:=true;
2、另外一种是自己设计的方式,不过不是很安全
你可以制作一个函数
Function UsePowerCheck(UserID:string;UserName,UserPassword:string;):boolean;
begin
with adoquery1 do
begin
close;
sql.clear;
sql.add('select uid, uname,upassword from tblpower');
sql.add('where uid='''+userid+''' and uname='''+username+''' and upassword='''+userpassword+'''');
open;
if Recordcount<>0 then
result:=true
else
result:=false
end;
end;
ADOconnection这个控件验证的是sql数据库的用户和密码的吧?我的用户和密码是保存在数据库中的一张表上的。我要返回的值是该用户记录中的对应quanxian列中的值,不是一个布尔值。
还有你这段代码是写在那个控件里的?
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from tblpower');
sql.add('where uid='''+userid+''' and uname='''+username+''' and upassword='''+userpassword+'''');
open;
if Recordcount<>0 then //执行出错处理
ss:=adoquery1.fieldname['quanxian'].value;//一个用户应该只一条记录吧 我想
.......
觉得你的代码可行,不过上午没时间试了,下午试。先回一下
我的目的不光是验证是不是合法用户,还要根据用户给出相应的权限呀
你试着改改,应该能用的。
procedure TLogoForm.BitBtn1Click(Sender: TObject);
var
cs,ce: String;
begin
Table1.Active := True;
cs := Edit1.Text;
ce := Edit2.Text;
with Table1 do
if Locate('username;passwd',VarArrayOf([cs,ce]),[loPartialKey]) then
begin
//下面的变量是global.pas里定义的
TrueName := Table1['name'];
UserName := Table1['username'];
Passwd := Table1['passwd'];
UserLevel := Table1['level'];
Table1.Active := False;
modalresult := mrOK;
end
else
begin
ShowMessage('用户名和密码错误!');
Edit1.SetFocus;
end;
end;
if 记录数=0 then
该用户名不存在,或者密码错误,所以返回 false (禁止登陆)
else
用户名存在且密码正确返回 true
你可以根据这个函数判断是否是你系统中注册的用户!
然后根据该用户设定权限!