1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Insérer une donnée d'une BDD dans un objet

    Bonjour, bonsoir

    Je planche sur un problème depuis quelques jours maintenant et j'aimerais avoir l'avis de gens plus compétent que moi. Étant nouveaux avec Typescript, je n'arrive pas à insérer une donnée venant d'une base de donnée (SQLITE3) dans un objet Typescript. Je cherche simplement un faire un CRUD, mon Create fonctionne comme il faut mais le Read me pose problème. Je vous met le code de ma classe avec mes 2 méthodes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    var sqlite3 = require('sqlite3').verbose();
    var db = new sqlite3.Database('RPG.db');
     
    import Personnage from "./personnage"
     
    export default class DaoPersonnage {
     
        create(obj: Personnage) {
            var p = new Personnage.prototype.persoObj(obj);
            db.serialize(function() { 
                var stmt = db.prepare("INSERT INTO joueurs VALUES (?, ?, ?)");
                stmt.run(p.id, p.pseudo, p.lvl);
                stmt.finalize();
            });
        }
     
        read(myID: number) {
     
            var p= new Personnage();
            db.serialize(() => { 
                db.each("SELECT rowid AS id, pseudo, level FROM joueurs WHERE id=" + myID, function(err,row){ 
                    if (err === null) {
                        p.id = row.id;
                        p.pseudo = row.pseudo;
                        p.lvl = row.level;
                        p.toString(); // affiche mes 3 variables correctement
                        console.log("row.id = " + p.id);  // affiche l'id du personnage
                        console.log("row.pseudo = " + p.pseudo); // affiche le pseudo du personnage
                        console.log("row.level = " + p.lvl); // affiche le level du personnage
                        console.log("Test 1");
                    }
                    else console.log(err);
                });
            });
        p.toString(); // affiche undefined pour chaque variables
        return p;
        }
    et je vous donne également ma classe Personnage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    export default class Personnage {
     
        id: number;
        pseudo: string;
        lvl: number;
     
        constructor() {
        }
     
        public perso(id: number, pseudo: string, lvl: number){
            this.id = id;
            this.pseudo = pseudo;
            this.lvl = lvl;
        }
     
        public persoObj(p:Personnage) {
            this.id = p.id;
            this.pseudo = p.pseudo;
            this.lvl = p.lvl;
        }
     
        public toString()
        {
            console.log("toString: ID="+this.id+" pseudo="+this.pseudo+" lvl="+this.lvl);
        }
    Voilà et du coup j'aimerai que quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var dao = new DaoPersonnage();
          var read = dao.read(msg.author.id); // "msg.author.id" est une commande de l'API Discord.js
          console.log("read = " + read.id); //affiche undefined
    cela m'affiche l'id du personnage et non undefined
    J'espère que je n'ai rien oublié pour les infos et que quelqu'un pourra m'aider.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2017
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    Petit up, j'ai toujours pas trouvé de solution au problème

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2013, 14h33
  2. Réponses: 6
    Dernier message: 15/05/2013, 17h48
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Réponses: 2
    Dernier message: 18/12/2006, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo