1 Star 0 Fork 6

行者/AcrSoft4D

forked from supermay/AcrSoft4D 
Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
Unit6.pas 2.58 KB
Copy Edit Raw Blame History
supermay authored 2020-10-30 08:55 . sqlite内存表的性能好差
unit Unit6;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, UniProvider, SQLiteUniProvider, MemDS, DBAccess,
Uni, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls;
type
TForm6 = class(TForm)
UniConnection1: TUniConnection;
UniQuery1: TUniQuery;
SQLiteUniProvider1: TSQLiteUniProvider;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Panel1: TPanel;
Panel2: TPanel;
Memo1: TMemo;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure WriteLog(msg: String);
procedure InitDB();
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
var
I: integer;
iTime: Cardinal;
begin
iTime := GetTickCount;
for I := 0 to 1000 do
begin
with self.UniQuery1 do
begin
Append;
FieldByName('faceName').AsString := 'Test' + IntToStr(I);
FieldByName('feature').AsString := 'Test' + IntToStr(I);
FieldByName('featureSize').AsInteger := I;
post;
Sleep(5);
end;
end;
self.WriteLog(Format('用时:%d', [GetTickCount - iTime]));
end;
procedure TForm6.Button2Click(Sender: TObject);
var
iTime: Cardinal;
begin
iTime := GetTickCount;
with self.UniQuery1 do
begin
First;
while not Eof do
begin
self.WriteLog(Format('F1:%d,F2:%s,F3:%s,F4:%d', [FieldByName('id').AsInteger,
FieldByName('faceName').AsString, FieldByName('feature').AsString,
FieldByName('featureSize').AsInteger]));
Sleep(5);
Next;
end;
end;
self.WriteLog(Format('用时:%d', [GetTickCount - iTime]));
end;
procedure TForm6.FormCreate(Sender: TObject);
begin
self.InitDB;
end;
procedure TForm6.InitDB;
begin
try
self.UniQuery1.SQL.Text := 'CREATE TABLE IF NOT EXISTS Faces' + #13#10 +
'("id" integer PRIMARY KEY AUTOINCREMENT,' + #13#10 + '"faceName" text(50),' + #13#10 +
'"feature" text(2000),"featureSize" integer)';
self.UniQuery1.ExecSQL;
self.UniQuery1.SQL.Text := 'select * From Faces';
self.UniQuery1.ExecSQL;
except
on E: Exception do
self.WriteLog('初始化数据库出错:' + E.Message);
end;
end;
procedure TForm6.WriteLog(msg: String);
begin
msg := DatetimeToStr(now()) + #9 + msg;
self.Memo1.Lines.Add(msg);
end;
end.
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Delphi
1
https://gitee.com/war3-sky/acr-soft4-d.git
git@gitee.com:war3-sky/acr-soft4-d.git
war3-sky
acr-soft4-d
AcrSoft4D
master

Search

23e8dbc6 1850385 7e0993f3 1850385