Datenbank des GLS Vereinsmeister von Visual FoxPro nach MySQL bzw. SQL-Server umstellen.
Hierfür müssen vorab ein paar Installationen durchgeführt werden.
MySQL
1.) MySQL installieren
Hinweis: Als Bsp. wird hier eine lokale Installation verwendet
In XAMPP ist der MySQL-Server enthalten incl. PhpMyAdmin um die Datenbanken zu verwalten
A.) XAMPP herunterladen und installieren nach c:\xampp
2.) XAMPP Anpassungen:
A:) Link zum XAMPP-Controllcenter erstellen mit Admin-Rechten
> In den Ordner c:\xampp\ wechseln
> Rechte Maustaste auf xampp-control.exe und Senden an > Desktop (Verknüpfung erstellen) anklicken
> Auf den neu erzeugen Link im Desktop per rechte Maustaste auf Eigenschaften klicken
- im Register Verknüpfung auf Erweitert klicken und "Als Administrator ausführen" anklicken
- Im Register Allgemein den Text " - Verknüpfung" entfernen:
B:) XAMPP-Controllcenter starten
>MySQL starten (Firewall Zugriffsmeldung zulassen)
> Apache starten (Firewall Zugriffsmeldung zulassen)
Hinweis: Das Apache Modul lässt sich nicht starten
Dies liegt vermutlich am WWW-Publishingdienst da dieser den Port 80 blockiert
> Windows Dienste starten
-> CMD-Shell als Admin starten darin dann services.msc ausführen
-> zum WWW-Publishingdienst scrollen und per Doppelkick die Eigenschaften öffen. Dort den Dienst beenden und Starttyp auf Manuell stellen.
C:) Fernzugriff auf PhpMyAdmin über das Netzwerk zulassen:
->im XAMPP-Kontrollcenter bei Apache die Konfig für "Apache(httpd-xamp.conf)" öffnen und zum Abschnitt phpmyadmin scrollen und "Require local" durch "Require all granted" ersetzen. Datei speichern!
------------------------------------------------------------------------
Alias /phpmyadmin "/xampp/phpMyAdmin/"
<Directory "/xampp/phpMyAdmin">
AllowOverride AuthConfig
Require local
Require all granted
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</Directory>
------------------------------------------------------------------------
3.) Datenbank Benutzer anlegen
In diesem Bsp. wird vmeister als Datenbankbenutzer mit alles Rechten angelegt
> PhpMyAdmin im Webbrowser starten http:/localhost/phpmyadmin/
> Menüpunkt Benutzer auswählen "Benutzerkonto hinzufügen" anklicken
> Namen, PW, % (Jeder Host Zugriff von allen PC im Netzwerk) und Zugriffsrechte vergeben für Daten und Struktur
4.) Zugriff auf MariaDB (MySQL) per ODBC einrichten
Der Zugriff auf die MySQL-Datenbanken geht mit beiden ODBC-Treibern. Der MariaDB-Treiber kommt ohne das Paket "Microsoft Visual C++ Redistributable (x86)" aus.
* MariaDB ODBC-Connector herunterladen und installieren.
-> Product: ODBC connector
-> Verson: 3.1.19-GA (Stand 07.08.2023 funktioniert es mit diesem)
-> OS: MS Windows 32-bit (!)
ODER
* MySQL ODBC herunterladen und installieren.
-> Product Version: 8.0.33 (GSL empfiehlt in einem Forumseintrag 8.0.22)
-> Operating System: MS Windows
-> OS Version: Windows (x86, 32-bit)
Hinweis: Sollte es beim Installieren ein Fehler geben dann muss noch das Paket "Microsoft Visual C++ Redistributable" (32Bit) herunterladen und installieren. Danach sollte beim erneuten Installieren des MySQL-Teibers keine Probleme geben
GLS Vereinsmeister
1.) Daten sichern:
- GLS öffnen.
- Menü-Block Programmbereiche > System/Einstellungen > Datenbankpflege
> 1.Optimieren ausführen !
> 2. Export der Datenbank > Sichern anklicken
- Sicherungs-Ordner auswählen. Dateiname wird vorgeschlagen z.B. vmdasi_20230714 > Start
- Nach einer kurzen Zeit wird die Datensicherung als abgeschlossen angezeigt. > Beenden
2.) Lizenz eingeben für die Netzwerk-Edition:
Im Menü-Block Info auf Über klicken > Registerkarte Info anklicken > Schlüssel anklicken
> Netzwerk-Edition Key eintippen mit + aktivieren.
> GLS schließen
3.) GLS mit MySQL verbinden
- GLS starten
- Menü-Block Programmbereiche > Verbindungseinstellungen
> Im Popup-Fenster den Datenbanktyp auf MariaDB bzw. MySQL ändern
-> Servername: localhost
-> Benutzer: vmeister (Wie unter 3. angegeben)
-> Passwort: ***********
3.) VisualFox Pro Datenbankordner umbenennen
> Den Ordner "c:\ProgramData\GLS Vereinsmeister\db umbenennen nach z.B. db_FVP
4.) Daten importieren nach MySQL
- GLS starten
- Menü Programmbereiche > System/Einstellungen > Datenbankpflege
- Wiederherstellen anklicken und die zuvor erstelle ZIP auswählen und mit Start die Daten importieren. (Löschen bestätigen)
- Hinweis: Import dauert etwas ;-)
Import-Fehler korrigieren
(ohne Fehler kann dieser Punkt natürlich übersprungen werden)
Sollte nach dem Import ein Fehlerprotokoll angezeigt werden dieses öffnen
INFO: Sicherungsdaten importieren: EXADR
ERROR: Fehler beim Speichern der Tabelle: Externe Adressen (Daten ggf. inkonsistent).
ERROR: Nativer Fehler: Die IBAN hat eine ungültige Prüfziffer!
Dieser Fehler tritt auf wenn die IBAN in Blöcken eingetragen ist und nicht am Stück. z.B. (gekürzt ;-) DE59 1245 0000 0000 (Korrekt DE59124500000000)
oder z.B.
INFO: Sicherungsdaten importieren: SONZAH
ERROR: Fehler beim Speichern der Tabelle: Mitglieder - Sonderzahlungen (Daten ggf. inkonsistent).
ERROR: Nativer Fehler: Der Betrag darf nicht Null sein.
Zum Verständnis:
In diesem Bsp. geht es um die Sonderzahlungen (Tabelle sonzah). Leider habe ich bei Sonderzahlungen keine offensichtlichen Fehler gefunden. Eine Möglichkeit besteht darin die Daten komplett zu exportieren und via PHPMyAdmin zu importieren.
Hierfür wird ein Commandline-Tool benötigt dass auf die Visualfox-Pro Datensätze zugreifen kann.
Hinweis:
Über eine einfache SQL-Abfrage select * from sonzah
wird der Inhalt eines Memo-Feldes nicht angezeigt. Wenn in den Memo-Feldern keine großen Datenmengen wie z.B. Bilder enthalten sind, kann über eine Konvertierung auf max. 254 Zeichen das Memo-Feld per CAST-Funktion so umgewandelt werden, dass es die Memo-Feldinhalte exportiert.
A.) Commandline-Tool um SQL-Befehle in VisualFox Pro auszuführen:
FoxConsole
ODER
vRunfox bzw. Alternaitver Download (Nach Target.zip suchen und den Download danach umbenennen !)
Eine der Zip herunterladen und nach c:\ProgramData\GLS Vereinsmeister\db kopieren.
> FoxConsole.exe bzw. vRunfox.exe starten
Hinweis: Sollte der Fehler msvcr71.dll angezeigt werden diese DLL von dllme.comdllme.com herunterladen und ebenfalls in den db-Ordner kopieren.
-----------------------------------------------------------------------------use sonzah
select count(*) from sonzah
(Zeigt die Anzahl Datensätze an. Nicht wirklich notwendig)select * from sonzah
(Zeigt alle Datensätze incl. Memofelder an. Jetzt können die Memo-Felder identifiziert werden, da in den Datensätzen memo steht)
------------------------------------------------------------------------------------select *, CAST(buchtext AS c(254)) AS buchtext
(Mit dieser Erweiterung wird auch der Inhalt des Memo-Feldes buchtext ausgegeben als buchtext_b)copy to sonzah.csv type csv
(Das Memo-Feld buchtext_a wurde nicht mit exportiert :-)
-----------------------------------------------------------------------------
B.) Datei sonzah.csv öffnen z.B. mit Notepad++
->Die 1. Zeile mit den Spaltenüberschriften ausscheiden. Kopfzeile wird gleich noch benötigt ggf. in einen Editor zwischenlagern!
-> Datei von Ansi nach UTF-8 umkodieren und speichern!
C.) PhpMyAdmin der XAMPP-Installation im Webbrowser öffnen und in die Datenbank vmeister wechseln
(D.) Tabelle sonzah als sql-Befehlsätze exportieren falls doch Datensätze vor dem Import angepasst werden müssen.
E.) Tabelle sonzah leeren
E.) Tabelle sonzah öffnen (anklicken) und importieren anklicken
F.) Tabelle importieren
-> sonzah.csv auswählen
-> Format: csv
-> Spaltennamen: aus der Zwischenablage einfügen und buchtext_b (am ende) nach buchtext umbenennen
Wenn jetzt die Anzahl der Datensätze übereinstimmt hat alles geklappt.
Wenn nicht muss jetzt herausgefunden werden welche Datensätze einen Fehler verursachen.
z.B. bei sonzah herausfinden ob es Beträge mit NULL als Wert gibtselect * from sonzah where isnull(stbetrag) or isnull(sz_urwert)
Wenn ja dann folgende Befehle ausführenupdate sonzah set stbetrag=0 where isnull(stbetrag)
update sonzah set sz_urwert=0 where isnull(sz_urwert)
oder bei exadr (externen Adressen) wenn die IBAN Leerzeichen hatupdate exadr set iban=STRTRAN(iban,' ','')
Dies ist nur als Bsp.