PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → HCréerVue sur Requête
HCréerVue sur Requête
Débuté par Olivier P., 28 aoû. 2006 13:15 - 2 réponses
Posté le 28 août 2006 - 13:15
Bonjour tout le monde,

J'aimerais savoir si c'est possible de créer une vue HF à partir d'une requête contenue dans une Source de données. Et si oui, comment faire.

Pour simplifier, voici mon code :

////////////////////////
requête est une chaîne
maRequête est une source de données
maVue est une source de données

// Etablissement de la requête (plusieurs champs sur plusieurs tables)
requête est une chaîne = "SELECT ... "

// Exécution de la requête
SI PAS HExécuteRequêteSQL(maRequête,maConnexionOracle,
hRequêteSansCorrection,requête) ALORS
Erreur("Impossible d'exécuter la requête !",requête,HErreurInfo())
HFermeConnexion(maConnexionOracle)
RETOUR
FIN

// Tentative de création de la vue
SI PAS HCréeVue(maVue,maRequête,"*","","",hVueDéfaut) ALORS <== Problème !
Erreur("Impossible de créer la vue")
HAnnuleDéclaration(maRequête)
HFermeConnexion(maConnexionOracle)
RETOUR
FIN

////////////////////////

Au lancement de l'exécution, le programme plante et Windev m'indique ce message :
<< Problème d'initialisation de la requête <maRequête>. >>

Je précise que ma requête fonctionne très bien et que je travaille dessus sans problème.
C'est simplement le fait de vouloir créer une vue qui pose probmème.
Le but étant de vouloir supprimer les enregistrements se trouvant dans ma requête sans pour autant toucher aux tables réelles.


Merci d'avance pour vos conseils ;)

Olivier P.
Posté le 30 août 2006 - 12:04
Salut Olivier,

Il ce trouve que j'avais le même problème.
Je n'ai pas vraiment résolu le problème mais jai trouvé une méthode pour que ca plante plus!
Apparement le "Hcreevue" prend pas mal de resource et suivant la quantité d'enregistrement nécéssite un peut de temps, j'ai donc mit une petite tempo juste apres le "Hcreevue" et avant les traitement suivant cette commande.
Et ca ne plante plus :-)

++
Loic
Posté le 30 août 2006 - 16:20
Salut Loic.

Ce n'est pas le traitement qui se situe après qui plante, mais l'utilisation de cette fonction elle-même. Donc mettre une tempo ne servirait à rien (j'ai toutefois essayé ;)

Soit ce n'est pas possible d'utiliser une source de données provenant d'une requête, soit il ne faut pas que la requête travaillle sur plusieurs tables, soit le résultat de ma requête est trop important, soit d'autres trucs que je ne vois pas encore. De toute façon, je vais encore faire des essais.

Olivier P.