procedure TForm2.Button1Click(Sender: TObject);
var
Database,s1: string;
i:integer;
FDConnection : TFDConnection;
FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;
FDQuery: TFDQuery;
resourcestring
sSQLString = 'SELECT * FROM StdItems';
begin
Database := 'herodb.db';
if not FileExists(Database) then begin
Exit;
end;
FDConnection := TFDConnection.Create(nil);
with FDConnection do begin
FetchOptions.Mode := fmAll;
LoginPrompt := False;
Params.Clear;
Params.Add('DriverID=SQLite');
Params.Add('Database=' + Database);
Params.Add('LockingMode=Normal');
Params.Add('Password=' + '');
Params.Add('SQLiteAdvanced=temp_store=memory'); // ;page_size=4096
FormatOptions.MapRules.Add(dtWideString,dtWideMemo);
FormatOptions.MapRules.Add(dtAnsiString,dtWideMemo);
//Connected := True;
end;
FDPhysSQLiteDriverLink1 := TFDPhysSQLiteDriverLink.Create(nil);
FDQuery := TFDQuery.Create(nil);
try
FDQuery.Connection := FDConnection;
FDQuery.FetchOptions.Mode := fmAll; // 返回所有
FDQuery.ResourceOptions.SilentMode := True; // 禁用沙漏光标
FDQuery.SQL.Clear;
FDQuery.SQL.Add(sSQLString);
try
FDQuery.Open;
// 方式1 while循环
while not FDQuery.Eof do begin
s1 := FDQuery.FieldByName('name').AsString;
Memo1.Lines.Add(s1);
FDQuery.Next;
end;
// 方式2 for循环
// for i := 0 to FDQuery.RecordCount - 1 do begin
// s1 := FDQuery.FieldByName('name').AsString;
// Memo1.Lines.Add(s1);
// FDQuery.Next;
// end;
finally
FDQuery.Close;
end;
finally
FDQuery.Free;
FDPhysSQLiteDriverLink1.Free;
FDConnection.Free;
end;
end;
Firedac连接sqlite的例子。
最新推荐文章于 2025-04-01 09:47:31 发布