--- Achim Kredteck <[EMAIL PROTECTED]> wrote: > Hab eine Anwendung, die zusammen mit einer > REALSQLDatabase arbeitet. > Über ein Editfeld werden dort Text abgelegt, geht > alles gut. > > Nun stelle ich fest, dass, wenn in dem Text ein ' > vorkommt, ein "cannot > commit, no transaction is active" Fehler gemeldet > wird. Ich nehme an, > weil dieses Sonderzeichen in den SQL-statements > vorkommt.....??
Einfache und doppelte Anführungszeichen sind in SQL reservierte Zeichen, mit welchen Strings eingeschlossen werden. Wenn die dann innerhalb eines Strings vorkommen, weiss der SQL Interpreter nicht, dass du den String an der Stelle gar nicht beende wolltest. Du musst daher diese Zeichen "escapen", d.h. du stellst denen, wenn sie in einem String erscheinen, einen Backslash voran. Wenn du dann den Text wieder aus der DB holst, musst du entsprechend die Backslashes wieder entfernen. Obs dafür eine vorgefertigte Funktionen in RB gibt, weiss ich nicht, es sollte aber nicht schwer sein, diese mittels Replace() selbst zu schreiben. Umlaute und andere Sonderzeichen brauchst du innerhalb eines Strings nicht escapen, da die keine Sonderbedeutung haben (allenfalls musst du Konvertierungen zwischen TextEncodings vornehmen) Grüsse Jef __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
