Récupérer une variable Skript (BDD)



  • Bonjour, je voudrais savoir s'il est possible de récupérer une variable Skript (un plugin qui permet de coder tout un tas de fonctionnalité) sur son mod ? Cette variable peut-être hébergée sur une Base De Données.

    L'objectif est d'afficher cette variable dans une interface graphique. Merci


  • Administrateurs

    Salut,
    Si c'est en base de donné tu peux récupérer sans problème depuis le mod avec une requête sql.
    Par contre il faudra ensuite un paquet pour l'envoyer au client et l'afficher dans le gui.



  • @'robin4002':

    Salut,
    Si c'est en base de donné tu peux récupérer sans problème depuis le mod avec une requête sql.
    Par contre il faudra ensuite un paquet pour l'envoyer au client et l'afficher dans le gui.

    D'accord je vais chercher de ce côté la merci



  • Tu pourrais m'expliquer comment le faire ? Je suis un peu perdu là.


  • Administrateurs

    Tu bloque sur quel point ?



  • @'robin4002':

    Tu bloque sur quel point ?

    Le système de requête SQL, je vois pas trop comment mettre en place tout ça


  • Administrateurs

    J'imagine que la db est géré par mysql ?
    Si oui, faut passer par la lib mysql-connector-java



  • Du coup avec un ami modder on a récupéré des variables de la base de données mais celle-ci sont en "BLOB" et on ne sait pas comment les convertir en "int" ou autre, si quelqu'un sait comment faire ?


  • Administrateurs

    Ton code ressemble à quoi ?
    Car perso avec mysql-connector-java je récupère un ResultSet à l'exécution d'un query et ensuite je peux avoir un int, double, float, String, etc … en précisant le nom de la colonne.



  • @'robin4002':

    Ton code ressemble à quoi ?
    Car perso avec mysql-connector-java je récupère un ResultSet à l'exécution d'un query et ensuite je peux avoir un int, double, float, String, etc … en précisant le nom de la colonne.

    En fait avec Skript (le plugin minecraft) la value est de base enregistrée en Blob.



  • Voici le code

    public static void Read(String argent2)
       {
      try
      {
    MySQLAccess.connection();
    PreparedStatement q = conn.prepareStatement("SELECT value FROM variables21 WHERE name = ?");
    q.setString(1, argent2);
    ResultSet result = q.executeQuery();
    while(result.next())
    {
    Blob blob = result.getBlob("value");
    System.out.println(blob);
    }
    q.close();
    }
      catch (SQLException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
       }
    

    actuellement il me retourne ceci

    [19:26:40] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:connection:44]: Je me suis connecte a la BDD!
    [19:26:40] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:Readkamas:167]: com.mysql.jdbc.Blob@56c45636
    

  • Administrateurs

    Tu peux faire result.getInt("value");



  • çà ne fonctionne pas

    [19:34:19] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:connection:44]: Je me suis connecte a la BDD!
    [19:34:19] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.sql.SQLException: Invalid value for getInt() - '
    

  • Administrateurs

    Quel est la structure de la table dans la base ?



  • Elle se présente comme ça pour tous :

    Le blob se met automatiquement je ne peux pas le changer (à ma connaissance) :

    http://hpics.li/d5fde94


  • Administrateurs

    Ah oui value est du type blob, donc un objet binaire.
    Il faut voir au niveau de skrip comment elle est écrite et lu pour trouver comment l'exploiter.



  • @'robin4002':

    Ah oui value est du type blob, donc un objet binaire.
    Il faut voir au niveau de skrip comment elle est écrite et lu pour trouver comment l'exploiter.

    On a déjà tenté et il existe très peu d'infos voir aucune de ce côté, cette structure est créée automatiquement et si on tente de modifier manuellement elles deviennent "fixes".


Log in to reply