Rafraîchir table mémoire (requete) avec rubriques calculées

Posté par juliane le 1/3/2006 20:15:21
Bonjour,

Je vous remercie tous deux pour vos réponses.
J'ai réussi à contourner le problème en fixant à l'avance la taille maxi de mes colonnes par :
sChaine = " ' "+ Complète("",FICHIERXXX.RUB1..Taille) + " ' as COL_11"
et ainsi de suite, car j'ai des rubriques de tailles très variables.

Mais j'ai bien bataillé pour arriver à rafraichir la table avec ces données, car je n'arrivais pas à réaffecter dans la table les valeurs calculées.

Si cela peut aider quelqu'un dans la même situation, voici le cheminement :

Je crée une requête de toutes pièces que j'exécute par :
HExécuteRequêteSQL( MaRequete , hModifieFichier , sTexteReq )
et je crée ensuite une table mémoire (avec mes colonnes calculées "à vide") :
ConstruitTableFichier( MATABLE , MaRequete, taAvecIDAuto+taRemplirTable+taAvecBinaire)
Puis j'efface la table :
TableSupprimeTout(TABLELIENS)
Les données disparaissent, mais les colonnes créées en automatique restent en place dans la table.

Ensuite, je calcule les valeurs des colonnes vides à l'intérieur d'une boucle de parcours de la requete et je recrée les lignes de la table avec les enregistrement de la requête modifiés :
sChaine est une chaine
HLitPremier(MaRequete)
TANTQUE PAS HEnDehors()
  SI MaRequete.COL5 = MonCritere ALORS	
    nIndice est un entier = MaRequete.COL5
    HlitrecherchePremier(FICHIERXXX, IDXXX, nIndice)
    SI Htrouve(FICHIERXXX) ALORS 
       MaRequete.COL11 = FICHIERXXX.LaValeurQueJeVeux1 
       MaRequete.COL12 = FICHIERXXX.LaValeurQueJeVeux2
       MaRequete.COL13 = FICHIERXXX.LaValeurQueJeVeux3
    FIN
  FIN
  sChaine = HRécupèreEnregistrement(Marequete)
  TableAjoute(MATABLE,sChaine)
  HLitSuivant(MaRequete)
FIN

Et la table se trouve reconstituée... Ouf... Avec les bonnes valeurs... Re Ouf...

Tout cela n'était franchement pas évident à trouver dans l'aide.

Si quelqu'un à une formule plus simple, j'en veux bien, mais j'avais essayé beaucoup de choses avant sans résultat (TableAffiche, FichierVersTableMemoire, etc...)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=3620&post_id=15303