用Delphi开发小程序,之前使用过Access数据库,但是由于Access依赖于office,感觉有些不太方便,研究一下Delphi使用SQLite3。

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。

SQLite下载

官网下载页面 https://www.sqlite.org/download.html

找到下图内容,根据自己的开发环境选择下载32位的dll还是64位的dll,tools是一个能连接SQLite3的工具。

Delphi XE使用SQLite3_第1张图片

Delphi简单操作SQLite

  1. 将dll放入程序对应目录下,dll版本一定要和开发环境相对应
    Delphi XE使用SQLite3
  2. 选择两个控件TFDConnection和TFDQuery, Name分别为FDConnection1和FDQuery1。 FDQuery1.SQLConnection选择FDConnection1。
  3. 简单操作,创建连接数据库,创建表,添加数据和查询数据
    Delphi XE使用SQLite3_第2张图片
    (1)创建连接数据库,数据库文件没有会自动创建
    procedure TForm1.CreateDBClick(Sender: TObject);
    begin
    FDConnection1.DriverName := 'SQLite';
    FDConnection1.Params.Add('DriverID=SQLite') ;
    FDConnection1.Params.Add('Database=E:\sqlite1.db') ;
    FDConnection1.Connected := True;
    end;

    (2)创建表

procedure TForm1.CreateTableClick(Sender: TObject);
begin
    FDConnection1.Connected := True;
    FDQuery1.Close;
    FDQuery1.SQL.Clear;
    FDQuery1.SQL.Add('create table user( id INTEGER primary key autoincrement , ' +
        ' name varchar(255) not null , age INTEGER);');
    FDQuery1.ExecSQL;
end;

(3)添加数据

procedure TForm1.AddClick(Sender: TObject);
begin
  FDConnection1.Connected := True;
  FDQuery1.Close;

  FDQuery1.SQL.Clear;
  FDQuery1.SQL.Add('insert into user(name,age) values(' + QuotedStr('李四')+ ',15);');
  FDQuery1.ExecSQL;
end;

(4)查询数据

procedure TForm1.SearchClick(Sender: TObject);
begin
  FDConnection1.Connected := True;
  FDQuery1.Close;
  FDQuery1.SQL.Clear;
  FDQuery1.SQL.Add('select id,name,age from user;');
  FDQuery1.Open;
  while Not FDQuery1.Eof do
  begin
    Memo1.Lines.Add(FDQuery1.FieldByName('id').AsString + '  ' + FDQuery1.FieldByName('name').AsString +
           ' ' + FDQuery1.FieldByName('age').AsString ) ;
    FDQuery1.Next;
  end;
end;

问题:XE8执行FDQuery1.ExecSQL报Object factory for class{xx-xx-xx-xx-xx} is missing. To register it。
解决方法:添加TFDGUIxWaitCursor控件