Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous et bonne année à la communauté !
Je vous soumet un souci pas banal :
J'ai une application simple qui met à jour une table (valeur + champ date/heure mise à jour)
L'application lancé en local fonctionne parfaitement.
Cette même application lancé depuis le serveur de base de donnée, fonctionne également pareil, mais après consultation de la table, je m'aperçois que la table n'est pas mise à jour.
En debuggant je vois les choses suivantes :
- la connexion à la base est OK
- sur la datawindow sur laquelle va être effectuée le commit, les valeurs attendues sont bien là
- L'update de la datawindow vaut bien 1
- Le commit est effectué et le SQLCode vaut 0
La seule différence, c'est qu'après le commit, la table est réellement mise à jour si l'application est lancée sur ma machine, et pas dans le cas d'un lancement directement via le serveur.
Quelqu'un a t'il une explication à cela ? Y'aurait il un paramètre au niveau base qui empêcherait la table de se mettre "reellement" à jour ?
Hors ligne
Est-ce que tu fais bien ce que tu crois que tu fais ?
Peut-être que tout se passe bien, mais ailleurs que là où tu regardes (par exemple dans une autre base locale à la machine serveur) ?
Hors ligne
Non j'ai bien vérifié, j'ai même un copier/coller du point ini
Je me connecte bien à la bonne base
Hors ligne
- Tu pointes sur le même schéma?
- Tu as vérifié que tu n'as pas un code de connexion "en dur" dans ton application qui zappe le .ini?
- Tu es en autocommit?
Hors ligne
Cela ressemble au problème que j'avais la semaine dernière...Tu te connectes comment à la base ?
Hors ligne
- Tu pointes sur le même schéma? ===> OUI
- Tu as vérifié que tu n'as pas un code de connexion "en dur" dans ton application qui zappe le .ini? ===> OUI, j'utilise bien le .ini
- Tu es en autocommit? ====> NON
Tu te connectes comment à la base ?
==> via ADO.NET
Hors ligne
pour info : si tu es en pb11.5 ou +, tu peux espionner les events "sqlpreview" et "dberror" de ton objet transaction par exemple.
Hors ligne
Dans la série "espionner", tu devrais regarder sqlcode et sqlerrtext *avant* le commit...
Peut-être que le commit ne fait rien avec succès ?
Hors ligne
Bonjour,
Peux-tu lancer le traçage de la base de données sur le serveur lors de l’exécution via le serveur et vérifier par la suite les requêtes envoyées à la base ?
Cordialement
Hors ligne
Bonjour,
Une autre piste, j'ai déjà eu un problème identique. Il s'agissait en fait d'un "trigger" sur la table qui effectué un "rollback".
Hors ligne
Je vais vérifier les états avant COMMIT
Hors ligne
Grrrrr en mettant DBMS="TRACE ADO.Net" dans le .ini, j'ai bien mon fichier trace.log complet quand j'exécute en local, mais si je l'exécute directement sur le serveur, le fichier trace ne se génère pas !
Hors ligne