Also wenn ich sowas mache und keine Parameter verwende, dann nutze ich QuotedStr. Damit hab' ich dann immer das Richtige, ohne weiter drüber nachdenken zu müssen.
Naja, wie du
hier ja lesen kannst, macht QuotedStr ja nichts außer den String in ' zu packen. Nur warem im ersten Beitrag ja normale Anfhrungszeichen (") zu sehen:
FSQLCommandText := 'INSERT INTO Buecher(BuchID,Titel, Aid, ISBN) VALUES (NULL,"B1",1,"123");';
Und das ist meines Wissens nach in alle
SQL-Dialekten falsch. Es gibt meines Wissens nach kein gängiges
SQL, das nicht die Pascal-Strings verwendet, also Apostrophe (').
SQL müsste als bei " einen Fehler ausgeben.
Außerdem bleibt hier immer noch das Problem, dass falls der String selbst Zeichen wie ' enthält, diese so noch nicht "escaped" werden. Das muss man noch über eine Kodierungs-/Dekodierungs-Routine machen. Ansonsten kriegst du nämlich wurstsalat wenn dein String zum Beispiel ' Zeichen enthält.
Außerdem musst du darauf achten, dass du AnsiQuotedStr bei Multibyte-Strings benutzt.