[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Naja, es gibt das Wiki: https://sampwiki.blast.hk/wiki/MySQL


    Da steht eig alles drinnen :)


    #Handy

    Danke, aber habe da schon reingeschaut gehabt und leider nicht gefunden wonach ich gesucht habe.

    Aber die Seite war mir auf jeden Fall eine Hilfe um die neuen Funktionen zu versttehen.


    Es ging nämlich, unteranderem, um die Funktion "mysql_free_result".

    Die soll ja nur verwendet werden, wenn auch die Funktion "mysql_store_result" verwendet wird.

    Zumindest steht das so auf diversen Seiten.

    Nachdem aber die Funktion "mysql_store_result" im Script nicht ein Mal zu finden ist habe ich die "mysql_free_result"-Funktion auch entfernt.


    Eine kleine zusätzliche Frage:

    Code
    cache_get_value_name_int(0, "Tutorial", result);

    habe das so im code stehen und bekomme folgende Meldung, die für mich keinen Sinn ergibt:

    Code
    error 035: argument type mismatch (argument 3)

    und das bei jedem Mal in dem ich eine der Funktionen "cache_get_value_name", "cache_get_value_name_int" etc verwende.

    Einmal editiert, zuletzt von Ioannis20x () aus folgendem Grund: Ein Beitrag von Ioannis20x mit diesem Beitrag zusammengefügt.

  • Es ging nämlich, unteranderem, um die Funktion "mysql_free_result".

    Die soll ja nur verwendet werden, wenn auch die Funktion "mysql_store_result" verwendet wird.

    Zumindest steht das so auf diversen Seiten.

    Nachdem aber die Funktion "mysql_store_result" im Script nicht ein Mal zu finden ist habe ich die "mysql_free_result"-Funktion auch entfernt.

    Richtig, früher musste mysql_free_result genutzt werden, wenn man mysql_query verwendet hat. Aber das sollte man nicht nutzen, dann brauch man das free auch nicht, das geht inzwischen automatisch :)


    habe das so im code stehen und bekomme folgende Meldung, die für mich keinen Sinn ergibt:

    Kannst du etwas mehr Code zeigen, auch wie du result deklariert hast?

    Vermutlich liegt es einfach daran, dass result kein integer, sondern ein String ist.

    Du solltest es einfach direkt in die Variable packen oder ORM nutzen, dann kannst du dir die Querys und das read/write direkt sparen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Richtig, früher musste mysql_free_result genutzt werden, wenn man mysql_query verwendet hat. Aber das sollte man nicht nutzen, dann brauch man das free auch nicht, das geht inzwischen automatisch :)


    Kannst du etwas mehr Code zeigen, auch wie du result deklariert hast?

    Vermutlich liegt es einfach daran, dass result kein integer, sondern ein String ist.

    Du solltest es einfach direkt in die Variable packen oder ORM nutzen, dann kannst du dir die Querys und das read/write direkt sparen :)

    Danke dir für deine Hilfe.

    Es lag, wie du gesagt hast, an der result Variable.

    Werde es tatsächlich so machen, dass ich es einfach direkt in die Zielvariable schreibe.

  • Aloha zusammen,

    bin schon wieder auf ein für mich unlösbares Problem gestoßen.

    Und zwar handelt es sich um diese Zeile:


    Code
        mysql_tquery(MySqlConnection,"CREATE TABLE IF NOT EXISTS `"#SERVERTAG"_fraktion_motd` (`fID` int(12) NOT NULL,`Text` varchar(128) NOT NULL,PRIMARY KEY (`fID`))","","");

    Diese hat gestern Abend noch funktioniert und nachdem ich bei anderen DB-Abfragen einen DEFAULT-Wert reingeschrieben hatte, kam diese schöne Fehlermeldung:

    Code
    GeTmyselfmade.pwn(77238) : error 075: input line too long (after substitutions)

    Ich habe an dieser Zeile nichts verändert, weswegen ich nicht verstehe, woran das liegen könnte.


    Die Zeile darüber, welche einen DEFAULT-Wert von mir bekommen hat, ist die:

    Code
    mysql_tquery(MySqlConnection,"CREATE TABLE IF NOT EXISTS `"#SERVERTAG"_gangwar` (`GangZoneID` int(3) NOT NULL,`GangWarZoneOwner` int(5) NOT NULL, `GangWarZoneAttacker` int(5) NOT NULL DEFAULT '0',`War_OwnerPoints` int(4) NOT NULL,`War_AttackerPoints` int(4) NOT NULL,`War_Started` int(2) NOT NULL,`War_Time` int(12) NOT NULL,`War_Sperre` int(20) NOT NULL,PRIMARY KEY (`GangZoneID`))","","");



    Ich habe schon versucht mir strcat oder fortmat die das ganze zu teilen bzw neu zu formatieren.

    Leider ohne Erfolg :(

  • Kann dir generell nur empfehlen nicht mehr den alten Compiler zu nutzen, also den hier zu nutzen: https://github.com/pawn-lang/compiler/releases


    Dass die Input-Line too long ist, war generell ein Bug vom alten Compiler, oft ist er ja auch einfach gecrasht 😅


    Alternativ einfach mit strcat arbeiten, verstehe nicht, wieso das nicht gehen sollte?


    C
    new query[512];
    strcat(query, "CREATE TABLE IF NOT EXISTS `"#SERVERTAG"_gangwar` (`GangZoneID` int(3) NOT NULL,`GangWarZoneOwner` int(5) NOT NULL, `GangWarZoneAttacker` int(5) NOT NULL DEFAULT '0',`War_OwnerPoints` int(4) NOT NULL,`War_AttackerPoints` int(4) NOT NULL,");
    strcat(query, "`War_Started` int(2) NOT NULL,`War_Time` int(12) NOT NULL,`War_Sperre` int(20) NOT NULL,PRIMARY KEY (`GangZoneID`))");
    mysql_tquery(MySqlConnection,query,"","");

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe das Script mit dem neuen Compiler compiled und es hat direkt, ohne jegliche Fehlermeldung, funktioniert.

    Danke! :)