Mein Vorgehen ist eigentlich grob immer so in der Art:
Delphi-Quellcode:
// qry ist irgendeine Komponente zur Ausführung von SQLs.
qry.Close;
qry.SQL.Text := 'Eine Zeichenfolge, die irgendwo herkommt';
if AnsiLowerCase(copy(qry.SQL.Text,1,6)) = 'select' then begin
qry.Open;
end else begin
qry.ExecSQL;
end;
Natürlich gibt es immer 'ne Fehlerbehandlung, geht hier halt nur ums sinnmäße Prinzip. Dabei ist es dann egal, ob TADOQuery, TQuery, 'ner
Query der Zeos-Komponenten oder was weiß der Geier sonst noch.
Open und dann kein Select da drin, das ist immer eher "ungünstig" und ohne sinnvolle Fehlerbehandlung kaum zu managen. Je nach
DB ist dann auch noch die Art der Fehlermeldung unterschiedlich und kaum einheitlich händelbar.