在delphi学习一中,已经使用ADOConnection控件设置属性连接数据库SQL了。
在这里开始使用ADOQuery控件对SQL数据库表进行操作。
首先我们在SQL中创建数据库名为PERSONNELMG_SYS的数据库,然后在这个数据库里创建USER_TABLE表,用来存放用户账户信息。
USER_TABLE表的结构如下图所示:
该表有用户名(USER_NAME) 、用户密码(USER_PWD)和用户权限(POWER_LEVEL)3 个字段,现在通过 ADOQuery控件实现
对这个表的 4 种操作(增加、删除、修改、查询) 。
在前面delphi开发学习一:创建的ADOtest工程里新建窗体TADQuery;作为USER_TABLE数据表的操作界面,操作界面的布局如下图所示:
其中,增加按钮的名称
为 Button1, 删除按钮的名称为 Button2, 修改按钮的名称为 Button3, 查询按钮的名称为 Button4。用户名左上角为ADOQuery控件。
在进行数据表操作前,先要设置好连接参数,包括控件 ADOConnection 如何与数据库连接(在这里借助delphi中的ADOConnection控件连接到 PERSONNELMG_SYS 数据库上)以及控件对象 adoquery1 的 Connection 属性设置,本例将 adoquery1 的 Connection 属性值设为 dlink.ADOConnection1,因为控件ADOConnection 的对象是在 dlink 窗体上创建的,在这里只是调用这个控件对象。
adoquery1.Connection=dlink.ADOConnection;
增加操作是向 USER_TABLE 表中添加记录, “添加”按钮的实现代码如下:
procedure TTADQuery.Button1Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into user_table(user_name,user_pwd,power_level'
+')values('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''')');
ADOQuery1.ExecSQL;
edit1.clear; //清空文本编辑框的输入内容
edit2.clear;
edit3.clear;
end;
这里使用 TADOQuery 控件作为数据集, 先将控件对象 adoquery1 的数据集关闭ADOQuery1.close;, 然后清空控件对象 adoquery1 里面的 SQL 命令语句ADOQuery1.SQL.Clear;(可能是上次使用的命令语句,也可能没有使用过,所以要先进行清空处理),接着将本次要执行的 SQL 命令语句添加进去(这里要执行的
是增加操作, 所以用SQL里面的INSERT语句)ADOQuery1.SQL.Add('insert into user_table(user_name,user_pwd,power_level'
+')values('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''')');最后通过调用控件对象adoquery1的ExecSQL方法来完成增加操作。
删除操作是删除 USER_TABLE 表中的一条或多条记录, “删除”按钮的实现代码如下:
procedure TTADQuery.Button2Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from user_table where user_name='''+edit1.text+'''');
ADOQuery1.ExecSQL;
edit1.clear;
end;
修改操作是对USER_TABLE 表中的一条或多条记录进行修改, “修改” 按钮的实现代码如下:
procedure TTADQuery.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update user_table set user_pwd='''+edit2.Text+''','
+'power_level='''+edit3.Text+''' where user_name='''+edit1.Text+'''');
ADOQuery1.ExecSQL;
edit1.clear;
edit2.clear;
edit3.clear;
end;
查询操作是用来查询一条或多条记录并将其内容显示出来,如果是多条记录可以通过DBGrid 控件来显示。 “查询”按钮的实现代码如下:
procedure TTADQuery.Button4Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from user_table');
adoquery1.Open ;
//上面是执行查询操作,下面是将查询到的数据赋给文本框显示出来
edit1.Text :=adoquery1.Fields[0].AsString ;
edit2.Text :=adoquery1.Fields[1].AsString ;
edit3.Text :=adoquery1.Fields[2].AsString ;
end;
查询操作与前面 3 种操作不同在于:除了在 SQL 命令语句里使用的 SELECT 语句外,在最后调用的不是控件对象adoquery1的ExecSQL方法, 而是Open方法。 这里查询时SELECT语句里没有使用 WHERE 子句,实际上查询到的是 USER_TABLE 表里所有的记录,但是TADOQuery 控件的数据集默认停留在所有记录的第一条记录上, 后面的赋值实际上是将查询到所有记录的第一条记录赋给文本框的。
通过这个例子不难看出,一个应用程序中只要创建一个 ADOConnection 控件对象,其他的数据集控件对象只需与这个 ADOConnection 控件对象相连就可以实现操作。
下面附上实例开发的源代码下载链接:
http://download.csdn.net/detail/u011846249/9029883