title: How can I create a new SQLite file and table at runtime using FieldDefs?
body: <p>I'm using Delphi Seattle to create a brand new table in a brand new SQLite file and using only FieldDefs and non-visual code. I can create a table using the ExecSQL ('CREATE TABLE....' ) syntax but not as shown below (I get 'No such table 'MyTable' which is raised when I execute the CreateDataSet call). I'd like some solution that allows me to work with FieldDefs. This code is modelled on the example <a href="http://docwiki.embarcadero.com/Libraries/XE8/en/FireDAC.Comp.DataSet.TFDDataSet.CreateDataSet" rel="nofollow">here</a>. I notice though, that there is note regarding CreateDataSet that it only applies to TFDMemTable. Is there a runtime way of creating an SQLite table without using ExecSQL? </p>
  
  <pre><code>procedure Test;
  const
    MyDBFile = 'c:\scratch\hope.db';
  var
    Connection : TFDConnection;
    DriverLink : TFDPhysSQLiteDriverLink;
    Table : TFDTable;
  begin
    DeleteFile( MyDBFile );
    DriverLink := TFDPhysSQLiteDriverLink.Create( nil );
    Connection := TFDConnection.Create( nil );
    try
      Connection.Params.Values['DriverID'] := 'SQLite';
      Connection.Params.Values['Database'] := MyDBFile;
      Connection.Connected := True;
  
      Table := TFDTable.Create( nil );
      try
        Table.TableName := 'MyTable';
        Table.Connection := Connection;
        Table.FieldDefs.Add( 'one', ftString, 20 );
        Table.FieldDefs.Add( 'two', ftString, 20 );
        Table.CreateDataSet;
  
        // I would add records here....
      finally
        Table.Free;
      end;
    finally
      Connection.Free;
      DriverLink.Free;
    end;
  end;
  </code></pre>