title: How to add all fields without opening dataset?
body: <p>I'm using <code>TFIBDataSet</code> (Firebird dataset component) and I'm trying to automatically create all fields at runtime, without loading any record into the dataset.</p>
  
  <p>Here is the code of my test:</p>
  
  <pre><code>uses
    FIBDatabase, FIBDataSet, Dialogs;
  
  ...
  
  var
    Db : TFIBDataBase;
    Tr : TFIBTransaction;
    Dst : TFIBDataSet;
  begin
    //connection
    Db := TFIBDatabase.Create(Self);
    Db.ConnectParams.UserName := 'SYSDBA';
    Db.ConnectParams.Password := 'masterkey';
    Db.DatabaseName := 'localhost:mydatabase.fdb';
    Db.SQLDialect := 3;
    Db.Connected := True;
  
    //transaction
    Tr := TFIBTransaction.Create(Self);
    Tr.DefaultDatabase := Db;
    Tr.Active := True;
  
    //dataset
    Dst := TFIBDataSet.Create(Self);
    Dst.Database := Db;
    Dst.Transaction := Tr;
    Dst.SelectSQL.Text := 'SELECT * FROM rdb$database';
  
    //...
  
    ShowMessage(IntToStr(Dst.FieldCount));
  end;
  </code></pre>
  
  <p>The previous code produces <code>'0'</code> as output..</p>
  
  <p>I've tried using <code>Dst.Open()</code> and it produces <code>'5'</code>, but it also executes the SQL query.</p>