Fonction WorldDBQuery
Bonsoir à tous.
J'ai un souci lorsque je fais un
[code=lua]local a = WorldDBQuery("SELECT text from announce where id='1'")
print(a)[/code]
J'ai dans la console
Console ArcEmu a écrit :SQL_QResult(2B680C10)
Comment puis-je avoir un retour normal et pas un truc bizarre comme ça ?
Je ne connais pas le LUA donc je ne vais pas t'être d'une grande aide, mais ce qu'il te retourne est peut-être un pointeur comme en PHP, et ensuite tu devrais faire un Fetch ? Je sais pas si ça existe en LUA Hihi
AU niveau du fetch , a mon avis ça éxiste pas en LUA . T'es sure que dans ta DB tu as quelque chose au moins ?
(06-05-2010 08:05)Klaas a écrit :  T'es sure que dans ta DB tu as quelque chose au moins ?
Tu m'offense, Neo.
Oui, j'ai quelque chose dans ma DB.
Navicat Console a écrit :mysql> SELECT text from announce where id='1';
+-------------+
| text |
+-------------+
| Tdadmamadma |
+-------------+
1 row in set

mysql>
Citation :Tu m'offense, Neo.

Cool

Sinon remplace le print() par un SendBroadcastMessage() , et on verra si ça vient de la ou si c'est le print()
Le BroadcastMessage m'affiche une erreur comme quoi il peut pas envoyer ce type de message. Cela vient donc de la requête SQL. Peut-être le type du field de la table ?
[code=lua]local a = WorldDBQuery("SELECT text from announce where id='1'")
print(a)[/code]
Essaies toujours ça:
[code=lua]local a = WorldDBQuery("SELECT text FROM announce WHERE id='1'")
print(a)[/code]
Je ne sais pas à quoi correspond l'erreur mais as-tu ajouter la ligne de configuration dans world.conf ? Si le LUAEngine est LUAHypArc( comme Arcemu et AscentFR, même si AscentFR a enlever cette vérification), la possibilité d'utiliser des requêtes SQL dans les LUA est paramétré par un ligne qu'il faut ajouter au fichier de configuration.
Pourrais-tu me passer cette ligne à ajouter ?
J'ai trouvé une certaine : <LUAHypArc AllowWorldDBQueries="1" AllowCharDBQueries="1"> que j'ai ajouté dans optional.conf ... Je sais pas si c'est ça mais si c'est ça ça marche pas.
Ok après recherche il semblerais que les conf ne nécessite plus de modifications.
J'ai trouvé la cause de ton erreur : WorldDBQuery retourne un objet de type QueryResult un peu comme en php et il faut utiliser des fonctions spécifique pourr afficher ce que tu veut voici ces fonctions :
Code :
:GetColumn()
:NextRow()
:GetColumnCount()
:GetRowCount()
:GetString()
:GetFloat()
:GetBool()
:GetUByte()
:GetByte()
:GetUShort()
:GetShort()
:GetULong()
:GetLong()
:GetGUID()

Dans ton cas ça donnera :
[code=lua]local a = WorldDBQuery("SELECT text from announce where id='1'")
print(a:GetString())[/code]

Retourner en haut Accueil