delphi7操作数据库之Access
实例1
系统登录对话框
系统统登录对话框,如图1-1 所示,是一般的数据库管理系统的基本功能之一~用于提供系统用户登录身份验证功能~只有成功登录之后才能启动和使用系统~从而保证系统 数据安全。系统登录对话框用两个文本框分别输入用户名和登录口令~ 按钮用于执行用户名和登录口令验证~
按钮用于退出登录。
图1-1 系统登录对话框
, Eenter键替代Tab键
, ADO Connection对象
, ADO Recordset对象
在动手
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
“系统登录对话框”前~先来对该实例进行一些分析~以便理清思路~掌握一般数据库管理系统登录对话框设计的基本方法。
系统登录对话框主要有以下特点:
,1,界面简单。对话框中只需要使用标签显示文本框提示~用文本框来输入用户名和登录口令~用命令按钮执行用户和密码的验证以及系统的退出。
,2,基于数据库验证。一般数据库管理系统登录对话框在实现时都将用户登录信息,用户名和登录口令,保存在数据库中~这样便于管理系统用户~与直接将用户登录信息放在代码中更有灵活性。
一般数据库管理系统登录对话框有以下有两种基本方法:
【方法1】在数据库中建立一个数据
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
用于保存系统用户登录基本信息~在设计登录对话框时通过查询该数据表完
成验证。该方法具有一般性。
【方法2】对于一些支持安全验证的数据库管理系统~如Microsoft SQL Server、
Microsoft Access~可以将系统用户定义为数据库用户。在设计登录对话框时~使用用户输入的用户名和登录口令来连接数据库~让数据库管理系统自己完成验证。
本实例采用方法一来实现~在实现时还增加了限制登录次数功能~用户每次最多允许5 次验证操作~当用户登录成功后将保存用户登录的时间和登录系统的次数~这样便于对用户的综合管理。
1(ADO Connection对象
ADO Connection对象代表了打开的、与数据源的连接~在访问数据源之前~必须先建立连接。本实例中用到的ADO Connection对象属性和方法分别如下:
2.ConnectionString属性:指定连接数据源的基本信息~本实例使用ADO访问保存登录信息的Access 数据库~ 使用的连接字符串为:
“Provider=Microsoft.Jet.OLEDB.3.51;Data Source=E:\
精彩范例\\01\db\db01.mdb”。
-9-
第 1篇简单应用篇
? Open方法:打开数据源连接。
? Close方法:关闭数据源连接。
3(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(创建数据库
本实例中用于实现登录验证的数据保存在Access 数据库中~该数据库用MicrosoftOffice 办公软件的Microsoft Access工具创建~其具体操作步骤如下:
,1,启动Microsoft Access~打开可视化数据管理器~如图1-2所示。
图1-2
点文件/新建/在右侧出现的新建文件任务下选择“空数据库”~弹出保存位置对话框~这时我们选择存到我们程序的目录下就行了~如:桌面/delphi数库库实例/db01.mdb,然后出现如下图1-3
,2,创建表
图1-3
选中左边的“表”~再点上面的“设计”~就弹出了表
设置的视图~我们建立如图1-4的表:
图1-4
创建“用户表”结构~添加了字段后的“表结构”对话框如图1-4 所示。
在“表结构”对话框的“字段列表”显示了该表的字段~并允许修改字段的名称、顺序位置、验证文本、验证规则、缺省值、是否零长度、是否为必要字段等。
表1-1 “系统用户”表结构
字段定义如下:
字段名 类型 长度
ID 自动编号 20
USERNAME 文本 20
USERPASS 整型
TIMES
LASTTIME 日期/时间
单击按钮~打开保存数据库表对话框~在对话框中输入数据库表的名称T_USER~然后单击按钮对设计的T_USER数据库表进行保存~如图1-5所示。
图1-5
,3,添加数据记录。
在设计完成T_SUER数据库表后~如图1-7所示的对话框中~选中T_USER数据表~单击按钮打开T_USER表~在表中添加数据记录~如图1-6 所示。
图1-6
完成上述操作后,我们创建了一个名为“db01”的Access数据库,数据库中包含一个名为“T_USER”的数据表,数据表中包含了两条记录,记录1的“USERNAME”字段值为admin,“USERPASS”字段值为adminpass 记录2的“USERNAME”字段值为abc,“USERPASS”字段值为123。
2(设计窗体
Delphi为可视化的程序设计语言~其应用程序界面就是窗体~而窗体设计主要通过鼠标拖放操作完成。
本实例中的系统登录对话框窗体实现~窗体中需用标签控件显示各输入框提示~用文本框输入用户名和口令~用命令按钮提交验证或退出登录~其具体设计步骤 如下:
,1, 启动Delphi
选择Windows“开始”菜单中的“程序”/“Borland Delphi7/Delphi7.0”命令~启动Delphi 7.0~如图
程序启动后~自动为我们创建好了窗体文件~我们对这个窗体的大小做一定调整~然后添加两个如下控件。
确保打开了对象窗口~即运行程序时的主窗口。设置窗体的相关属性~在属性窗口中设置Caption属性为“系统登录”~Name 属性为“Login_form”~同时也可设置其他的属性。
创建的登录窗体如图1-8 所示。窗体属性和控件属性设置如表所示~窗体文件保存为login.pas。
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
文件保存名为默认Project1.dpr。
图1-8
控件名 属性 属性值
Caption 系统登录 Form1 Position poScreenCenter
Label1 Caption 用户名
Label2 Caption 密码
Edit1 Text 空
Text 空 Edit2 PasswordChar *
Button1 Caption 确定
Button2 Caption 取消
ADOQuery1
3(建立ADO 引用
要在Delohi7 工程中使用ADO对象来访问数据库~必须在窗体中建立ADO对象~其
操作步骤如下:
,1,添加数据连接源
选择工具栏的“ADO”选项~单击按钮~再在窗体上放置按下鼠标左键放置一个ADOQuery连接对象。
,2,对ADOQuery对象进行数据库连接。
选中ADOQuery对象~然后单击属性的Connection
String属性按钮打开如图1-9所示的对话框。
图1-9
,3,选择数据连接方式
在如图1-9所示的对话框中选择“Use Connection
String”~然后单击“创建”按钮打开如图1-10所示的对话框。
图1-10
,4,选择数据库类型
在如图1-10所示的对话框中选择“Microsoft Jet 4.0 OLE DB Provider”选项~然后单击“下一步”按钮打开如图1-11所示的对话框。
1-11
注:这一步点击“…”按扭~选择我们前面建立好的数据库文件db01.mdb。然后请删除db01.mdb前的路径~这样就是用相对路径~通用性更强。然后点“测试连接”~提示测试成功。
1-12
4(编写功能代码
具体的登录验证包括以下功能:
?取消登录功能
用户单击“取消”按钮时~显示如图1-13所示的对话框询问用户是否真的退出登录~若用户单击对话框中的按
钮~则结束应用程序~退出登录,若单击按钮则继续执行登录操作。
1-13
?执行登录验证
用户单击“确定”按钮时~根据用户输入的用户名和口令执行登录验证。首先检验本次验证是否超过允许的最多验证次数~若超过则直接退出登录~否则进一步验证用户名和口令的正确性。根据用户名和口令是否正确、是否正常完成验证过程给出相应的提示信息。
编写功能代码的具体操作步骤如下:
,1,系统初始化
在窗体创建时需要对全局变量进行初始化~初始登录的最多次数以及登录的次数。具
体代码如下:
在窗体上双击~弹出窗体的Create事件~代码如下 procedure TLogin_Form1.FormCreate(Sender: TObject);
begin
maxtimes:=3; //设置充许输入错误的最大次数
logintimes:=0; //统计用户使用过系统的次数
end;
注意~在这段代码上面~就是{$R *.dfm}之前~要先定议这两个变量:
maxtimes,logintimes:integer;
做好的代码如下图:
,2,实现退出窗体功能。
?双击“取消”按钮~在代码窗口中添加按钮的单击事件过程
代码。
Procedure TLogin_Form1.Button2Click(Sender: TObject);
begin
close;
end;
?为了完成退出时弹出对话框~还必须对该窗口的OnClose事件进行代码编程。具体代码如下:
procedure TLogin_Form1.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
if MessageDlg('你选择了系统退出~退出将不能启动管理系统~是否真的退出,',mtConfirmation,[mbYes, mbNo], 0) = mrYes THEN //
系统对话框
ACTION:=caFree //如果单击是按钮~则退出系统登录
ELSE
ACTION:=caNone; //如果单击否按钮~则继续系统登录
end;
?实现登录功能
procedure TLogin_Form1.Button1Click(Sender: TObject);
var
lasttime,aname,apass,sqlstr:string; //定义四个字符串变量 aname和apass分别用来存放用户输入的用户名和密码 ,sqltr用来存放查询语句
begin
inc(logintimes);
if logintimes>maxtimes then //如果登陆次数 logintimes大
于允许的最大次数maxtimes时
begin
showmessage('你已经超过充许验证次数:~将退出登录
系统:');
application.Terminate; //终止应用程序执行
end
else
begin
if (length(trim(edit1.Text))>0) or (length(trim(edit2.Text))>0) then
begin
aname:=trim(edit1.Text); //取得用户输入的用户名
apass:=trim(edit2.Text); //取得用户输入的密码
sqlstr:='select * from t_user where
(username='''+aname+''') and(userpass='''+apass+''')';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.Open; //执行SQL语句查询
if ADOQuery1.RecordCount>0 then //如果得到的
记录大于0条~说明找到满足条件的记录,说明用户名密码成功
begin //验证通过后~更新用户的登陆时间和登
陆次数
lasttime:=DateTimeToSTR(date);
sqlstr:='update t_user set times=times+1,lasttime='''+lasttime+''' where (username='''+aname+''')';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sqlstr);
ADOQuery1.ExecSQL; //执行SQL语句更新
showmessage('登陆成功:');
end
else
begin
showmessage('请确认登录的用户名和密码是否
正确:');
edit1.SetFocus; //取得输入焦点
edit1.SelectAll; //选择文本框中的所有内容
end
end
end
end;
5(保存工程、测试运行
具体操作步骤如下:
,1,保存窗体文件
文件/保存~打开“文件另存为”对话框~如图1-18 所示~该对话框用于保存窗体。在“保存在”下拉列表框中选择窗体保存位置~在“文件名”文本框中输入窗体文件名~最后单击按钮保存窗体。
,2,保持工程文件
窗体保存之后~将打开“工程另存为”对话框~如图所示。在“保存在”下拉列表框中选择窗体保存位置~在“文件名”文本框中输入工程文件名~最后单击按钮。保存工程。
,3,测试应用程序
保存工程后~单击工具栏中的按钮~或按F9键运行工程~测试工程是否正确运行。在编写代码的过程中也需要通过运行工程来测试当前代码是否正确。
注意:本例中数据库文件必须保存在工程目录下。如图:
本例的主要任务是创建一个基于数据库的系统登录对话框~其实现过程包括创建保存登录信息的Access数据库、设计窗体、编程功能代码和保存工程及测试运行等步骤。在实现本例时~用了ADO对象来访问Access数据库~首先用Connection对象建立数据库连接~然后用RecordSet 对象从数据库获得用户口令~从而验证用户登录信息是否正确。这里需要特别提醒~若你用Microsoft Access 2000或Microsoft Access 2003创建登录信息数据库~则Connection 对象连接字符串中的驱动程序,Provider,应用Microsoft.Jet.OLEDB.4.0~否则将无法识别数据库
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
。
本教程原创:李荣辉 QQ:185225745 欢迎大家加入我的QQ群一起学习delphi. 群号:29200817