Probleme acces database via c++
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 !
Hey, ma solution fonctionne, c'est juste que j'ai oublié un gros bout Langue

Voilà ce qu'il te faut faire pour pouvoir te connecter aux autres BDD ( mangos, characters, realmd )
Dans le code qui suit, il y a aussi la BDD 'custom', à toi de supprimer les quelques lignes la concernant si tu n'en veux pas Clin

[code=diff]Index: scriptdev2.conf.dist.in
============================================================​=======
--- scriptdev2.conf.dist.in (révision 1994)
+++ scriptdev2.conf.dist.in (copie de travail)
@@ -1,13 +1,25 @@
-# ScriptDev2 Configuration file
-# This file must be placed within the directory which holds mangosd.conf and realmd.conf
-
+#################################
+# ScriptDev2 Configuration file #
+#################################
[ScriptDev2Conf]
ConfVersion=2010062001

+###########################################################​########################################################
+# ScriptDev2DatabaseInfo
+# LoginDatabaseInfo
+# WorldDatabaseInfo
+# CharacterDatabaseInfo
+# CustomDatabaseInfo
# Database connection settings for the world server.
# Default: hostname;port;username;password;database
# .;somenumber;username;password;database - use named pipes at Windows
# Named pipes: mySQL required adding "enable-named-pipe" to [mysqld] section my.ini
# .;/path/to/unix_socket;username;password;database - use Unix sockets at Unix/Linux
# Unix sockets: experimental, not tested
-ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;scriptdev2"
+###########################################################​########################################################
+
+ScriptDev2DatabaseInfo = "127.0.0.1;3306;mangos;mangos;scriptdev2"
+LoginDatabaseInfo = "127.0.0.1;3306;mangos;mangos;realmd"
+WorldDatabaseInfo = "127.0.0.1;3306;mangos;mangos;mangos"
+CharacterDatabaseInfo = "127.0.0.1;3306;mangos;mangos;characters"
+CustomDatabaseInfo = "127.0.0.1;3306;mangos;mangos;custom"
Index: ScriptMgr.cpp
============================================================​=======
--- ScriptMgr.cpp (révision 1994)
+++ ScriptMgr.cpp (copie de travail)
@@ -22,15 +22,39 @@

void LoadDatabase()
{
- std::string strSD2DBinfo = SD2Config.GetStringDefault("ScriptDev2DatabaseInfo", "");
-
+ std::string strSD2DBinfo = SD2Config.GetStringDefault("ScriptDev2DatabaseInfo", "");
+ std::string strCustomDBinfo = SD2Config.GetStringDefault("CustomDatabaseInfo", "");
+ std::string strMangosDBinfo = SD2Config.GetStringDefault("WorldDatabaseInfo", "");
+ std::string strCharactersDBinfo = SD2Config.GetStringDefault("CharacterDatabaseInfo", "");
+ std::string strRealmdDBinfo = SD2Config.GetStringDefault("LoginDatabaseInfo", "");
+
if (strSD2DBinfo.empty())
{
error_log("SD2: Missing Scriptdev2 database info from configuration file. Load database aborted.");
return;
}
-
- //Initialize connection to DB
+ if (strCustomDBinfo.empty())
+ {
+ error_log("SD2: Missing Custom database info from configuration file. Load database aborted.");
+ return;
+ }
+ if (strMangosDBinfo.empty())
+ {
+ error_log("SD2: Missing Mangos database info from configuration file. Load database aborted.");
+ return;
+ }
+ if (strCharactersDBinfo.empty())
+ {
+ error_log("SD2: Missing Characters database info from configuration file. Load database aborted.");
+ return;
+ }
+ if (strRealmdDBinfo.empty())
+ {
+ error_log("SD2: Missing Realmd database info from configuration file. Load database aborted.");
+ return;
+ }
+
+ //Initialize connection to Scriptdev2 DB
if (SD2Database.Initialize(strSD2DBinfo.c_str()))
{
outstring_log("SD2: ScriptDev2 database at %s initialized.", strSD2DBinfo.c_str());
@@ -44,10 +68,54 @@
}
else
{
- error_log("SD2: Unable to connect to Database. Load database aborted.");
+ error_log("SD2: Unable to connect to Scriptdev2 Database. Load database aborted.");
return;
}
-
+ //Initialize connection to Custom DB
+ if (CustomDatabase.Initialize(strCustomDBinfo.c_str()))
+ {
+ outstring_log("SD2: Custom database at %s initialized.", strCustomDBinfo.c_str());
+ outstring_log("");
+ }
+ else
+ {
+ error_log("SD2: Unable to connect to Custom Database. Load database aborted.");
+ return;
+ }
+ //Initialize connection to Mangos DB
+ if (WorldDatabase.Initialize(strMangosDBinfo.c_str()))
+ {
+ outstring_log("SD2: Mangos database at %s initialized.", strMangosDBinfo.c_str());
+ outstring_log("");
+ }
+ else
+ {
+ error_log("SD2: Unable to connect to Mangos Database. Load database aborted.");
+ return;
+ }
+ //Initialize connection to Characters DB
+ if (CharacterDatabase.Initialize(strCharactersDBinfo.c_str()))
+ {
+ outstring_log("SD2: Characters database at %s initialized.", strCharactersDBinfo.c_str());
+ outstring_log("");
+ }
+ else
+ {
+ error_log("SD2: Unable to connect to Characters Database. Load database aborted.");
+ return;
+ }
+ //Initialize connection to Realmd DB
+ if (LoginDatabase.Initialize(strRealmdDBinfo.c_str()))
+ {
+ outstring_log("SD2: Realmd database at %s initialized.", strRealmdDBinfo.c_str());
+ outstring_log("");
+ }
+ else
+ {
+ error_log("SD2: Unable to connect to Realmd Database. Load database aborted.");
+ return;
+ }
+
SD2Database.HaltDelayThread();

}
[/code]

Cordialement,
MacWarrior.
merci mac tu assure et gg pour tes patch!
La tu c pas comment tu me debloque sur trop de script
N'oublie pas de passer le topic en résolue si tu n'as rien à ajouté Clin

Cordialement,
MacWarrior.

Retourner en haut Accueil