PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → [WD24] Connexion multiple base PostgreSQL
[WD24] Connexion multiple base PostgreSQL
Iniciado por Ramirez22, 18,oct. 2019 15:54 - 1 respuesta
Miembro registrado
60 mensajes
Popularité : +2 (2 votes)
Publicado el 18,octubre 2019 - 15:54
Bonjour,

Je cherche une solution pour gérer des LOG (message de défaut) sur une table PostgreSQL.
Je commence une transaction SQL (commence par BEGIN;) parce que j'ai de nombreuses manipulation à faire, et toutes doivent être menées à bien pour que la transaction soit terminée (COMMIT;). En cas de défaut, tout est annulable via la commande ROLLBACK;

Et c'est là qu'est le problème, puisque le ROLLBACK; annule tout, les message d'erreurs générés et enregistrés pendant toute la durée de la transaction aussi.

Aussi je cherche à savoir s'il est possible d'ouvrir plusieurs connexions simultanées à la même base.
Si je fais :
connexion1, connexion2 sont des entiers
connexion1 = SQLConnecte (adresseSQL, login, mdp, nom_base, "POSTGRESQL")
SI connexion1 = 0 ALORS
[traitement de l'Erreur de connexion]
FIN

connexion2 = SQLConnecte (adresseSQL, login, mdp, nom_base, "POSTGRESQL")
SI connexion2 = 0 ALORS
[traitement de l'Erreur de connexion]
FIN

CHANGECONNEXION(connexion1)

SQLExec("BEGIN etc etc...")
SI détection Erreur
CHANGECONNEXION(connexion2)
SQLExec("INSERT INTO log (date, heure, message) VALUE ('xx/xx/xxxx', 'yy:yy', 'Erreur sur truc'", ...)
SQLFerme(...)
CHANGE CONNEXION(connexion1)
SQLFerme(...)
SQLExec("ROLLBACK;"...)
SQLFerme(...)

Est-ce que tout va fonctionner ?

Merci
Miembro registrado
2.566 mensajes
Popularité : +222 (260 votes)
Publicado el 24,octubre 2019 - 09:32
Bonjour,

Je vois pas pourquoi tu fais ça. S'il y a une erreur, tu stockes l'erreur dans une chaine, tu annules ta transaction, et tu réalises ton insert dans ta table log.

Il n'est nullement nécessaire de créer X connexions.

--
Cordialement,

Philippe SAINT-BERTIN