[gSQL] Simple Query Library - Une classe qui facilite vos accès à une base de données

  • Initiateur de la discussion Membre supprimé 98332
  • Date de début
  • Initiateur de la discussion
M

Membre supprimé 98332

Anonyme
Salutations,

J'ai récemment eu l'occasion de me servir du module MySQLOO pour faire quelques requêtes SQL depuis un petit script Lua. J'ai remarqué que le code est très redondant, c'est pourquoi j'ai décidé d'implémenter cette petite classe, qui facilite avec élégance vos accès à votre base de données.
Par exemple, une requête SQL utilisant MySQLOO, et donc ressemblant à ceci :

Requête classique utilisant MySQLOO:
// Connexion à la base de donnée plus haut

local query = db:query('SELECT * FROM users WHERE steamid = ' .. db:escape(steamid))
function query:onSuccess(data) local row = data[1] for k,v in pairs(row) do print(v) -- should print 1, 2, 3 end
end
function query:onError(err) print("An error occured while executing the query: " .. err)
end
query:start()
Avec gSQL, vous pouvez simplifier ce code ainsi :
Le même code, avec gSQL:
// Création de l'objet gsql plus haut

local parameters = { ["steamid"] = "STEAM_0:0:0", 
}
local queryStr = "SELECT * FROM users WHERE steamid = {{steamid}}"

local data = gsql:query(queryStr, parameters)
gSQL inclus aussi un système de logs, qui vous informera, dans un petit fichier, toutes les erreurs rencontrées au cours de l'utilisation de la classe.
J'arrive bientôt avec de la documentation pour que l'utilisation de cette classe soit plus claire.

Si vous avez des suggestions pour améliorer la classe (ajout de méthodes, correction de petits bugs, etc...), n'hésitez pas !

LIEN DE LA REPO : Gabyfle/gSQL

Bien à vous,
Gabyfle.
 
Dernière modification par un modérateur:
  • J'aime
Réactions: Yoh Sambre ♪, Malcolm et thepsyca
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
fairste

Je pense que cela me serviras jamais vu que je ne suis pas dev, mais merci pour les autres ;)
 
  • Haha
Réactions: Membre supprimé 98332
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
L'idée est sympa mais mysqlOO n'est-il pas asynchrone, quid de ça ? :rolleyes:
 
Dernière édition:
  • J'aime
Réactions: Membre supprimé 98332
  • Initiateur de la discussion
M

Membre supprimé 98332

Anonyme
While True à dit:
L'idée est sympa mais mysqlOO n'est-il pas asynchrone, quid de ça ? :rolleyes:
C'est ce que m'ont fait remarqué les autres sur facepunch.com. Je n'avais même pas regardé / réfléchis sur ce petit fact de MySQLOO.
J'ai donc imaginé un petit système de callback.

Voici "l'en-tête" d'une callback de la lib :
En-tête d'une callback:
function callback((bool)status, (string)reason, [, [table] data])
Ainsi, lorsque une requête est terminée, que ce soit parce qu'elle a échouée, réussie, ou parce qu'elle a été abandonnée, c'est un callback de ce type qui est appelé !

Nouveau lien : Gabyfle/gSQL
 
Dernière modification par un modérateur:
  • Initiateur de la discussion
M

Membre supprimé 98332

Anonyme
Salutations,
Je fais un petit up pour vous prévenir des "avancées" de gSQL :
  • Grâce à WhileTrue (alias ReturnEnd), il y a maintenant une meilleure documentation
  • Encore grâce à @While True , les messages d'erreur sont directement retournés dans les callback
  • La documentation des fonctions a très largement été améliorée, et elle suit désormais le "schéma" de LDoc
  • Un exemple d'utilisation des requêtes préparées a été ajouté dans le README
J’ajoute que j'ai prévu d'étendre un maximum cette librairie, en ajoutant dans un premier temps la compatibilité avec le module SQL de base (toujours en conservant la possibilité des requêtes préparées, etc...).
Bien à vous,
Gabyfle
 
  • Initiateur de la discussion
M

Membre supprimé 98332

Anonyme
Salutations, une grosse mise à jour est arrivée.

gSQL vous permet maintenant d'écrire un code portable pour MySQLOO ou SQLite.
Je vous laisse le plaisir d'aller check le code ici : Gabyfle/gSQL
 
Discord d'entraide
Rejoignz-nous sur Discord