Samstag, 14. Oktober 2023

Better Access Charts: Umgang mit einfachen Anführungszeichen

Jeder, der als Access-Entwickler arbeitet, kennt das Problem: Einfache Anführungszeichen in den Daten können bei der Ausführung von komplexen SQL-Statements zu Fehlermeldungen führen. In diesem Beitrag zeigen wir, wie dieses Problem in Better Access Charts gelöst werden kann und welche faszinierenden Erkenntnisse sich dabei ergeben.

Im Juli erreichte mich auf GitHub ein Diskussionsbeitrag. Ein Benutzer hatte beim Einsatz von Better Access Charts eine Fehlermeldung erhalten. Am Ende hat er die Ursache herausgearbeitet: Das Problem lag in den Daten. Ein Datensatz enthielt den Namen "Kevin O'Rourke". Erfahrene Programmierer erkennen sofort das Apostroph im Namen.

Meine erste Lösungsidee war, das Apostroph zu verdoppeln - so, wie es in Access und VBA üblich ist. Doch diese Lösung führte nicht zum gewünschten Ergebnis. Wir entwickeln hier nicht in Access und VBA, sondern mit HTML und JavaScript.

In JavaScript wird in solchen Fällen das Apostroph mit einem Backslash ("\") maskiert. Aus dem Apostroph "'" wird dann "\'". Der VBA-Code war schnell angepasst, aber das Ergebnis war leider ernüchternd: Der Chart wurde immer noch nicht angezeigt.

Ein Blick in die Entwicklertools des Edge-Browser-Steuerelements zeigte, dass der Backslash im HTML- und JavaScript-Code nicht richtig verarbeitet wurde. Das Edge-Browser-Steuerelement schien dieses Zeichen zu verschlucken.

Also versuchte ich es mit zwei Backslashes: "\\'". Das Ergebnis war erfreulich. Der Chart wird angezeigt. Ein Blick in die Entwicklertools zeigt, dass ein Backslash angekommen ist und somit das Hochkomma ganz normal als Zeichen dargestellt werden kann.

Zunächst freute ich mich über diesen Fortschritt. Dann fiel mir ein, dass wir die Möglichkeit haben, den generierten HTML-Code als Datei zu speichern, was für Analysezwecke äußerst hilfreich ist. Diese Datei enthielt nun jedoch zwei Backslashes. Als ich sie öffnete, wurde der Browser gestartet, aber leider wurde kein Chart angezeigt. Stattdessen fand ich in den Entwicklertools eine Fehlermeldung.

Mein erster Gedanke war, den doppelten Backslash beim Speichern des HTML-Codes als Datei wieder durch einen einfachen zu ersetzen. Das funktionierte zwar, gefiel mir aber nach eingehender Überlegung nicht. Der Code wurde dadurch unübersichtlich und schwer nachzuvollziehen. Der Standard ist schließlich, einen Backslash zu verwenden, und hier waren zwei im Spiel. Schließlich musste zusätzliche Logik eingefügt werden, um den zweiten Backslash beim Speichern als Datei wieder zu entfernen.

Schließlich entschied ich mich dafür, das Apostroph durch ein anderes Zeichen zu ersetzen: "´". Damit können Charts erstellt werden, auch wenn in einem Namen ein Apostroph vorhanden ist. Gleichzeitig entfällt die Notwendigkeit, zusätzliche Logik hinzuzufügen, um mit diesem lästigen "Feature" des Edge-Browser-Steuerelements umzugehen.

Die aktuelle Version von Better Access Charts steht wie immer auf GitHub bereit:
https://github.com/team-moeller/better-access-charts

Keine Kommentare: