PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD22] Procédures stockées ne fonctionnent plus depuis la MAJ 063e du moteur HFSQL
[WD22] Procédures stockées ne fonctionnent plus depuis la MAJ 063e du moteur HFSQL
Débuté par Jérôme Steverlynck, 13 juin 2017 10:44 - 10 réponses
Posté le 13 juin 2017 - 10:44
Bonjour,

Depuis la mise à jour du moteur HFSQL, les procédures stockées n'acceptent plus les paramètres en renvoie systématiquement l'erreur :
Fonction 'HExécuteProcédure', syntaxe 0
Que s'est-il passé ?
Erreur renvoyée par le serveur <192.168.1.15:4900> :
Ce type de paramètre n'est pas supporté.

Code erreur : 74035
Niveau : erreur fatale
Code erreur WD55 : 4035

Après avoir repasser le serveur en version précédente (59), tout fonctionne correctement. Mais avec WD22 59 ou 63k + Moteur HFSQL 63e = plus de procédures stockées. Le typage des paramètres n'y fait rien et la récompilation complète + réparation analyse et mise à jour des procédures stockées ne changent rien.

Auriez-vous une solution?

Cordialement
Membre enregistré
2 571 messages
Popularité : +222 (260 votes)
Posté le 13 juin 2017 - 13:46
Bonjour,

Oui te retourner vers le ST pour leur soulever et le problème et attendre la correction qui devrait être rapide dans ces cas là.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
57 messages
Popularité : +17 (17 votes)
Posté le 13 juin 2017 - 13:47
Bonjour,

Ce n'est pas un cas connu ou que nous arrivons à reproduire. C'est sans doute lié aux types des paramètres utilisés.
Je vous engage à contacter le Support en utilisant "? Requête au ST" pour envoyer le prototype de la procédure.

--
Loïc HAMEL (Twitter : @HAMELLoic)
Support Technique PC SOFT
Posté le 13 juin 2017 - 16:03
Après avoir fait pas mal de tests depuis ce matin. le problème est simple à reproduire :
Il faut que le moteur soit en 63e. Il est désormais impossible de passer un entier système en paramètre à une procédure stockée.

// la déclaration du paramètre
MaVariable est un entier systeme

// l'appel de la procedure
hexecuteprocedure(Maconnexion,Maprocédure,Mavariable)

// la procédure stockée
PROCEDURE MaProcédure(MonParam)

Cordialement

J'espère que le correctif sera rapide car j'ai des dizaines de procédures stockées!!
Posté le 13 juin 2017 - 20:05
Bonjour

question bête

tu n'aurais pas un coté en 64b et l'autre en 32 bits?

Je demande parce que la taille de l'entier système passe de 8 octets à 4
octets dans ce cas la, ce qui expliquerait le message d'erreur

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com

Le 6/13/2017 à 8:03 AM, "ÿÿÿÿÿÿÿÿÿÿÿÿÿ" a écrit :
Après avoir fait pas mal de tests depuis ce matin. le problème est
simple à reproduire :
Il faut que le moteur soit en 63e. Il est désormais impossible de passer
un entier système en paramètre à une procédure stockée.

// la déclaration du paramètre
MaVariable est un entier systeme

// l'appel de la procedure
hexecuteprocedure(Maconnexion,Maprocédure,Mavariable)

// la procédure stockée
PROCEDURE MaProcédure(MonParam)

Cordialement

J'espère que le correctif sera rapide car j'ai des dizaines de
procédures stockées!!
Posté le 14 juin 2017 - 08:32
Non, j'ai bien vérifié, tous mes serveurs sont en 64Bits et mon Exé aussi ainsi que mon windev.
Posté le 14 juin 2017 - 13:17
juste pour être sur : ton moteur HF/CS aussi, et tu testes bien (GO) en
mode 64 bits ?

Le 6/14/2017 à 12:32 AM, "ÿÿÿÿÿÿÿÿÿÿÿÿÿ" a écrit :
Non, j'ai bien vérifié, tous mes serveurs sont en 64Bits et mon Exé
aussi ainsi que mon windev.
Posté le 14 juin 2017 - 16:50
Oui, J'ai deux serveurs de prod et un serveur de test, tous les trois en 64 Bits. et mon windev fait les GO en 64 bits.
Posté le 14 juin 2017 - 17:00
Pour contourner (comme ca ne se produit que sur les entiers système), as
tu essayé de déclarer (des 2 cotés) tes variables comme des entiers sur 8 ?

Le 6/14/2017 à 8:50 AM, "ÿÿÿÿÿÿÿÿÿÿÿÿÿ" a écrit :
Oui, J'ai deux serveurs de prod et un serveur de test, tous les trois en
64 Bits. et mon windev fait les GO en 64 bits.
Posté le 14 juin 2017 - 17:20
J'ai réussi, je pense, à contourner le problème en modifiant tous mes appels hexecuteprocédure(). Juste avant chaque appel, je transtype de la manière suivant mes entiers system :

MonParamTemp est un entier = val(numeriqueverchaine(MonEntierSystem))

Je sais que ce n'est pas super propre mais je ne peux pas attendre la mise à jour suivante (s'il y en a une) et j'ai besoin des mise à jour de celle la pour le traitement de texte!! Alors j'ai donc passé mon après midi à modifier les quelques 250 appels à mes procédures stockées.
Posté le 14 juin 2017 - 17:23
Oui les déclarations de type ne fonctionnent pas non plus.