Hallo zusammen,
gibt es schon irgendwo ein verständliches Tutorial zu extDB3? Ich hab keins gefunden. Daher starte ich mal hier eine entsprechende Diskussion die am Ende hoffentlich eine Art Tutorial wird, indem ich den ersten Beitrag wiederholt aktualisiere.
Schritt 1: extDB3 Installation scheint trivial:
- Neueste extDB3 Version runterladen
- tbbmalloc_x64.dll und tbbmalloc.dll ins ArmA3 Hauptverzeichnis kopieren
- @extDB3 Ordner ins ArmA3 Hauptverzeichnis kopieren (und ab sofort im serverseitigen Modstring mitanziehen)
- extdb3-conf.ini im @extDB3 Ordner konfigurieren: Also IP, Port (meist 3306), Username, Passwort, Datenbankname eintragen
Schritt 2: Interessant wirds bei der eigentlichen Verwendung in den sqf Skripten. Gehen wir mal von dem einfachsten Anwendungsfall aus: Zu Beginn einer Mission möchte ich Infos der vorherigen Mission laden. Am Ende der Mission möchte ich den Spielstand speichern. Ich brauche also serverseitig eine initDatenbank.sqf, ladeAusDatenbank.sqf und speicherInDatenbank.sqf.
meinDatenbankKonfigName ist dabei der der Begriff in Klammern, der in der Datenbank Konfigurationsdatei oberhalb von IP, Passwort, DB-Name, Port steht. meinDatenbankKonfigName ist also NICHT unbedingt der mysql Datenbankname. Wenn man nur mit einer Datenbank arbeitet, kann man diese beiden Namen aber gleich setzen um keine Verwirrung aufkommen zu lassen.
Das SQL_Custom Protokoll erzwingt/ermöglicht, dass man vordefinierte SQL Befehle in einer ausgelagerten Datei ordentlich zusammenfasst. Diese ausgelagerten Befehle werden dann über einen Variablennamen referenziert. Die ausgelagerte ini-Datei sieht dabei so aus.
Was man dann anstellt mit dem Lade-Ergebnis ist jedem selbst überlassen. Das Ergebnis ist vermutlich ein Array nach diesem Muster [TYPE, DATA], wobei TYPE i.d.R. '1' sein sollte was für 'OK' steht. Ergebnis ist also meist das Array [1, datenAusDatenbank].
Gruß,
Schmitt