首先新建数据访问模块(Data Module),如下图:
这里使用MySql数据库,考虑到dbGo组件(即ADO)对MySql的不友好,使用dbExpress组件行进数据库的访问。
首先添加一个TSqlConnection控件。
为了使用dbExpress访问数据库,需要把MySql的安装路径下bin目录下的libmySQL.dll文件拷贝至Delphi安装路径的bin目录下。
如上图所示作必要的设置即可。(LoginPrompt属性设置成false以关闭每次连接数据库时的认证对话框)
创建一个Form作为登陆页面用,如下图所示:
可对Form的属性作必要的设定(如:BorderStyle:bsDialog; Position:poDesktopCenter)
添加一个TSQLQuery控件在于其上。后台的代码如下所示:
- unit LoginUnit;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls, DB, ADODB, WideStrings, DBXMySql, SqlExpr, FMTBcd,
- DBClient, SimpleDS;
- type
- TFrmLogin = class(TForm)
- Bevel1: TBevel;
- Label1: TLabel;
- Label2: TLabel;
- Edit1: TEdit;
- Label3: TLabel;
- Edit2: TEdit;
- Button1: TButton;
- Button2: TButton;
- LoginSQLQuery: TSQLQuery;
- procedure Button2Click(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- FrmLogin: TFrmLogin;
- implementation
- uses DataModuleUnit;
- {$R *.dfm}
- procedure TFrmLogin.Button1Click(Sender: TObject);
- var
- username, password : string;
- recordcount : Integer;
- begin
- username := Edit1.Text;
- password := Edit2.Text;
- if username = '' then
- begin
- ShowMessage('ユーザ名を入力してください!');
- Edit1.SetFocus;
- end
- else if password = '' then
- begin
- ShowMessage('パスワードを入力してください!');
- Edit2.SetFocus;
- end
- else
- begin
- LoginSQLQuery.SQLConnection := DataModule1.MySQLConnection;
- LoginSQLQuery.CommandText := 'SELECT * FROM T_USR WHERE USID =' + username + ' AND PWD = ' + password;
- recordcount := LoginSQLQuery.RecordCount;
- if recordcount < 1 then
- begin
- ShowMessage('ユーザ名又はパスワードが違います!');
- end
- else
- begin
- ShowMessage('ログインします!');
- end;
- end;
- end;
- procedure TFrmLogin.Button2Click(Sender: TObject);
- begin
- close;
- end;
- end.