Hallo Robert,

das größere Problem

"[...] bei Zeilen dieser Art stSql = "SELECT ""ID"" FROM """+NameTabelle1+""" WHERE 
"""+NameTabellenFeld1+"""='"+stInhalt+"'" sind +NameTabelle1+ | +NameTabellenFeld1+ | +stInhalt+ rot eingefärbt [...]"

konnte ich mit

'    7 Datenbank-Makro (optional)

     If (DBM = "ja" ) Then

'       7.1 Zeichenkette rückfärben:
        oRD.SearchString = """.*(""'|'""|'.'|.'.).*"""
        aAttR(0).Name  = "CharColor"
        aAttR(0).Value = Red
        oRD.SetReplaceAttributes(aAttR())
        oRD.ReplaceString = "&"
        oDok.replaceAll(oRD)

'       7.2 MacroCode rückfärben:
        oRD.SearchString = "\+[[:alnum:]|_]+\+"
        aAttR(0).Name  = "CharColor"
        aAttR(0).Value = Green
        oRD.SetReplaceAttributes(aAttR())
        oRD.ReplaceString = "&"
        oDok.replaceAll(oRD)

'       7.3 +-Zeichen rückfärben:
        oRD.SearchString = "\+"
        aAttR(0).Name  = "CharColor"
        aAttR(0).Value = BlueNA
        oRD.SetReplaceAttributes(aAttR())
        oRD.ReplaceString = "&"
        oDok.replaceAll(oRD)

     EndIf

lösen.

Dazu müsste ich noch wissen, welche Regeln für diese Bezeichner zwischen 2 
+-Zeichen gelten. Ich habe mich jetzt mal an den Regeln für Variablen 
orientiert: alpha-numerisch und Unterstrich.

So etwas

FUNCTION String_to_SQL(st AS STRING)
IF InStr(st,"'") THEN
st = Join(Split(st,"'"),"''")

kann ich nicht kompensieren, zu viele Nebeneffekte. Da hilft nur alternative 
Kodierung, die unter dem Aspekt Kode-Lesbarkeit auch vertretbar ist, wenn man 
nicht manuell nachfärben möchte:

FUNCTION String_to_SQL(st AS STRING)
IF InStr(st,Chr(39)) THEN
st = Join(Split(st,Chr(39)),Chr(39) & Chr(39))

oder via

Dim EA As String : EA = Chr(39) ' Einfaches Anführungszeichen

FUNCTION String_to_SQL(st AS STRING)
IF InStr(st,EA) THEN
st = Join(Split(st,EA),EA & EA)

Gilt auch für:

Feldtrenner = Join(Split(aErster(1),"'"),"")

Dies

REM Funktion, um gegebenenfalls auch " ' " in einem String bei der Eingabe in 
die Datenbank zu ermöglichen. Bei dBase notwendig.

konnte ich durch Umstellung der Kolorierung der REM-Kommentare als letzten 
Makro-Abschnitt kompensieren.

Würde obiger Kommentar mit einem ' eingeleitet, müsste man sich für das " ' " 
eine andere Schreibweise/Formulierung ausdenken, sonst gibts ne Fehlfärbung.

Neues Ergebnis "Robert.odt" und "Robert_MOD.ods" (mit eingebauten 
Kodierungsvorschlägen bezüglich Chr(39)) via CC: an Dich.

Ich habe jetzt keine Fehlfärbungen (@ Robert_MOD.ods) mehr gefunden, was 
allerdings bei einem Test mit nur einem Datenbank-Makro nicht unbedingt 
repräsentativ ist ...

Gruß
Hans-Werner :-))



--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an