Grundsätzlich kann GuiXT sehr gut mit einer Textdatei arbeiten. Das heisst die Daten lesen, verändern und irgendeinmal zurückschreiben. Problematisch wird es erst dann wenn mehrere Personen mit diesen Daten gleichzeitig arbeiten.

Dafür benötigt es einen anderen Lösungsansatz, das wäre der Einsatz einer relationalen Datenbank. In meinem Beispiel habe ich eine gebräuchliche Datenbank genommen wie die MS SQL.

Nach der Installation der Datenbank habe ich mir die Musterdaten von der „Northwind“ geholt und installiert. Das heisst ich habe jetzt basierend auf der Tabelle „Customers“ aus der Datenbank Northwind ein Beispiel mit GuiXT gebaut, wie ich Daten lesen, ändern und auch löschen kann.

Wenn ein User einen einzelnen Datensatz bearbeitet, dann will man verhindern, dass ein anderer User den gleichen Datensatz gleichzeitig bearbeiten kann. Dazu habe ich extra eine eigene Sperrtabelle angelegt.

Generell gebe ich Euch den Ratschlag in der MS SQL Datenbank alle Felder möglichst als CHAR Felder zu definieren, in den Feldnamen keine Leerzeichen zu verwenden und die Feldnamen nicht mit Ziffern zu beginnen. Grundsätzlich arbeitet ja GuiXT auch immer nur mit CHAR. Da fallen dann mögliche Probleme von unterschiedlichen Typen von Feldern dahin, wenn alles als CHAR definiert ist.

Für das lesen und bearbeiten der Daten in der MS SQL Datenbank habe ich folgende Funktionen kreeirt:

Funktion Beschreibung
CheckConnection Damit kann geprüft werden ob die Verbindung zu der Datenbank klappt
SelectRow Lesen der Daten aus Tabelle
UpdateRow Updaten der Daten einer Zeile
InsertRow Einfügen einer Zeile in der Datentabelle
DeleteRow Löschen von einer Zeile

Die Funktionen werden immer mittels des Befehls CallVB aus GuiXT aufgerufen. Das hier gebaute Beispiel arbeitet mit sogenannten Tabellenvariablen (Durch CreateTable in GuiXT angelegt). Diese Tabellenvariablen werden im GuiXT im JSON Format gehalten. Daher werden Daten aus GuiXT die an diese Funktionen übergeben werden im JSON Format erwartet, andererseits liefert die Funktion SelectRow die Daten auch jeweils im JSON Format zurück, was es viel einfacher macht, wenn man mit Tabellenvariablen in GuiXT arbeitet.

Die ganze Lösung beeinhaltet einige sonstige Funktionalität die ich in folgendem Video erkläre.

Link zu Video

In der folgenden ZIP Datei findet Ihr alle dazu notwenigen Scripte: MSSQL.zip

Hier ist der SourceCode des VB.NET Programmes zu finden: Sourcecode

 

Update vom 12.04.2023

In der neuesten Version ist ein zusätzlicher Parameter „rowtextname“ vorhanden. Damit kann man anstatt über den Parameter „row“ mehr als 4000 CHAR übertragen,
da hier ein Langtext übertragen wird. Dieser ist unbeschränkt in der Länge. Der Parameter übergibt ein String und der ist auf eine Länge von 4000 CHAR beschränkt.

Empfehlen