Probleme acces database via c++
Bonsoir voila je suis sur un nouveau patch et actuellement je rencontre un soucis.

voila :
juste apres les include je declare sa :
extern DatabaseMysql SD2Database;
ensuite j'insere la requete suivante:
Code :
QueryResult *result;
      result = SD2Database.PQuery("SELECT vote FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
      Field *Fields = result->Fetch();
Cette requete fonctionne mais lorsque je la remplace par celle ci :
je declare sa apres les include:
DatabaseType LoginDatabase;
sans le extern car avec sa ne compile pas.
et j'insere la requete suivante :
Code :
QueryResult *result;
      result = LoginDatabase.PQuery("SELECT vote FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
      Field *Fields = result->Fetch();

la requete ci - dessus ne em renvoie aucune erreure de compilation mais fait crash le serveur le sd2 marche mais characterDatabase ou WorldDatabase ou LoginDatabase font crasher le serveur je n'y comprend rien.

Si quelqun sait merci d'avance.

Cordialement Toxic Ninja
Code :
DatabaseType LoginDatabase;
Aurais-tu oublié le "extern" :
Code :
extern DatabaseType LoginDatabase;

Code :
QueryResult *result;
      result = LoginDatabase.PQuery("SELECT vote FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
      Field *Fields = result->Fetch();
Pense à faire une vérification au cas ou la requête ne retournerai aucun résultat :
Code :
if(result)
{ ... }

Cordialement,
MacWarrior.
voila la database que je viens de mettre
extern DatabaseType LoginDatabase;
Juste apres les include.

Voici la requetes.
Code :
QueryResult *result;
result = LoginDatabase.PQuery("SELECT vote FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
Field *Fields = result->Fetch();
vote = Fields[0].GetInt32();

Le result :
Code :
case 9000:
         if(result)
         {
             if(vote >= price_RNM)
             {

                  if(!player->HasAtLoginFlag(AT_LOGIN_RENAME))
                  {
                     int32 vote_r = vote - price_RNM;
                     player->CLOSE_GOSSIP_MENU();
                     player-> SetAtLoginFlag(AT_LOGIN_RENAME);
                     _Creature->MonsterWhisper("Voici votre récompense, merci pour vos votes.Déconnecte toi pour renommer ton personnage.", player);
                     LoginDatabase.PQuery("UPDATE account SET vote = '%d' WHERE id = '%u'", vote_r, player->GetSession()->GetAccountId());
                  }
                  else
                  {
                      player->CLOSE_GOSSIP_MENU();
                     _Creature->MonsterWhisper("Tu as deja effectuer cet achat, deconnecte toi pour renommer ton personnage !", player);
                  }
               }
             else
             {
                 player->CLOSE_GOSSIP_MENU();
                 _Creature->MonsterSay("Tu ne possede pas assez de pts de vote pour cet achat !", LANG_UNIVERSAL, NULL);
             }
         }
         break;


Mes includes:
Code :
#include "precompiled.h"
#include "../../../../shared/Config/Config.h"
#include "../../config.h"
#include "Config/Config.h"
#include "Database/DatabaseEnv.h"
#include "DBCStores.h"
#include "ObjectMgr.h"
#include "ProgressBar.h"
#include "../system/ScriptLoader.h"
#include "../system/system.h"
#include "../../../game/ScriptMgr.h"

voici l'erreure.

Code :
1>------ Début de la génération : Projet : ScriptDev2, Configuration : Release Win32 ------
1>Extracting revision
1>Compilation en cours...
1>Toxic_Boutique.cpp
1>Édition des liens en cours...
1>   Création de la bibliothèque ..\..\..\..\bin\win32_release/mangosscript.lib et de l'objet ..\..\..\..\bin\win32_release/mangosscript.exp
1>Toxic_Boutique.obj : error LNK2001: symbole externe non résolu "class DatabaseMysql LoginDatabase" (?LoginDatabase@@3VDatabaseMysql@@A)
1>..\..\..\..\bin\win32_release/mangosscript.dll : fatal error LNK1120: 1 externes non résolus
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\toxic-ninie\Desktop\Nouveau dossier (3)\mangos\src\bindings\scriptdev2\VC90\ScriptDev2__Win32_Re​lease\BuildLog.htm"
1>ScriptDev2 - 2 erreur(s), 0 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

Quand je le declare sans le extern sa compile sans erreure mais sa fait crash le serveur.
Désoler Mac ta solution ne marche pas.
Édition :
Personne ne peut m'eclairer sur ce soucis, pouvoir acceder a une autre table que la sd2 mais sa bug voir code ci dessus. merci

Édition :
Bonsoir desoler de relancer la discution c'est toujours le meme soucis pour acceder a la charactersdatabase a partir du gossip l'erreure est toujours la meme, merci a vous !

Retourner en haut Accueil