
统登录对话框(如图1-1 所示)是一般的数据库管理系统的基本功能之一,用于提供系统用户登录身份验证功能,只有成功登录之后才能启动和使用系统,从而保证系统数据安全。系统登录对话框用两个文本框分别输入用户名和登录口令, 按钮用于执行用户名和登录口令验证, 按钮用于退出登录。
本例讲述delphi中,使用SQL数据库连接验证系统登录。
ADOConnection组件
ADOQuery组件
系统登录对话框主要有以下特点:
(1)界面简单。对话框中只需要使用标签显示文本框提示,用文本框来输入用户名和登录口令,用命令按钮执行用户和密码的验证以及系统的退出。
(2)基于数据库验证。一般数据库管理系统登录对话框在实现时都将用户登录信息(用户名和登录口令)保存在数据库中,这样便于管理系统用户,与直接将用户登录信息
放在代码中更有灵活性。
1.ADO Connection对象
ADO Connection对象代表了打开的、与数据源的连接,在访问数据源之前,必须先建立连接。本实例中用到的ADO Connection对象属性和方法分别如下:
ConnectionString属性:指定连接数据源的基本信息,本实例使用ADO访问保存
登录信息的Access 数据库, 使用的连接字符串为:
“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=图书管理系统;Data Source=服务器名”。
✧ Open方法:打开数据源连接。
✧Close方法:关闭数据源连接。
2.ADO Recordset对象
ADO Recordset 对象用于保存从数据源获得记录集,本实例中用到的属性、集合和方法分别如下:
✧ActiveConnection 属性:代表数据源的活动连接,通常将其设置为已建立的Connection对象。
✧ EOF属性:测试当前记录位置是否位于记录集的最后一个记录之后。如果当前记录位于记录集的最后一个记录之后EOF属性将返回True,否则返回False。
✧Fields 集合:包含Recordset 对象的所有Field 对象,即可使用Fields 来获得当前记录各个字段的值。例如,objRs.Fields("口令").Value获得当前记录的“口令”字段的值。
✧ Open 方法:用于打开记录集,其参数为执行查询的SQL 命令字符串,如:
objRs.Open("SELECT 口令FROM 系统用户WHERE 用户名='admin'")
本实例的实现包括创建数据库、设计表单、建立ADO引用和编写功能代码三个步骤。
1.创建数据库和表
△开始/程序/Microsoft SQL Server/企业管理器
运行企业管理器后,依次展开
控制台根目录/Microsft SQL Servers/(Local)(Windows NT)/数据库
在“数据库”点右键,弹出菜单选择“新建数据库”
在弹出的新建数据库的“数据库属性”的名称处输入数据库的名称:图书管理系统。
△创建表。
在建立好的“图书管理系统”上右键,新建“表”。如下图
然后建立如下的结构:
完成时关闭窗口,提示保存,输入表的名字:操作员信息表
接着我们给它添一条测试记录
在“操作员停息表”右键,弹出菜单选择“打开表”/反回所有行
然后输入如图内容:操作编号:001
操作员姓名:abc
操作员密码:123
操作员级别:10
时间:空
2.设计窗体
Delphi为可视化的程序设计语言,其应用程序界面就是窗体,而窗体设计主要通过鼠标拖放操作完成。本实例中的系统登录对话框窗体实现,窗体中需用标签控件显示各输入框提示,用文本框输入用户名和口令,用命令按钮提交验证或退出登录,其具体设计步骤
如下:
(1)启动Delphi
选择Windows“开始”菜单中的“程序”/“Borland Delphi7/Delphi7.0”命令,启动Delphi 7.0,如图1-9所示。
Delphi 7.0启动后,已为我们自动建好了一个窗体,我们调整它到适当大小,然后在其上放置如下控件:
两个Label,两个Edit,两个Button,一个ADOQuery,一个ADOConnection。控件属性设置如下:
| 控件名 | 属性 | 属性值 |
| Form1 | Caption | 系统登录 |
| Label1 | Caption | 操作员姓名 |
| Label2 | Caption | 操作员密码 |
| Edit1 | Text | 空 |
| Edit2 | Text | 空 |
| PasswordChar | * | |
| Button1 | Caption | 登录 |
| Button2 | Caption | 退出 |
| ADOConnection1 | ConnectionString 注意:这一步的值我们后面讲设置方法 | Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=图书管理系统;Data Source=LRH01 |
| ADOQuery1 | Connection | ADOConnection1 |
选中ADOConnection1,然后在“对象检查器”找到ConnectionString,在它的右测点“…”按扭,弹出如下图所示:
选择:“使用连接字符串”,点“构建”按扭。出现如下图:
然后选择“Microsft OLE DB Provider for SQL Server”驱动。出现如下
第一选择你的SQL服务器,一般就是本机电脑名。只要你的SQL安装正常,都可以正常选择
第二,选择使用指定的用户名和密码,用户名输入:sa
第三,在服务器上选择数据库:选择我们建立好的:图书管理系统
然后点一下“测试连接”,提示成功。确定后,就设置好了。
2.添加代码:
双击“确定”按扭,为之添加如下代码:(红色部份为输入的代码)
procedure TForm1.Button1Click(Sender: TObject);
begin
with
adoquery1 do
begin
close;
SQL.Clear;
Sql.Add('select * from 操作员信息表 where (操作员姓名=:a) and (操作员密码=:b) ');
parameters.ParamByName('a').Value:=Trim(edit1.Text);
parameters.ParamByName('b').Value:=Trim(edit2.Text);
open;
end;
if adoquery1.RecordCount>0 then
application.MessageBox('登录成功!','提示',0+)
else
application.MessageBox('用户名或密码不正确,请重新输入!','提示',0+);
end;
然后为“退出”按扭添加代码:
procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate;
end;
全成后全部保存,然后点,运行测试,输入用户名:abc 密码:123
提示登陆成功,随便输入一用户名和密码,提示错误。
这就是SQL的初级应用,下一篇我们讲解更深的应用。
附本例源文件过错整代码:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOConnection2: TADOConnection;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with
adoquery1 do
begin
close;
SQL.Clear;
Sql.Add('select * from 操作员信息表 where (操作员姓名=:a) and (操作员密码=:b) ');
parameters.ParamByName('a').Value:=Trim(edit1.Text);
parameters.ParamByName('b').Value:=Trim(edit2.Text);
open;
end;
if adoquery1.RecordCount>0 then
application.MessageBox('登录成功!','提示',0+)
else
application.MessageBox('用户名或密码不正确,请重新输入!','提示',0+);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
application.Terminate;
end;
end.
本教程原创:李荣辉 QQ:185225745 欢迎大家加入我的QQ群一起学习delphi. 群号:29200817
