@taveuni: Ja, macht keinen Unterschied
Hab ich mir fast gedacht. Views kommen für mich leider nicht in Frage, da die Datenstruktur fehlt. Also werde ich wohl vor dem Open parsen.
@DeddyH: Die Idee ist super, nur leider sind in meinem Fall auch mehrere
SQL-Befehle hintereinander möglich, daher werde ich wohl nach "verbotenen" Wörtern suchen. Hier meine Lösung:
Delphi-Quellcode:
function TListStatSchnittForm.SucheManipulativeAbfragen(inSSQLText: String): Boolean;
var
lSSQLxStrings : String;
lBInString : Boolean;
i : integer;
begin
Result := false;
//Schlüsselwörter in Strings werden ignoriert
lBInString := false;
for I := 0 to Length(inSSQLText) - 1 do
begin
if (inSSQLText[i] = '"') then
lBInString := not lBInString;
if not lBInString then
lSSQLxStrings := lSSQLxStrings + inSSQLText[i];
end;
if (pos('INSERT', Uppercase(lSSQLxStrings)) > 0) or
(pos('UPDATE', Uppercase(lSSQLxStrings)) > 0) or
(pos('DROP', Uppercase(lSSQLxStrings)) > 0) or
(pos('CREATE', Uppercase(lSSQLxStrings)) > 0) or
(pos('ALTER', Uppercase(lSSQLxStrings)) > 0) or
(pos('DELETE', Uppercase(lSSQLxStrings)) > 0)
then
Result := true;
end;
Edit: Danke für die Hilfe ^^