title: Show sqlite database in Delphi XE6 using firedac programmatically
body: <p>I am new in database using Delphi. Actually I need to display all the tables and their data in a gridview using firedac. Several videos on youtube and docwiki teaches how to access database through visual components i.e. throwing FDConnetion, FDTable, DataSource, etc. on the form. </p>
  
  <p>But I would like to do the same thing programmatically so that I can focus more on coding and separate form from the business logic.</p>
  
  <p>Here is what I have done in C# while accessing MSAccess data:</p>
  
  <pre><code>public void LoadUsersInfo()
          {
  
              try {
                  OleDbConnection Connection = new OleDbConnection();        
                  Connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=dbCyberNet.accdb;Persist Security Info=False;";        
                  Connection.Open();
                  OleDbCommand command = new OleDbCommand();
                  command.Connection = Connection;
                  String query = "SELECT * FROM tblUsersInfo";
                  command.CommandText = query;
  
                  OleDbDataAdapter adapter = new OleDbDataAdapter(command);
                  DataTable dt = new DataTable();
                  adapter.Fill(dt);
                  dbGrid.DataSource = dt;
              }
              catch (Exception ex) {
                  MessageBox.Show("Error occured while loading users information . " + ex.Message.ToString());
              }
              finally { Connection.Close(); }
          }
  </code></pre>
  
  <p>I would like to do similar in delphi for sqlite database. Here is what I have tried (edited).</p>
  
  <pre><code>procedure TForm1.Button1Click(Sender: TObject);
  var
    con: TFDConnection;
    table: TFDTable;
    ds: TDataSource;
  begin
    con := TFDConnection.Create(nil);
    con.LoginPrompt := False;
    table := TFDTable.Create(nil);
    table.TableName := 'Students';
    ds := TDataSource.Create(nil);
    ds.DataSet := table;
  
    try
      con.Open('DriverID=SQLite;Database=‪studentsDB.sqlite;');
      table.Connection := con;
      table.Active := True;
      con.Connected := True;
      DBGrid1.DataSource := ds;
    finally
      con.Close;
      con.Free;
      table.Free;
      ds.Free;
    end;
  end;
  </code></pre>
  
  <p>Whenever I run this code, error dialog appears showing: First chance exception at $759AF097. Exception class ESQLiteNativeException with message '[FireDAC][Phys][SQLite] ERROR: no such table: STUDENTS'. Process Project1.exe (3836)</p>
  
  <p>whereas the same table name exists inside the table and using visual firedac components, I can see the data grid fills easily.</p>