SQL String mit Apostroph (')
-
Hi
Ich will etwas in eine Datenbank eintrag. Dazu verwende ich die Komponente TQuery. Der Datenbank will ich Dateinamen hinzufügen. Dazu verwende ich den folgenden Code:TQuery *qwData = new TQuery(NULL); qwData->Databasename = "irgendwas"; qwData->SQL->Text = "INSERT INTO dbname (Name,Pfad) VALUES (:Name,;Pfad)"; qwData->Params->Item[0]->AsString = "Dateiname"; qwData->Params->Item[1]->AsString = "Dateipfad"; qwData->ExecSQL(); delete( qwData ); qwData = NULL;
So, das ganze Funktioniert einwandfrei, aber sobald ein Dateiname mit einem Apostroph (') eingelesen werden soll, werden Fehlermeldungen prosuziert. Bsp.
Dateiname = Blackmail 'Club 45'.mp3
Bei diesem Beispiel meldet das Programm :
SQL Error Ungültige Anweisung ClubNach meiner Meinung wird der SQL-String durch die Apostrophen im Dateinamen verfälscht.
Wie kann ich dieses Problem umgehen???
-
mach ein replace auf den Namen und ersetzte ' durch '' . Also ein einzelnes Apostroph durch zwei einfache Apostrophe ersetzen
-
Ersetze 1 Apostroph durch 2
Blackmail 'Club 45'.mp3 -> Blackmail ''Club 45''.mp3
Hups, Andreas war zeitgleich
-
Hi Peter
-
Peter schrieb:
Ersetze 1 Apostroph durch 2
Blackmail 'Club 45'.mp3 -> Blackmail ''Club 45''.mp3
Aber wenn ich nun auf Basis der in der DB gespeicherten Dateinamen und Pfade die entsprechenden Dateien auslesen will, so kann ich diese doch nicht mehr finden
Oder sehe ich das falsch
-
ja, das siehst du falsch...
-
AndreasW schrieb:
ja, das siehst du falsch...
Aha...
Na dann werd ich das mal testen.
-
thx
kunktioniert einwandfrei