Les trucs & astuces de la semaine du 28 Novembre au 4 décembre 2005
Ordonner les enregistrements d’après une colonne dans un fichier Join secondaire

Q: Je veux joindre des enregistrements provenant des fichiers Customer et Sales et les ordonner d’après le champ TotAmt du fichier Sale. J’ai essayé d’utiliser DDS pour créer un fichier logique join, mais les fichiers clé doivent venir du fichier primaire, qui est mon fichier Customer. Est-il possible d’ordonner les enregistrements sur un champ de fichier secondaire ?
R: Voici la réponse « facile » à votre question précise : inversez l’ordre des fichiers Customer et Sale (c’est-à -dire sur les mots-clés JFILE et JOIN dans votre source DDS de fichier logique). Cette manoeuvre fait du fichier Sale le fichier primaire et vous pouvez ensuite spécifier le champ TotAmt comme le champ clé du fichier logique join. Mais supposons que cette méthode ne convienne pas dans une certaine situation. Par exemple, vous pourriez vouloir ordonner les enregistrements sur des champs provenant de deux, ou plus, des fichiers joints. Il y a alors deux solutions. La plus simple consiste à utiliser SQL. Sur l’instruction Select, incluez une clause Order By qui peut spécifier les colonnes (champs) provenant de n’importe quelle table (fichier) dans le join (figure 1).
Vous pouvez utiliser une instruction Select qui a une clause Order By dans une requête ad hoc, dans une instruction SQL Declare Cursor imbriquée, ou via JDBC ou ODBC. (Vous ne pouvez pas utiliser ce genre d’instruction pour créer une vue SQL.)
La commande OpnQryF (Open Query File) offre une alternative non-SQL. Utilisez le paramètre KeyFld (Key field) de la commande, qui autorise des champs provenant de n’importe quel fichier joint. La figure 2 en montre un exemple.
Comme avec toute commande OpnQryF, utilisez d’abord un override de fichier pour faire du fichier de requête ouvert un partagé ouvert. Dans le cas d’un join, utilisez aussi l’override pour rediriger l’opération d’ouverture de fichier d’un programme applicatif vers le fichier de requête. (Pour un fichier de requête non-join, le nom du fichier de requête et le nom du fichier du programme d’application sont souvent les mêmes et donc la redirection n’est pas nécessaire.)
Cet exemple suppose que le programme applicatif DFspCusSale déclare le fichier CustSale (par exemple, sur un F-spec RPG), un fichier logique join qui sert à fournir le format d’enregistrement pour les opérations d’I/O du programme applicatif et OpnQryF. L’override redirige les références de fichier CustSale du programme applicatif vers le fichier de requête partagé, qui est par défaut identifié par le premier fichier listé dans le paramètre File (nom du fichier) de la commande OpnQryF (c’est-à -dire Customer).
Quand le programme DspCusSale exécute une opération open pour le fichier CustSale, le système utilisera le fichier de requête ouvert par la commande OpnQryF pour fournir les enregistrements au programme. Ces enregistrements seront ordonnés par les champs CustId et TotAmt.
Téléchargez cette ressource

Rapport mondial 2025 sur la réponse à incident
Dans ce nouveau rapport, les experts de Palo Alto Networks, Unit 42 livrent la synthèse des attaques ayant le plus impacté l'activité des entreprises au niveau mondial. Quel est visage actuel de la réponse aux incidents ? Quelles sont les tendances majeures qui redessinent le champ des menaces ? Quels sont les défis auxquels doivent faire face les entreprises ? Découvrez les top priorités des équipes de sécurité en 2025.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cybersécurité : le secteur de la santé toujours au défi de la sécurité des e-mails
- Attaque Microsoft SharePoint, analyse et recommandations
- Devenir RSSI : quels parcours et de quelles qualités faire preuve ?
- Évolution du marché de la virtualisation : quelle voie choisir ?
- La performance de l’IA et l’analytique reposent sur des fondations de données solides
