with TMySQLDataset.Create(nil) do
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;
...
with TMySQLDataset.Create(nil) do
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;
...