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






