Delphi数据库:实现与实例 (delphi数据库开发及精彩实例)
作为一款优秀的编程语言,Delphi不仅仅在桌面应用程序的开发领域有着卓越表现,对于数据库的操作也有很高的支持。Delphi的数据库操作不仅仅可以轻松地读取和修改数据,而且还可以在应用程序内部轻松地创建、打开和关闭数据库连接。本文将详细介绍使用Delphi进行数据库操作的实现方法,并提供实际示例,帮助读者深入了解Delphi数据库操作的细节。
一、创建数据库连接
实现数据库操作的之一步是建立一个数据库连接。在Delphi中使用DBExpress来实现数据库连接,它是一组可视化组件,用于在Delphi应用程序中连接和控制数据库。下面我们来演示一下如何使用DBExpress建立一个数据库连接。以MySQL数据库为例:
1. 添加DBExpress组件库
通过 “组件”-> “组件” 菜单,弹出组件窗口;
选择按字母排序的“DBExpress”组件库,勾选 DBXMySQL 和 DBXCommon 组件,然后点击确认。
2. 配置连接
通过 “文件” -> “新建” -> “其他” -> “Data Explorer” 打开数据资源窗口,右键点击 “connections” 组中的 “New Connection…”,弹出以下连接设置对话框:
填写以下信息:
连接名称:mysql连接
数据库驱动程序:MySQL (DBXMySQL)
主机名称或IP地址:127.0.0.1
端口号:3306
用户名:root
密码:root
database:test(你需要先手动在 MySQL中新建一个test数据库)
点击Test连接按钮,如果连接成功,则会弹出测试连接成功。
3. 使用连接
打开要使用连接的数据模块,通过 “组件” -> “dbExpressSQLConnection1” (1),弹出以下SQL连接属性窗口,点击右侧的“…”按钮,在弹出的窗口中选择刚才创建的mysql连接,点击确认保存。这时,就可以在代码中使用 TSQLConnection 控件了。
var
conn: TSQLConnection;
conn := TSQLConnection.Create(nil);
try
conn.ConnectionName := ‘dbExpressConnection1’;
conn.DriverName := ‘MySQL’;
conn.GetDriverFunc := ‘getSQLDriverMYSQL’;
conn.LibraryName := ‘dbxmys.dll’;
conn.Params.Add(‘User_name=root’);
conn.Params.Add(‘Password=root’);
conn.Params.Add(‘HostName=127.0.0.1’);
conn.Params.Add(‘Database=test’);
conn.Open;
finally
conn.Free;
end;
二、基本的数据库操作
接下来,我们看一下Delphi中常用的数据库操作方法。下面,使用Firebird数据库来演示以下基本数据操作方法。
1. 创建表格
在现有的数据库连接下,我们要创建新的表格来存储数据。我们要在数据模块中放置 TSQLQuery 控件,点击其属性编辑器,设置 Connection 属性为刚刚创建的mysql连接,并指定SQL语句:
CREATE TABLE person (
id INTEGER PRIMARY KEY,
name VARCHAR(50),
age INTEGER,
born DATE
)
接下来,我们实例化一个 TSQLQuery 对象并用它来执行这个SQL语句:
procedure TForm1.SQLCreateTableButtonClick(Sender: TObject);
var
SQLQuery: TSQLQuery;
begin
SQLQuery := TSQLQuery.Create(nil);
try
SQLQuery.SQLConnection := SQLConnection1;
SQLQuery.SQL.Text := ‘CREATE TABLE person (‘ +
‘id INTEGER PRIMARY KEY, name VARCHAR(50),’ +
‘age INTEGER, born DATE)’;
SQLQuery.ExecSQL;
finally
SQLQuery.Free;
end;
end;
2. 插入数据
现在,我们已经创建了一个新的表格,我们来插入几条记录。我们要在数据模块中放置 TSQLQuery 控件,设置 Connection 属性为刚刚创建的mysql连接,并指定SQL语句:
INSERT INTO person (id, name, age, born)
VALUES (1, ‘张三’, 20, ‘2023/10/1’),
(2, ‘李四’, 23, ‘1998/9/3’),
(3, ‘王五’, 18, ‘2023/5/7’);
接下来,我们利用这个 TSQLQuery 控件来执行这个SQL语句:
procedure TForm1.SQLInsertButtonClick(Sender: TObject);
var
SQLQuery: TSQLQuery;
begin
SQLQuery := TSQLQuery.Create(nil);
try
SQLQuery.SQLConnection := SQLConnection1;
SQLQuery.SQL.Text := ‘INSERT INTO person (id, name, age, born) ‘ +
‘VALUES (1, ‘ +
QuotedStr(‘张三’) + ‘, ‘ +
’20, ‘ +
QuotedStr(‘2023/10/1’) + ‘), (2, ‘ +
QuotedStr(‘李四’) + ‘, ‘ +
’23, ‘ +
QuotedStr(‘1998/9/3’) + ‘), (3, ‘ +
QuotedStr(‘王五’) + ‘, ‘ +
’18, ‘ +
QuotedStr(‘2023/5/7’) + ‘)’;
SQLQuery.ExecSQL;
finally
SQLQuery.Free;
end;
end;
3. 查询数据
我们已经成功地插入了一些数据,现在我们准备查询它们。我们可以使用 TSQLDataSet 控件来查询数据,与其他数据集一样,它可以显示查询结果集和允许用户进行浏览、编辑、删除等。
在数据模块中,设置 TSQLDataSet 控件的 Connection 属性为刚刚创建的mysql连接,并设置它的 CommandText 属性来指定查询语句:
SELECT * FROM person ORDER BY id
下面,我们使用这个 TSQLDataSet 控件来执行这个查询语句:
procedure TForm1.SQLQueryButtonClick(Sender: TObject);
begin
SQLDataSet1.CommandText := ‘SELECT * FROM person ORDER BY id’;
SQLDataSet1.Open;
end;
执行这个操作后,我们可以看到如下的结果:
id name age born
— —- — —-
1 张三 20 2023/10/1
2 李四 23 1998/9/3
3 王五 18 2023/5/7
4. 更新数据
假设我们现在需要更新张三的年龄,我们可以利用 TSQLQuery 控件来更新数据。在数据模块中,设置 TSQLQuery 控件的 Connection 属性为刚刚创建的mysql连接,并指定SQL语句:
UPDATE person SET age = 21 WHERE name = ‘张三’;
然后我们就可以利用这个 TSQLQuery 控件来执行这个SQL语句:
procedure TForm1.SQLUpdateButtonClick(Sender: TObject);
var
SQLQuery: TSQLQuery;
begin
SQLQuery := TSQLQuery.Create(nil);
try
SQLQuery.SQLConnection := SQLConnection1;
SQLQuery.SQL.Text := ‘UPDATE person SET age = 21 WHERE name = ‘ +
QuotedStr(‘张三’);
SQLQuery.ExecSQL;
finally
SQLQuery.Free;
end;
end;
如果我们再次运行查询操作,就可以看到数据被正确地更新了:
id name age born
— —- — —-
1 张三 21 2023/10/1
2 李四 23 1998/9/3
3 王五 18 2023/5/7
5. 删除数据
现在,我们已经成功地更新了一条记录,接下来,我们来看如何删除一条记录。在数据模块中,设置 TSQLQuery 控件的 Connection 属性为刚刚创建的mysql连接,并指定SQL语句:
DELETE FROM person WHERE name = ‘李四’;
然后我们利用这个 TSQLQuery 控件来执行这个SQL语句:
procedure TForm1.SQLDeleteButtonClick(Sender: TObject);
var
SQLQuery: TSQLQuery;
begin
SQLQuery := TSQLQuery.Create(nil);
try
SQLQuery.SQLConnection := SQLConnection1;
SQLQuery.SQL.Text := ‘DELETE FROM person WHERE name = ‘ +
QuotedStr(‘李四’);
SQLQuery.ExecSQL;
finally
SQLQuery.Free;
end;
end;
6. 关闭数据库连接
在所有数据库操作完成后,我们需要手动关闭数据库连接。在数据模块中,添加一个 TSQLConnection 控件并将Connection属性设置为刚刚创建的mysql连接。然后,点击这个 TSQLConnection 控件的 Disconnect() 方法来关闭连接。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SQLConnection1.Disconnect;
end;
三、
本文从Delphi数据库的连接入手,分别介绍了建立连接、创建表格、插入数据、查询数据、更新数据和删除数据这些基本的数据库操作方法。同时,我们也给出了一些实际的例子来演示具体的实现方法。希望能对读者理解和掌握Delphi数据库开发有所帮助。