用Delphi開發小程序,之前使用過Access數據庫,但是由於Access依賴於office,感覺有些不太方便,研究一下Delphi使用SQLite3。
SQLite是一款輕型的數據庫,是遵守ACID的關係型數據庫管理系統,它包含在一個相對小的C庫中。
SQLite下載
官網下載頁面 https://www.sqlite.org/download.html
找到下圖內容,根據自己的開發環境選擇下載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控件