给一份登录函数代码:function TMainF.CheckUser(AUserName , AUserPwd : string):integer; var Query : TQuery; begin try Query := TQuery.Create(nil); Query.DatabaseName := DBName; Query.SQL.Add('select * from tsyhb where UserName=:UserName'); Query.ParamByName('UserName').AsString := AUserName; Query.Open; if Query.RecordCount = 0 then begin MessageDlg('用户名错误',mtError,[mbok],0); Result := -1; Exit; end else begin if Query.FieldByName('UserPwd').AsString <> AUserPwd then begin MessageDlg('用户名或口令错误',mtError,[mbok],0); Result := -1; Exit; end else Result := Query.FieldByName('Class').AsInteger; end; Query.Close; Query.Free; except Result := -1; MessageDlg('连接数据库出错',mtError,[mbok],0); end; end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses
unit2;
{$R *.dfm}procedure TForm1.FormShow(Sender: TObject);
begin
application.ShowMainForm:=false;
form2.ShowModal;
end;end.
////////////////////////////////////////////////
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm2 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;
logged:boolean=false;
implementation{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
begin
if (edit1.Text='stanely')and(edit2.Text='stanely')then
begin
application.ShowMainForm:=true;
logged:=true;
close;end
else
begin
showmessage('Bad password!');
end;
end;procedure TForm2.Button2Click(Sender: TObject);
begin
logged:=false;
close;
end;procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if not logged then
application.Terminate;
end;end.
form1為主窗體.代碼如他所述.
也可用qiqi97(我是菜鸟我怕谁),簡單.
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select * from tsyhb where UserName=:UserName');
Query.ParamByName('UserName').AsString := AUserName;
Query.Open;
if Query.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit;
end else begin
if Query.FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query.FieldByName('Class').AsInteger;
end;
Query.Close;
Query.Free;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;