关于QUERY中COUNT()的调用,我在线等待。(10分)

  • 主题发起人 主题发起人 yydreamer
  • 开始时间 开始时间
Y

yydreamer

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:我在QUERY_LOGIN中的SQL属性写了如下语句:
select count(员工号)
from KQ_Person
where 员工号=:USER
and 密码=:PASSWD
and 用户权限='4'


我将QUERY_LOGIN放在了DATAMODULE1中
我现在想在UNIT1中调用count,应该如何调用?
我在UNIT1中写了如下:
with datamodule1 do
Begin
//database.Params.Values['server name']:='.'; 
database.Connected:=true;
passwd:=edit_password.Text;
passwd:=copy(passwd+passwd,1,10);
passwd:=encrypt(passwd,123);
query_login.Params.ParamValues['USER']:=edit_username.Text;
query_login.Params.ParamValues['PASSWD']:=passwd;
query_login.Open;
if 此处要判断count是否为1,应该如何将count调出???
 
select count(员工号) as m
from KQ_Person
where 员工号=:USER
and 密码=:PASSWD
and 用户权限='4'

query_login.fieldbyname('m').asinteger 就是你要的!
 
不用改sql命令
query_login.Fields[0].AsInteger 就是了
 
Pipi.说的对
 
OK!这两种我都试过了,都可以。
谢谢,但是又出现了一个问题,我做的这个登陆程序,每回登陆都登不上去
大家再帮我看看下面这锻程序:
procedure TForm_Login.BitBtn_LoginClick(Sender: TObject);
var
passwd:String;
begin
with datamodule1 do
Begin
//database.Params.Values['server name']:='.';
database.Connected:=true;
passwd:=edit_password.Text;
passwd:=copy(passwd+passwd,1,10);
passwd:=encrypt(passwd,123);
query_login.Params.ParamValues['USER']:=edit_username.Text;
query_login.Params.ParamValues['PASSWD']:=edit_password.Text;//passwd;
query_login.Open;
if query_login.Fields[0].AsInteger =1 then
begin
Form_Main.Show;
Form_Login.Hide;
end
else
Begin
Application.MessageBox('用户名和密码输入错误!','登录失败',MB_OK);
database.Connected:=false;
End;

End;
end;
我在数据库表KQ_Person中已输入了一个用户名和密码,但我用这个用户名和密码登陆,它都走了ELSE...
Application.MessageBox('用户名和密码输入错误!','登录失败',MB_OK);这个分支,请问这是什么原因?
 
谢谢大家,我大概知道我问的第二个问题是怎么回事了。

就第一问题,我想请教各位一下,是不是如果我想调用下面Query中的‘姓名’只要写query_login.Fields[1].AsString就可以了。
如果要用 ‘员工号’只要写:query_login.Params[0]AsString;
如果调用密码只要写:query_login.Params[1]AsString;就可以了???

QUERY_LOGIN中的SQL属性
select count(员工号),姓名
from KQ_Person
where 员工号=:USER
and 密码=:PASSWD
and 用户权限='4'
 
是的
另外user有点敏感,有些数据库里面他是保留字,可以换成usr之类
 
OK!
谢谢!:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部