|
| Inicio → WINDEV 2025 → Message d'erreur bizarre lors de l'appel d'une procédure stockée |
| Message d'erreur bizarre lors de l'appel d'une procédure stockée |
| Iniciado por Stéphane B., 22,mar. 2019 09:17 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 50 mensajes |
|
| Publicado el 22,marzo 2019 - 09:17 |
Bonjour,
Nous utilisons WD 24, l'accès natif MSSQL et un serveur MSSQL 2012. Parfois, quand nous appelons des procédures stockées en passant des paramètres, nous avons un message du style "SQL a renvoyé l'erreur 80040e14. Description incorrecte vers '@P...'".
Un exemple : - Nous avons une procédure stockées nommée Del_GR_Dem qui ressemble à ça : @CP_Type varchar(8 ), @EP_IdClient int , @CP_Orga nvarchar(50) , @CP_SsOrga nvarchar(50), @CP_Date varchar(8 ) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON;
DELETE FROM GR_CondPrixDem WHERE GR_CondPrixDem.FieldRelation LIKE @CP_Type AND ( GR_CondPrixDem.IdCustomer = @EP_IdClient OR GR_CondPrixDem.DataCliente = @CP_Orga OR GR_CondPrixDem.DataCliente = @CP_SsOrga) AND GR_CondPrixDem.EffectiveDate = @CP_Date
Dans le projet WD, nous l'appelons ainsi : SL_supp_demande est une Source de données VariableRAZ(SL_supp_demande)
SL_supp_demande.CP_Type="GR%" SL_supp_demande.EP_IdClient=SP_Cli.EL_Client SL_supp_demande.CP_Orga=SP_Cli.CL_Org SL_supp_demande.CP_SsOrga=SP_Cli.CL_SubOrg SL_supp_demande.CP_Date=SP_Cli.DL_DateApp
SI PAS HExécuteRequêteSQL(SL_supp_demande,Gestion_Remises,hRequêteSansCorrection,"Del_GR_Dem @CP_Type@EP_IdClient @CP_Orga @CP_SsOrga @CP_Date") ALORS Erreur(HErreurInfo()) FIN
A l'exécution, nous avons ce message :

Ce problème, nous l'avons parfois (pas tout le temps), sur des procédures stockées de tous types...
Quelqu'un saurait-il ce qui ne va pas ?
Merci d'avance. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 50 mensajes |
|
| Publicado el 26,marzo 2019 - 14:51 |
| Personne n'a rencontré ce style de problème ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 6 mensajes |
|
| Publicado el 26,marzo 2019 - 15:17 |
Bonjour,
La requête SQL ne doit pas être correcte lors du HExécuteRequêteSQL. Etes-vous sur que les @ sont bien supprimés lors de l'affectation des valeurs ?
Exemple de sortie : SL_supp_demande.CP_Type="GR%" HExécuteRequêteSQL("Del_GR_Dem @CP_Type ...") HExécuteRequêteSQL("Del_GR_Dem @'GR%' ...") => HExécuteRequêteSQL("Del_GR_Dem 'GR%' ...") |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 50 mensajes |
|
| Publicado el 27,marzo 2019 - 17:13 |
Bonjour,
En fait, c'est assez bizarre : on voit bien la tentative d'exécution de ma procédure stockée dans le server profiler, mais les paramètres sont identifiés comme @P3, @P4 et @P5, au lieu de @P1, @P2 et @P3... Mais j'ai bien la valeur que j'attends dans chaque paramètre.
J'ai essayé un peu toutes les combinaisons… sans succès….
Si quelqu'un a l'idée de génie qui pourrait me sortir de l'impasse, ce serait génial (en attendant, je passe par des requêtes paramétrées définies dans mon appli, mais je ne trouve pas ça hyper propre, car je fais exécuter côté client une requête qui serait beaucoup plus efficace si elle était exécutée côté serveur). |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 50 mensajes |
|
| Publicado el 28,marzo 2019 - 08:48 |
J'ai essayé avec autre une requête, qui n'utilise que 3 paramètres (mon précédent email s'appuyait dessus) et c'est assez étrange : Sur un serveur, elle fonctionne parfaitement. Sur un autre, j'ai un message similaire celui décrit dans mon premier message…
MSSQL est en train de me rendre dingue ! |
| |
| |
| | | |
|
| | | | |
| | |
|