📄 unitlogin.~pas
字号:
unit UnitLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls,ADODB;
type
UserInfo = record
userid: integer;
username: string;
password: string;
end;
type
TFrmLogin = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
ComboBox1: TComboBox;
Edit1: TEdit;
Bevel1: TBevel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
time: integer;
auser: UserInfo;
implementation
uses UnitMain, UnitDM;
{$R *.dfm}
procedure TFrmLogin.BitBtn1Click(Sender: TObject);
var
str2, pass1, pass2: string;
time: integer;
adoquery2: TADOQuery;
begin
adoquery2 := TADOQuery.Create(self);
adoquery2.connectionstring := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False; '
+ 'Initial Catalog=XHXS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=NANCHANG-ZBKW28;Use Encryption for Data=False;Tag with column collation when possible=False ';
time := time + 1;
str2 := 'select user_pass from user where user_name = :name';
with adoquery2 do
begin
close;
SQL.Clear;
SQL.Add(str2);
parameters.ParamByName('name').Value := trim(combobox1.Text);
if (not prepared) then
prepared := true;
try
open;
except
ExecSQL;
end;
auser.userid := fieldbyname('user_id').value;
pass1 := fieldbyname('user_pass').Value;
pass2 := trim(Edit1.Text);
if (pass1 <> pass2) and (time <= 4) then
begin
if (time = 4) then
begin
showmessage('登录失败!');
application.Terminate;
end;
showmessage('密码输入错误,请再输入一次');
exit;
end;
if (pass1 = pass2) then
begin
ModalResult := mrOK;
FrmLogin.close;
end;
adoquery2.close;
adoquery2.Free;
end;
end;
procedure TFrmLogin.BitBtn2Click(Sender: TObject);
begin
application.Terminate;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
var
str1: string;
adoquery1: TAdoquery;
begin
time := 0;
combobox1.Clear;
adoquery1 := TADOQuery.create(self);
adoquery1.connectionstring := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=XHXS;Use Procedure for Prepare=1;Auto Translate=True; '
+ 'Packet Size=4096;Workstation ID=NANCHANG-ZBKW28;Use Encryption for Data=False;Tag with column collation when possible=False ';
str1 := 'select user_name from user';
with adoquery1 do
begin
close;
SQL.Clear;
SQL.Add(str1);
if (not prepared) then
prepared := true;
try
open;
except
ExecSQL;
end;
while not eof do
begin
first;
Combobox1.Items.Add(fieldbyname('user_name').Value);
next;
end;
end;
adoquery1.Close;
adoquery1.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -