|
pb avec hexecuterequete et table |
|
Stagiaire WDF
Inscrit: 17/05/2004 09:45
Post(s): 7
|
Bonjour,
J'ai creer une requete mesrdv qui retourne 7 enreg., je voulais afficher le resulat de ma requete dans une table memoire. La table contient les memes nom de rubriques que ma requete, j'ai defini la source de ma table par progammation puis renseigner le fichier parcouru dans l'onglet de la table mesrdv. dans la table initialisation suivant l'exemple Gesthotel de windev j'ai renseigner le code suivant HExécuteRequête(test,hRequêteDéfaut) et la rien la table est vide que faire mais le bandeau de la table indique bien les bandes des 7 enreg de la requete je precise que la case visible de la table est bien coché
Contribution le : 10/05/2005 21:05
|
|
|
Re: pb avec hexecuterequete et table |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, vous avez deux méthodes dispinibles différentes:
Sql est une chaine
Rs est une source de donnees
Sql =
[
SELECT Clients.IdClient AS IdClient,
Clients.Nom AS Nom,
Clients.Prenom AS [Prénom]
Clients.Adresse As Adresse,
Clients.CodePostal As [Code Postal]
Clients.Ville As Ville
FROM Clients
]
TableSupprimeTout(TABLE)
SI Pas HExecuteRequeteSql(Rs, HRequeteDefaut, Sql) Alors
Erreur(HErreurInfo())
Retour
Fin
ConstruitTableFichier(TABLE,Rs,taRemplirTable)
{"TABLE._COL1"}..Visible = Faux
la fonction ConstruitTableFichier() permet de remplir une table mémoire avecle contenu de la requête les noms mis entre crochets permettent d'insérer des espacess et des caractères diverses qui normallement sont interdit dans les noms Si vous devez manipuler le résultat de la requête il vous faudra : Rs.[Prénom] pour prénom alors que pour le nom: Rs.Nom suffit La fonction ConstruitTableFichier() supprime les colonnes existante et recréer des colonnes nommées: _COL1 _COL2 .... _COLn etc.. La deuxieme méthode consite à remplir manuellement la table en conservant les colonnes créées.
Sql est une chaine
Rs est une source de donnees
Sql =
[
SELECT Clients.IdClient AS IdClient,
Clients.Nom AS Nom,
Clients.Prenom AS [Prénom]
Clients.Adresse As Adresse,
Clients.CodePostal As [Code Postal]
Clients.Ville As Ville
FROM Clients
]
TableSupprimeTout(TABLE)
SI Pas HExecuteRequeteSql(Rs, HRequeteDefaut, Sql) Alors
Erreur(HErreurInfo())
Retour
Fin
Pour Tous Rs
TableAjoute(Table, Rs.IdClient,...
+ Rs.Nom,...
+ Rs.[Prénom],...
+ Rs.Adresse,...
+ Rs.[Code Postal])
Fin
Contribution le : 11/05/2005 08:50
|
|
|
Re: pb avec hexecuterequete et table |
|
Anonyme
|
Est il possible de nous expliquer comment utiliser cette ligne pour que çca marche: Pour Tous Rs TableAjoute(Table, Rs.IdClient,... + Rs.Nom,... + Rs.[Prénom],... + Rs.Adresse,... + Rs.[Code Postal]) Fin
Merci
Contribution le : 08/07/2005 04:02
|
|
|
Re: pb avec hexecuterequete et table |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, Les mots clés : POUR Tout <Fichier>
//Traitement
Fin
Permettent de parcourir le contenu du fichier ce fichier peut être un fichier physique, une requete ou bien une source de données.
Dans l'exemple sité il s'agit d'une source de données resultante d'une requete sql via la fonction HexecuteRequeteSql()
donc pour remplir la table nommé Table je commence par effacer le contenu eventuel de la table execute la requete qui va me retourner les enregistrements voulus dans le Rs (Source de données déclaré via la ligne) Rs est une source de données puis je parcours tous les enregistrements contenu dans le Rs avec les mots clés Pour Tout Rs TableAjoute(Table, Rs.IdClient,...
+ Rs.Nom,...
+ Rs.[Prénom],...
+ Rs.Adresse,...
+ Rs.[Code Postal])
Fin
explication supplémentaire Rs est le nom de la source de données qui se manipule de la même manière qu'un fichier classique Rs.[Prénom] Dans certain cas il est nécessaire de mettre entre crochets le nom des rubrique surtout lorsque celle ci sont soit des mots clés du WLangage, des noms de rubriques contenant des caractères spécifiques ou bien des espaces, ceci afin d'eviter d'avoir une erreur. Donc Pour Tous à le meme effet et peut être meme plus rapide en execution que la méthode
HLitPremier(Rs)
TantQue pas HEndehors(Rs)
TableAjoute(Table, Rs.IdClient,...
+ Rs.Nom,...
+ Rs.[Prénom],...
+ Rs.Adresse,...
+ Rs.[Code Postal])
HLitSuivant(Rs)
Fin
Le second avantage du mot clé Pour Tous étant de pourvoir lui attribué un filtre directement du Style ou bien sur le parcours d'une rubrique clé :
POUR TOUT Client SUR NumClient
// Ajout des clients dans la liste
ListeAjoute(ListeClient, Client.NumClient)
FIN
ou bien avec un filtre:
Ville = "Lyon"
POUR TOUT Client AVEC "VilleClient = '"+Ville+"' et AgeClient >= 21"
// Ajout des clients dans la liste
ListeAjoute(<span style="color: 336666">ListeClient</span>, Client.NumClient)
FIN
ou meme avec un parcours avec filtre sur une clé spécifique
Ville = "Lyon"
POUR TOUT Client AVEC "VilleClient = '"+Ville+"' et AgeClient >= 21" SUR NumClient
// Ajout des clients dans la liste
ListeAjoute(ListeClient, Client.NumClient)
FIN
Pour plus détail veuillez lire l'aide en ligne associé au mot clé POUR TOUT
Contribution le : 08/07/2005 10:52
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|