1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 23 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Scripthilfe - asyncCall

    • D0ggy
    • 2. Februar 2018 um 23:37
    • Geschlossen
    • Erledigt
    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 2. Februar 2018 um 23:37
      • #1

      Guten Abend NN,


      ich habe mir ein kleines Script geschrieben, was den zugang zum MySQL server vorraussetzt um Daten zu Speichern und ab zu rufen.

      Doch irgendwie will das ganze nicht so wie ich es möchte. Ich übergebe alles korrekt zum starten des Querys, aber bekomme als antwort in ein Hint immer nur "ANY" als antwort.

      Ich habe bereits andere Script angeschaut, die auch asyncCall verwenden, und finde kein Unterschied oder geschweige ein Fehler den ich gemacht habe. Das Problem quält mich jetzt schon 3 Tage....

      Ich bin Ratlos.


      Code
      _wtf = ["SELECT * FROM players WHERE uid='79'", 2] call DB_fnc_asyncCall;
      hint format["%1", _wtf];

      oder auch

      Code
      _wtf = ["SELECT bankacc FROM players WHERE uid='79'", 2] call DB_fnc_asyncCall;
      hint format["%1", _wtf];

      Und ja die UID 79 existiert. Ich habs auch schon mit players.bankacc probiert. Alles erfolglos -.-

      Ich benutze ExDB3 und AL 5.0


      Bitte helft mir doch!

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 2. Februar 2018 um 23:58
      • #2

      Server RPT & extDB Logs

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 3. Februar 2018 um 00:04
      • #3
      Code
      _queryResult = call compile _queryResult;
      if ((_query>
       0:00:55   Error position: <= call compile _queryResult;
      if ((_query>
       0:00:55   Error Generic error in expression
       0:00:55 File \life_server\Functions\MySQL\fn_asyncCall.sqf [DB_fnc_asyncCall], line 105
       0:00:55 Error in expression <!_loop) exitWith {};
      };
      };

      RPT ... aber auch nur wenn ich den Button spamme, wird wohl überlagerung sein.

      Aber ansonsten nichts. Das ist ja so verwunderlich...

      Wenn ich was inserte, funktioniert alles super. Nur Daten bekomme ich nicht ausgelesen..

    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 3. Februar 2018 um 15:36
      • #4

      Keiner eine Idee? :(

    • Yasar-S
      Anfänger
      Reaktionen
      22
      Trophäen
      9
      Beiträge
      77
      • 3. Februar 2018 um 16:20
      • #5

      Guten Tag,

      könntest du bitte die ganze fn_asyncCall.sqf hier posten ? :) Wäre sehr hilfreich.

      Mfg

      Yasar-S

    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 3. Februar 2018 um 16:28
      • #6
      Code
      #include "\life_server\script_macros.hpp"
      /*
          File: fn_asyncCall.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Commits an asynchronous call to ExtDB
      
          Parameters:
              0: STRING (Query to be ran).
              1: INTEGER (1 = ASYNC + not return for update/insert, 2 = ASYNC + return for query's).
              3: BOOL (True to return a single array, false to return multiple entries mainly for garage).
      */
      private ["_queryStmt","_mode","_multiarr","_queryResult","_key","_return","_loop"];
      _queryStmt = [_this,0,"",[""]] call BIS_fnc_param;
      _mode = [_this,1,1,[0]] call BIS_fnc_param;
      _multiarr = [_this,2,false,[false]] call BIS_fnc_param;
      
      _key = EXTDB format ["%1:%2:%3",_mode,FETCH_CONST(life_sql_id),_queryStmt];
      
      if (_mode isEqualTo 1) exitWith {true};
      
      _key = call compile format ["%1",_key];
      _key = (_key select 1);
      _queryResult = EXTDB format ["4:%1", _key];
      
      //Make sure the data is received
      if (_queryResult isEqualTo "[3]") then {
          for "_i" from 0 to 1 step 0 do {
              if (!(_queryResult isEqualTo "[3]")) exitWith {};
              _queryResult = EXTDB format ["4:%1", _key];
          };
      };
      
      if (_queryResult isEqualTo "[5]") then {
          _loop = true;
          for "_i" from 0 to 1 step 0 do { // extDB3 returned that result is Multi-Part Message
              _queryResult = "";
              for "_i" from 0 to 1 step 0 do {
                  _pipe = EXTDB format ["5:%1", _key];
                  if (_pipe isEqualTo "") exitWith {_loop = false};
                  _queryResult = _queryResult + _pipe;
              };
          if (!_loop) exitWith {};
          };
      };
      _queryResult = call compile _queryResult;
      if ((_queryResult select 0) isEqualTo 0) exitWith {diag_log format ["extDB3: Protocol Error: %1", _queryResult]; []};
      _return = (_queryResult select 1);
      if (!_multiarr && count _return > 0) then {
          _return = (_return select 0);
      };
      
      _return;
      Alles anzeigen
    • Yasar-S
      Anfänger
      Reaktionen
      22
      Trophäen
      9
      Beiträge
      77
      • 3. Februar 2018 um 16:45
      • #7

      Mal eine ganz dumme frage. Wird dieses Script was den asyncCall ausführt Clientseitig oder Serverseitig ausgeführt ?

      Der asyncCall funktioniert soweit ich weiß nur Serverseitig.

      Wenn es auch Clientseitig funktioniert, dann habe ich wieder was neues dazu gelernt :D.

    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 3. Februar 2018 um 16:57
      • #8

      Ja wird serverside ausgeführt

    • Yasar-S
      Anfänger
      Reaktionen
      22
      Trophäen
      9
      Beiträge
      77
      • 3. Februar 2018 um 17:02
      • #9
      Zitat von ThunderDodge

      hint format["%1", _wtf];

      Ein Hint funktioniert auf einem Server nicht. Versuch es mal mit

      Code
      diag_log format["QUERY FROM THE UID 79: %1", _wtf];

      dann müsste der Query das Ergebnis in die Logs schreiben.

      Nochwas. Kommt diese Fehlermeldung immer dann wenn dieses Script ausgeführt wird ?

      Einmal editiert, zuletzt von Yasar-S (3. Februar 2018 um 20:43)

    • D0ggy
      Anfänger
      Reaktionen
      7
      Trophäen
      9
      Beiträge
      28
      Bilder
      3
      • 3. Februar 2018 um 22:20
      • #10

      Hab das Problem gelöst. Danke für eure Hilfe :)

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™