用Delphi开发小程序,之前使用过Access数据库,但是由于Access依赖于office,感觉有些不太方便,研究一下Delphi使用SQLite3。
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
SQLite下载
找到下图内容,根据自己的开发环境选择下载32位的dll还是64位的dll,tools是一个能连接SQLite3的工具。
Delphi简单操作SQLite
将dll放入程序对应目录下,dll版本一定要和开发环境相对应。
选择两个控件TFDConnection和TFDQuery, Name分别为FDConnection1和FDQuery1。 FDQuery1.SQLConnection选择FDConnection1。
简单操作,创建连接数据库,创建表,添加数据和查询数据
(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控件