title: SQLite database on FireDAC engine not respecting rollback
body: <p>I have a Data Access Object (DAO) in a Delphi (Delphi 10.1 Berlin) application. I create the connection with the SQLite database, select some data (Simple select clause) and then execute an update clause, using the method ExecSQL() of TFDQuery component. The data in database is <strong>not changed</strong>.</p>
  
  <p>Then, I execute the rollback() method in the connection. The data in database is <strong>not changed</strong> yet.</p>
  
  <p>So, I execute the close() method in the connection. The data in database <strong>is changed</strong>.</p>
  
  <p>I don't know if this is the expected behavior of FireDAC and SQLite, but I think it should not be.</p>
  
  <p>Some code:</p>
  
  <pre><code>FFDConnection                  := TFDConnection.Create(nil);
  FFDConnection.Params.Database  := 'database.db3';
  FFDConnection.Params.UserName  := '';
  FFDConnection.Params.Password  := '';
  FFDConnection.Params.DriverID  := 'SQLite';
  FFDConnection.Open();
  
  FFDQuery            := TFDQuery.Create(nil);
  FFDQuery.Connection := FFDConnection;
  
  FFDConnection.StartTransaction();
  // ... Some update code ...
  FFDConnection.Rollback();
  FFDConnection.Close();
  FFDConnection.Free();
  </code></pre>
  
  <p>After the <code>FFDConnection.Rollback();</code> but before <code>FFDConnection.Close();</code> the data in database is still not changed. After <code>FFDConnection.Close();</code> the data in database is changed.</p>
  
  <p>Is this a problem of SQLite?</p>
  
  <p>I really appreciate any help you can provide.</p>
  
  <p><strong>EDIT 1:</strong> The problem is that I was not creating the <code>TFDTransaction</code> for my connection beacuse I thought that the creation was implicit. I feel so dumb.</p>