Veröffentlicht 3. August 200520 j Hallo meine Lieben, da ich bisher im Inet und auch noch nicht hier einen passenden Wink mit dem Telegraphenmast gefunden (oder übersehen) habe, möchte ich euch kurze Frage stellen. Vielleicht habe ich einfach Scheuklappen auf und sehe die Lösung nicht, auch wenn sie mir schon unter der Nase schwebt Ma sehen. Ich muss in meiner Java Applikation SQL Statements nutzen, die mit Platzhaltern versehen sind (Stringplätze, keine PreparedStatements). query = "SELECT ADRESSE FROM KHKAdressen " + "WHERE NAME1 = ' "+rsQuelle.getString("NAME1")+" ' " + "AND LIEFERSTRASSE = ' "+rsQuelle.getString("STRASSE")+" ' " + "AND LIEFERORT = ' "+rsQuelle.getString("ORT")+" ' "; Mein Problem ist nun dass der mögliche Inhalt Leerzeichen und Hochkomma enthalten kann/wird, die den String unterbrechen. Bsp: 'L'oreal GmbH' Daher suche ich nach einem "alternativen" Zeichen für die String-Einläutung unter Java bezüglich der SQL Strings. Prepared Statements passen aufgrund der Leerzeichen hier auch nicht, \' und Quotes klappt ebenfalls nicht. Danke und Gruß, Merlin_Level_E
3. August 200520 j Prepared Statements passen aufgrund der Leerzeichen hier auch nichtWarum nicht? Was genau spricht gegen ein PreparedStatement? Für genau solche Anwendungsfälle sind die Dinger schließlich konzipiert.
3. August 200520 j Du könntest auch die Sonderzeichen mittels RegEx ersetzen (jeweils ein Backslash davor schreiben). Damit maskierst du die Sonderzeichen und diese werden nicht interpretiert. Allerdings sind die PreparedStatements wirklich vorzuziehen!!!
4. August 200520 j iLoha, besten Dank an Euch. Bin auf Prepared Statements umgestiegen und die Ausführung läuft nun endlich. Warum ich nun der festen Überzeugung war dass dies nicht gehen würde, weiss ich nun leider auch nicht mehr Nochmals danke ! iMe
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.