Versuch es doch mal so:
Delphi-Quellcode:
DataArtikelStanzen.IBDatabaseArtikelStanzen.Close;
DataArtikelStanzen.IBDatabaseArtikelStanzen.SQL.Text:='delete from Tabelle where id=123456';
DataArtikelStanzen.IBDatabaseArtikelStanzen.ExecSQL;
// vllt. noch die betroffenen Zeilen auslesen
DataArtikelStanzen.IBDatabaseArtikelStanzen.Close;
Ich schätze, damit verbiegt man die Datenquelle des Dataset und macht es ~nur noch schlimmer.
MKINZLER hat schon die richtigen Hinweise gegeben. DeleteSQL ist nicht für den manuellen Aufruf gedacht, sondern implementiert die Umsetzung des Dataset.Delete.