Example - MySQLDataset

...
   with TMySQLDataset.Create(nildo 
   try
      Server := MySQLServer1;
      DatabaseName := 'mysql'
;
      TableName := 'user'
;
      Active := True;
      ...
      ExecSQL('GRANT SELECT, INSERT, UPDATE, DELETE, RELOAD ON *.* TO ''
Admin''@''%''', True, False);
      Server.Reload;
      ...
      MacroByName('WHERE'
).AsString := 'where user=''root''';
      Close; Open;
      ...
      ShareConnection := False; Open; // Now the dataset has it's own threaded connection

      ...
      ShareConnection := True; Open; // Now we are back on the TMySQLServer connection

      ...
      ClearMacros;
      MacroByName('ORDER'
).AsString := 'order by user';
      MacroByName('LIMIT'
).AsString := 'limit 0,10'; Close; Open;
      ...
      CahcedUpdates := True; // All edits, insert, deletes, updates are now cached

      Edit;
      FieldByName('user'
).AsString := 'test';
      Post;
      Close; // Cached statements flushed

      CachedUpdates := False; // Statements not cached, sent real-time to server

      ...
   finally
      Free;
   end;
...