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数据库开发有所帮助。


数据运维技术 » Delphi数据库:实现与实例 (delphi数据库开发及精彩实例)