\ fuer SQL Server maskieren

21/05/2008 - 12:25 von Christoph Schneegans | Report spam
Hallo allerseits!

In einer Access-Anwendung mit SQL Server als Backend
verschwanden Backslashes am Zeilenende eines mehrzeiligen Textfeldes.
Das Verhalten war mir unerklàrlich, bis ich auf
<http://support.microsoft.com/kb/164291/en-US> gestoßen bin.

Ich suche nun eine Methode, um dieses Problem global, also für alle
Formulare und alle Access-Anwendungen, zu erschlagen. Meine erste Idee
war, in alle relevanten Formulare eine Ereignis-Routine

Private Sub Form_BeforeUpdate(Cancel As Integer)
EscapeBackslashCrLfInForm Me
End Sub

einzufügen, wobei EscapeBackslashCrLfInForm() wiederum eine Methode
ist, die in allen Textfeldern "\<CR><LF>" durch "\ <CR><LF>" ersetzt,
also ein Leerzeichen ans Zeilenende anfügt. Dieser Ansatz hat leider
den Nachteil, daß der Inhalt des Textfeldes dauerhaft veràndert wird.
In manchen Szenarios ist es durchaus ein Unterschied, ob eine Zeile
mit "\" oder mit "\ " endet.

Ist es also möglich, den im KB-Artikels vorgeschlagenen Workaround in
Access umzusetzen und "\<CR><LF>" durch "\<CR><LF><CR><LF>" zu
ersetzen – und zwar nur in der SQL-Anweisung, die Access an den Server
schickt?

<http://schneegans.de/web/kanonische-adressen/> · Gute URLs
 

Lesen sie die antworten

#1 Mark Doerbandt
21/05/2008 - 12:31 | Warnen spam
Hallo, Christoph,

Christoph Schneegans:

Ist es also möglich, den im KB-Artikels vorgeschlagenen Workaround in
Access umzusetzen und "\<CR><LF>" durch "\<CR><LF><CR><LF>" zu
ersetzen – und zwar nur in der SQL-Anweisung, die Access an den Server
schickt?



imo nein, ausser in einem ungebundenen Szenario, wo Du die
SQL-STatements selber absendest.

Aber warum machst Du nicht einfach das Replace statt mit dem Blank mit
der doppelten Sequenz direkt vor dem Speichern. Beim Lesen sollte ja
dann wieder eine einfache Sequenz zurueck kommen.

Gruss - Mark

Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen