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
10 tendances clés de l’Expérience Client (CX) 2025
Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Sécurité des équipes : les organisations à la peine
- Top 5 TechnoVision 2026 des tendances technologiques à suivre de près !
- Maîtriser l’observabilité des données IA
- Les entreprises européennes face aux défis socio-économiques et technologiques
- DevOps et cloud hybride : la solution pour des applications plus performantes
