Hallo Leute,
sitze gerade an ner kleinen
DB (Firebird). Meine Abfrage funktionieren eigentlich wunderbar, ausser die Abfragebedingung enthält Sonderzeichen wie z.B. ein
'.
Delphi-Quellcode:
procedure TFMain.DoQuerySong(Field:
String;Node: TTreeNode);
var
SQL:
String;
begin
//main sql query
Screen.Cursor := crSQLWait;
SQL := '
select * from SONG ';
SQL :=
SQL + '
inner join ARTIST on ARTIST.ID = SONG.ARTIST_ID ';
SQL :=
SQL + '
inner join SONG_DETAIL on SONG_DETAIL.SONG_ID = SONG.ID ';
SQL :=
SQL + '
inner join GENRE on GENRE.ID = SONG.GENRE_ID ';
SQL :=
SQL + '
inner join LANGUAGE on LANGUAGE.ID = SONG.LANGUAGE_ID ';
SQL :=
SQL + '
where '+ Field + '
= ''
' + Node.Text + '
''
order by SONG';
...
Das ist ein Teil meiner Abfrage, die ich dynamisch an ein TpFIBDataSet sende. Aufgerufen wird das ganze hier:
Delphi-Quellcode:
if Node.Parent = NdArtists then
begin
PGenre.Hide;
PQuery.Align := alClient;
DoQuerySong('ARTIST.ARTIST', Node);
PQuery.Show;
Exit;
end;
Wenn aber z.B. ein Artist wie "Lil' Kim" abgefragt wird, ist ja das ' zu viel. Rauslassen kann ich's ja aber auch net. Hat vielleicht jemand 'ne Idee?
Danke