|
| Source de données passée en paramètre |
| Iniciado por Philippe, 02,ago. 2020 17:15 - 8 respuestas |
| |
| | | |
|
| |
Miembro registrado 132 mensajes |
|
| Publicado el 02,agosto 2020 - 17:15 |
Bonjour,
je déclare une source de données et j'aimerais appeler une procédure locale et utiliser à l'intérieur de celle-ci cette source de données. J'ai essayé de passer en paramètre la source de données, mais ça ne marche pas. Voici mon code:
SQL_Fichier est une Source de Données ChaineSQLFichier est une chaine
ChaineSQLFichier = "SELECT * FROM MonFichier WHERE IDKey = " + WId SI HExécuteRequêteSQL(SQL_ReqFichier,hRequêteDéfaut, ChaineSQLFichier) ALORS HLitPremier(SQL_ReqFichier) TANTQUE PAS HEnDehors(SQL_ReqFichier) AppelProcedure(SQL_ReqFichier) HLitSuivant(SQL_ReqFichier) FIN Fin PROCEDURE AppelProcedure(SQL_ReqFichier)
HLitRecherchePremier(FichierA,KeyTab,[SQL_ReqFichier.ChampsA])
Quelqu'un a-t-il une solution?
Merci de votre aide.
-- Cordialement
Philippe T. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.323 mensajes |
|
| Publicado el 03,agosto 2020 - 16:14 |
Bonjour,
Passez le nom de la source de données sous forme de texte, puis utilisez les indirections dans votre procédure.
-- Bon dev, Jean-Pierre |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 132 mensajes |
|
| Publicado el 03,agosto 2020 - 17:21 |
Merci Jean-Pierre pour votre réponse.
Mais cela ne marche pas. Même si je tape l'expression SQL_ReqFichier.ChampsA dans le débug pour avoir le résultat, il ne reconnait pas cette expression. Voici mon nouveau code mais qui ne marche donc pas mieux:
AppelProcedure("SQL_ReqFichier")
PROCEDURE AppelProcedure(SQL_ReqFichier)
HLitRecherchePremier(FichierA,KeyTab,[{SQL_ReqFichier + ".ChampsA"}])
-- Cordialement
Philippe T. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.363 mensajes |
|
| Publicado el 03,agosto 2020 - 19:41 |
Bonjour, Pourquoi ne pas simplement modifier ta procédure en lui passant le résultat de la requête ?
Procedure AppelProcédure(sNomChamp est chaîne) HLitRecherchePremier(FichierA,KeyTab,[sNomChamp,IndiChamp]) Lappel se faisant comme suit
SQL_Fichier est une Source dede Données ChaineSQLFichier est une chaîne
ChaineSQLFichier = "SELECT * FROM MonFichier WHERE IDKey = " + WId SI HExécuteRequêteSQL(SQL_ReqFichier,hRequêteDéfaut, ChaineSQLFichier) ALORS HLitPremier(SQL_ReqFichier) TANTQUE PAS HEnDehors(SQL_ReqFichier) AppelProcedure(SQL_ReqFichier.ChampA) HLitSuivant(SQL_ReqFichier) FIN FIN
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 03,agosto 2020 - 20:14 |
Bonsoir, pour que cela fonctionne il faut typer le paramètre dans la déclaration de la procédure
Procedure AppelProcedure(SQL_ReqFichier est une Source dede Données)
-- Thierry TILLIER Développeur Windev-Webdev Formation Windev : https://coursdinfo.teachable.com/ Formation bureautique : https://coursdinfo.net |
| |
| |
| | | |
|
| | |
| |
| Publicado el 03,agosto 2020 - 23:33 |
Philippe a écrit :
Bonjour,
je déclare une source de données et j'aimerais appeler une procédure locale et utiliser à l'intérieur de celle-ci cette source de données. J'ai essayé de passer en paramètre la source de données, mais ça ne marche pas. Voici mon code:
SQL_Fichier est une Source de Données ChaineSQLFichier est une chaine
ChaineSQLFichier = "SELECT * FROM MonFichier WHERE IDKey = " + WId SI HExécuteRequêteSQL(SQL_ReqFichier,hRequêteDéfaut, ChaineSQLFichier) ALORS HLitPremier(SQL_ReqFichier) TANTQUE PAS HEnDehors(SQL_ReqFichier) AppelProcedure(SQL_ReqFichier) HLitSuivant(SQL_ReqFichier) FIN Fin PROCEDURE AppelProcedure(SQL_ReqFichier)
HLitRecherchePremier(FichierA,KeyTab,[SQL_ReqFichier.ChampsA])
Quelqu'un a-t-il une solution?
Merci de votre aide.
-- Cordialement
Philippe T.
Bonjour Philippe,
+1 avec THIERRY TILLIER |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 132 mensajes |
|
| Publicado el 05,agosto 2020 - 08:05 |
Merci Thierry pour ta réponse, mais ça ne marche pas mieux avec mon code adapté:
SQL_Fichier est une Source de Données ChaineSQLFichier est une chaine
ChaineSQLFichier = "SELECT * FROM MonFichier WHERE IDKey = " + WId SI HExécuteRequêteSQL(SQL_ReqFichier,hRequêteDéfaut, ChaineSQLFichier) ALORS HLitPremier(SQL_ReqFichier) TANTQUE PAS HEnDehors(SQL_ReqFichier) AppelProcedure(SQL_ReqFichier) HLitSuivant(SQL_ReqFichier) FIN Fin
PROCEDURE AppelProcedure(SQL_ReqFichier est une Source de Données)
HLitRecherchePremier(FichierA,KeyTab,[SQL_ReqFichier.ChampsA])
L'erreur donne: <ChampsA> n'est ni une rubrique ni un paramètre de la requête <SQL_Req>. De nouveaux paramètres ne doivent pas être déclarés après la préparation d'une requête. Vérifier également qu'il n'y a pas d'erreur de syntaxe dans le nom de la rubrique ou du paramètre.
Merci pour votre aide.
-- Cordialement
Philippe T. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 132 mensajes |
|
| Publicado el 05,agosto 2020 - 08:08 |
Pardon Thierry !!!! ça marche !!! J'avais mal tapé le code de ma procédure appelante. A vouloir traduire le code pour mettre des noms génériques pour mon exemple ci-dessus, je me suis trompé de syntaxe.
Merci encore et bonne journée.
-- Cordialement
Philippe T. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 05,agosto 2020 - 08:10 |
| |
| |
| | | |
|
| | | | |
| | |
|