【delphi11】delphi进阶【六、数据库编程】

2023-12-24 05:50:20

1. Delphi中的数据库编程概览

Delphi 支持广泛的数据库系统,包括但不限于 SQL Server、MySQL、Oracle、SQLite 等。Delphi 通过其数据库组件,如 ADO, FireDAC, dbExpress 等,为数据库编程提供了强大的支持。

关键组件
  • TDatabase:管理数据库连接。
  • TTable:代表数据库中的一个表。
  • TQuery:执行 SQL 语句。
  • TDataSource:作为数据控件和数据库之间的桥梁。

2. 数据库连接

使用 ADO 连接数据库

ADO (ActiveX Data Objects) 是 Delphi 中常用的数据访问技术之一。

????????设置ADOConnection:首先,需要配置 TADOConnection 组件来建立数据库连接。

????????配置连接字符串:连接字符串包含数据库的类型、位置、登录信息等。

ADOConnection.ConnectionString := 'Provider=SQLOLEDB;Data Source=YourServerName;' +
                                  'Initial Catalog=YourDatabaseName;User Id=yourusername;Password=yourpassword;';

????????打开连接:调用 ADOConnection.Open 方法打开数据库连接。

????????使用 FireDAC 连接数据库

????????FireDAC 是 Delphi 的另一种强大的数据库访问框架。

  1. 配置FireDAC连接:通过 TFDConnection 组件来配置。
  2. 设置参数:指定数据库类型、服务器地址等。

3. 操作数据库

执行 SQL 语句
  • 使用 TQueryTFDQuery 组件执行 SQL 语句。
  • 设置 SQL 语句:Query.SQL.Text := 'SELECT * FROM YourTable';
  • 执行查询:Query.Open; 或 更新:Query.ExecSQL;
数据绑定
  • 将数据控件(如 TDBGrid)绑定到 TDataSource
  • DataSource.DataSet := Query;

4. 创建简单的数据库应用程序

步骤概述
  1. 设计数据库:首先,你需要一个数据库。可以是本地的 SQLite 数据库或远程的 SQL Server 数据库。
  2. 设置数据库连接:使用 ADO 或 FireDAC 组件来建立连接。
  3. 设计用户界面:创建表格、按钮等控件来显示和操作数据。
  4. 编写事件处理代码:为按钮点击等事件编写代码,如添加、删除、更新数据库记录。
示例代码

这是一个使用 ADO 和 TDBGrid 显示数据库中数据的简单示例:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ADOConnection.ConnectionString := 'Your Connection String';
  ADOConnection.Open;
  ADOQuery.SQL.Text := 'SELECT * FROM YourTable';
  ADOQuery.Open;
end;

?

5. 小贴士

  • 了解 SQL:熟悉 SQL 语言对数据库编程至关重要。
  • 异常处理:在数据库操作中添加异常处理,以应对潜在的运行时错误。
  • 性能考虑:合理编写 SQL 查询,避免不必要的数据加载,以提高应用程序性能。

?

步骤 1: 准备数据库

首先,确保你有一个 SQLite 数据库文件 example.db,并且里面有一个表 Customers

步骤 2: Delphi 项目设置
  1. 打开 Delphi,创建一个新的 VCL Forms 应用程序。
  2. 在表单上添加 TFDConnection, TFDQuery, TDataSource, TDBGrid, 和 TButton 组件。
步骤 3: 配置组件
  1. 设置 TFDConnection

    • DriverName 设置为 SQLite
    • Params 属性中设置数据库文件的路径。
  2. 设置 TFDQuery

    • Connection 属性设置为 FDConnection1
    • SQL.Text 属性设置 SQL 查询语句。
  3. 设置 TDataSource

    • DataSet 属性设置为 FDQuery1
  4. 设置 TDBGrid

    • DataSource 属性设置为 DataSource1
  5. 设置 TButton

    • 在其 OnClick 事件中调用 FDQuery1.Open
完整的代码

?

unit MainForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, 
  Data.DB, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, 
  FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, 
  FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, 
  FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys, FireDAC.Phys.SQLite, 
  FireDAC.Phys.SQLiteDef, FireDAC.Stan.Def, FireDAC.Stan.Pool, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    FDConnection1: TFDConnection;
    FDQuery1: TFDQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { 私有声明 }
  public
    { 公共声明 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  FDQuery1.Open;
end;

end.
dfm 文件设置

????????在相应的 .dfm 文件中,设置以下内容:

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'FireDAC SQLite Demo'
  ClientHeight = 300
  ClientWidth = 534
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object DBGrid1: TDBGrid
    Left = 10
    Top = 10
    Width = 514
    Height = 200
    DataSource = DataSource1
    TabOrder = 0
  end
  object Button1: TButton
    Left = 10
    Top = 220
    Width = 75
    Height = 25
    Caption = 'Load Data'
    TabOrder = 1
    OnClick = Button1Click
  end
  object FDConnection1: TFDConnection
    Params.Strings = (
      'Database=C:\path\to\your\example.db'
      'DriverID=SQLite')
    LoginPrompt = False
  end
  object FDQuery1: TFDQuery
    Connection = FDConnection1
    SQL.Strings = (
      'SELECT * FROM Customers')
  end
  object DataSource1: TDataSource
    DataSet = FDQuery1
  end
end

????????请确保将 FDConnection1.Params.Strings 中的 Database 路径设置为你的 SQLite 数据库文件路径。

????????当你运行这个程序并点击“Load Data”按钮时,它会从 SQLite 数据库加载 Customers 表的内容到 TDBGrid 中展示。

文章来源:https://blog.csdn.net/weixin_44120785/article/details/135168791
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。