Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev > HyperFileSQL
HyperFileSQL HyperFileSQL est un système de gestion de base de données relationnel exploité par les logiciels WinDev, WebDev et WinDev Mobile.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/12/2012, 15h17   #1
ApproxDev
Nouveau Membre du Club
 
Homme Benjamin
Codeur
Inscription : août 2012
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Codeur

Informations forums :
Inscription : août 2012
Messages : 37
Points : 36
Points : 36
Par défaut [HF17] Utiliser une variable Fichier : possible ?

Bonjour,

Soit le code
Code :
1
2
3
4
5
6
7
8
9
10
LOCAL
  i est un entier
POUR i = 1 _A_ HNbEnr(CLIENT, hEtatTous)
  HLit(CLIENT, i)
  SI HEtat() = hEtatActif ALORS  Message(CLIENT.NOM)
FIN
POUR i = 1 _A_ HNbEnr(FOURNISSEUR, hEtatTous)
  HLit(FOURNISSEUR, i)
  SI HEtat() = hEtatActif ALORS Message(FOURNISSEUR.NOM)
FIN
Est-il envisageable de créer une procédure utilisable ainsi : LireFichier(CLIENT); LireFichier(FOURNISSEUR) avec
Code :
1
2
3
4
5
6
7
Procedure LireFichier(Fichier est un ?????)
LOCAL
  i est un entier
POUR i = 1 _A_ HNbEnr(Fichier, hEtatTous)
  HLit(Fichier, i)
  SI HEtat() = hEtatActif ALORS  Message(Fichier.NOM)
FIN
...et dans ce cas quel est le type de Fichier ? J'avais pensé initialement Source de Données mais j'obtiens l'erreur
Citation:
Erreur :'CLIENT' est ici considéré comme le fichier HyperFileSQL. Pour accéder à un autre élément, utilisez une déclaration externe.

Merci.
ApproxDev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 08h28   #2
courdi95
Membre expérimenté
 
Homme Jean-Jacques MONOT
Responsable des études
Inscription : février 2010
Messages : 266
Détails du profil
Informations personnelles :
Nom : Homme Jean-Jacques MONOT
Localisation : France

Informations professionnelles :
Activité : Responsable des études
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : février 2010
Messages : 266
Points : 558
Points : 558
Tun'as qu'à passer le nom en variable dans une chaine et puis ensuite tu fais une indirection avec des accolades pour faire un fOuvre, etc....

Ps: faire un pouce sur ma reponse si cela marche.
courdi95 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2012, 11h23   #3
ApproxDev
Nouveau Membre du Club
 
Homme Benjamin
Codeur
Inscription : août 2012
Messages : 37
Détails du profil
Informations personnelles :
Nom : Homme Benjamin
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Codeur

Informations forums :
Inscription : août 2012
Messages : 37
Points : 36
Points : 36
En effet, cela fonctionne ainsi :
Code :
1
2
3
4
5
6
7
PROCEDURE LireFichier(Fichier est une chaîne)
LOCAL
	i est un entier
POUR i = 1 _A_ HNbEnr(Fichier, hEtatTous)
	HLit(Fichier, i)
	SI HEtat() = hEtatActif ALORS  Message({Fichier+".NOM"})
FIN
C'est très curieux comme transtypage Fichier -> Chaine <-> Fichier Hyperfile...
Merci.
A+
ApproxDev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 12h59   #4
OnePoint
Membre expérimenté
 
Inscription : septembre 2010
Messages : 208
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 208
Points : 535
Points : 535
Bonjour à tous et meilleurs voeux pour la nouvelle année !

Désolé si je réponds un peu tard, mais il fallait enrichir cette discussion avec des informations supplémentaires.

Citation:
Envoyé par ApproxDev Voir le message
Est-il envisageable de créer une procédure utilisable ainsi : LireFichier(CLIENT); LireFichier(FOURNISSEUR) avec

Code :
1
2
3
4
5
6
7
Procedure LireFichier(Fichier est un ?????)
LOCAL
  i est un entier
POUR i = 1 _A_ HNbEnr(Fichier, hEtatTous)
  HLit(Fichier, i)
  SI HEtat() = hEtatActif ALORS  Message(Fichier.NOM)
FIN
...et dans ce cas quel est le type de Fichier ? J'avais pensé initialement Source de Données mais j'obtiens l'erreur
Oui c'est possible et, pour cela, le mieux est de ne pas typer le paramètre.
Cependant, le compilateur ne peut pas garantir que le nom de la rubrique est valide.

Code :
1
2
3
4
5
6
Procedure LireFichier(Fichier)
i est un entier
POUR i = 1 _A_ HNbEnr(Fichier, hEtatTous)
  HLit(Fichier, i)
  SI HEtat() = hEtatActif ALORS Message(Fichier.NOM)
FIN
Ici le paramètre "Fichier" peut être au choix :
  • le nom logique d'un fichier HyperFile (fichier de données existant, requête créée dans l'éditeur et exécutée),
  • une source de données (sur un alias de fichier de données, sur une requête SQL exécutée).

Par "nom logique" il faut comprendre, un nom de fichier déclaré dans l'analyse ou un nom de requête définie dans le projet. Ce nom est noté tel quel, et pas comme une chaîne de caractères encadrée par des guillemets.

Pour récupérer la valeur d'une rubrique il faut au préalable lire les données d'un enregistrement afin de renseigner les "variables HyperFile" qui correspondent à ces rubriques (tampon des valeurs de rubrique).
Cf. les fonctions HLit*

OnePoint est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h29.


 
 
 
 
Partenaires

Hébergement Web