用户登录及记录用户信息
type
TUserInfo = class
private
FUserID : Integer;
……
……
public
constructor Create;
procedure setUserID(UID : Integer);
……
……
function UserLogin(InputNumber,InputPW : String;QuerySet : TADOQuery): Boolean; //登录函数 property UserID : Integer read FUserID;
end;当用户要登录时,用登录函数来查找,如果正确,就把比如ID等信息放入FUserID等变量中,但是不管怎么样,只要想Private中的私有变量(如FUserID)赋植,就会出错,请问是为什么?谢谢
type
TUserInfo = class
private
FUserID : Integer;
……
……
public
constructor Create;
procedure setUserID(UID : Integer);
……
……
function UserLogin(InputNumber,InputPW : String;QuerySet : TADOQuery): Boolean; //登录函数 property UserID : Integer read FUserID;
end;当用户要登录时,用登录函数来查找,如果正确,就把比如ID等信息放入FUserID等变量中,但是不管怎么样,只要想Private中的私有变量(如FUserID)赋植,就会出错,请问是为什么?谢谢
用user.SetUserId(UID);这样使用不会出问题的。
可能你在其他地方对UserId赋值了,这里声明的是私有的变量,并且是只读的变量。
property UserID : Integer read FUserID write FUserID;
property UserID : Integer read FUserID write FUserID;
TUserInfo = class
private
FUserID : Integer;
FUserNumber : String;
FUserName : String;
FUserPurv : String;
FUserMemo : String;
FUserLogined : Boolean;
public
constructor Create;
function UserLogin(InputNumber,InputPW : String;QuerySet : TADOQuery): Boolean; //登录
function ChangeUserPW(UPW : String):Boolean; property UserID : Integer read FUserID;
property UserNumber : String read FUserNumber;
property UserName : String read FUserName;
property UserPurv : String read FUserPurv;
property UserMemo : String read FUserMemo;
property UserLogined : Boolean read FUserLogined;
end;constructor TUserInfo.Create;
begin
FUserID := -1;
FUserNumber := '';
FUserName := '';
FUserPurv := '';
FUserMemo := '';
FUserLogined := False;
end;function TUserInfo.UserLogin(InputNumber, InputPW: String;QuerySet : TADOQuery): Boolean;
begin
Result := False;
QuerySet.Close;
QuerySet.SQL.Clear;
QuerySet.SQL.Add('SELECT * FROM tUser WHERE UserNumber=' + '''' + InputNumber + '''' + ' AND UserPW=' + '''' + InputPW + '''');
QuerySet.Open;
if QuerySet.Recordset.RecordCount < 1 then
Result := False
else
begin
FUserID := QuerySet.FieldByName('UserNumber').AsInteger; //这里出错
FUserNumber := QuerySet.FieldByName('UserNumber').AsString;
FUserName := QuerySet.FieldByName('UserName').AsString;
FUserPurv := QuerySet.FieldByName('UserPurv').AsString;
FUserMemo := QuerySet.FieldByName('UserMemo').AsString;
FUserLogined := True;
Result := True;
end;
end;ADOQuery应该没有问题,各种设置都是好了的
不好意思...
constructor TUserInfo.Create;
begin
inherited;
FUserID := -1;
FUserNumber := '';
FUserName := '';
FUserPurv := '';
FUserMemo := '';
FUserLogined := False;
end;
而且我确信这和delphi的版本应该没什么关系..
不知道编译出现的错误提示是什么?
自己觉得数据库错的可能性比较大.
试一下
(********).Enable := False;括号里面该怎么写啊?
多谢各位大哥了!!惭愧~~~不过还是希望大家还是帮到底,那个Actionlist1.Actions[i].Enable不对,说没有Enable,我以前看过一篇文章介绍这个的,好象也不是这样写的,我记不清了~~