Copie une partie d'un cursor ?

gregorian Messages postés 57 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2011 - 20 juin 2005 à 10:47
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 - 22 juin 2005 à 12:57
Bonjour,

Suite à une requete sql order by champs1, j'obtiens un cursor tmpData.

J'écris une petite fonction qui vérifie le champs 1, qui devrait copier dans un autre cursor toute les lignes qui contienne le champs 1 et dans ce deuxième cursor, je trie sur le champs 2. Le cursor trié, doit être copier alors dans un troisième cursor, qui contiendra donc le deuxième trié, ensuite je dois ajouter une ligne qui sum certains champs du cursor 2. Je zap alors le cursor 2 et je recommence le tout pour la deuxième valeur rencontrée du champs 1

J'ai fais un truc comme ceci:
FUNCTION tri

atelier = tmpData.comptoirDossier
COPY STRUCTURE TO tmpData2
SELECT tmpData2
SCAN

while tmpData.comptoirDossier = atelier
APPEND blank IN suiviTmp2


ENDSCAN





ENDFUNC

mais je suis bloqué, comment faire l'append de juste la ligne en cour du scan et pas de tout le cursor ???

Sinon, ca m'a l'air bien tiré par les cheveux ce que je fais. Il y a certaine ment plus simple. Savez vous me mettre sur la voie?

Au début j'avais pensé un truc du genre faire un tableau qui comprendrait toute les différentes occurences trouvées du champs 1 dans le cursor tmpData et ensuite écrire qqch:

scan tableau occurence et à chaque entrée,
select all from tmpData where champ1 = occurenceTableau into tmpData2
--> traitement sur la partie sélectionnée.
Je pense que au final c'est plus rapide qu'en pensez vous ??

3 réponses

Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
20 juin 2005 à 11:51
SELECT tmpData2
SCAN for tmpData.comptoirDossier = atelier
scatter memvar
APPEND blank IN suiviTmp2
gather memvar
ENDSCAN

Mike Gagnon
0
gregorian Messages postés 57 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2011 1
22 juin 2005 à 12:37
ca n'a pas l'air de fonctionner, lorsqueje demande qu'il m'affiche mon cursor, apres le gather memvar, celui ci est vide.

une idée du pourquoi ?
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
22 juin 2005 à 12:57
Met un "set step" dans ton code juste appres ton scatter memvar, et vérifie dans les locals, si les valeurs apparaissent. Ne pas oublier que les deux tables doivent avoir la meme structure (les meme noms de champs)

Mike Gagnon
0
Rejoignez-nous