IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

[PC-MF] Utilisation de la clé secondaire dans un fichier relatif


Sujet :

Cobol

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut [PC-MF] Utilisation de la clé secondaire dans un fichier relatif
    bonjour,
    je suis nouveau dans la programmation en cobol, je tourne actuellement sur un PC avec microfocus.

    J'ai un petit fichier organisé en relative, acces mode random.
    Ma clé principale et ma clé secondaire sont correctement déclaré ( FILE SECTION et WORKING-STORAGE SECTION).

    Mon problème:
    Mon fichier est une liste d'enregistrements de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    01 Personne
        02 nom pic x(10)
        02 prenom pic x(10)
        02 age pic 9(3) 
        02 taille pic 9(3)
    Je souhaiterais acceder a l'enregistrement qui correspond a ma clé primaire ( le nom ) ET a ma clé secondaire (le prénom) mais je nage completement pour coder cela. J'en viens a me demander si cela est réalisable.


    J'ai un grand besoin de votre aide.

    Merci d'avance ^^

  2. #2
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Qu'est ce que tu appelles clé secondaire ?
    Colle ici les déclarations de ton fichier et des clés stp.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2005
    Messages : 489
    Points : 171
    Points
    171
    Par défaut
    pour moi, ta déclaration reste une déclaration de variable.
    Comment est former ton fichier physique ??
    avec les informations que tu as donné, ce n'est pas très clair. Je suis sur COBOL depuis quelques mois, et c'est un fonctionnement particulier pour accéder à un fichier (notion de fichier physique, logique ....)

    Tu peux nous donner plus d'informations stp ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par holderheck Voir le message
    J'ai un petit fichier organisé en relative, acces mode random.
    Ma clé principale et ma clé secondaire sont correctement déclaré ( FILE SECTION et WORKING-STORAGE SECTION).

    Je souhaiterais acceder a l'enregistrement qui correspond a ma clé primaire ( le nom ) ET a ma clé secondaire (le prénom) mais je nage completement pour coder cela. J'en viens a me demander si cela est réalisable.
    Bonjour,

    La notion de clé secondaire n'existe pas pour les fichiers en organisation relative.

    Si tu souhaites pouvoir accéder sur deux clé, tu dois utiliser une organisation séquentielle indexée, avec un alternate index.

    Par ailleurs, je te déconseille fortement l'utilisation du nom comme clé primaire, car il est très probable d'avoir deux Martin (par exemple) dans un même fichier. Il est bien mieux d'avoir une donnée "identifiant personne" qui sera ta clé primaire, puis si tu veux pouvoir accéder sur nom ou prénom, de définir un alternate index sur chacune de ces données.

    Bien entendu, sur un gros fichier, la présence de plusieurs index pénalise les performances en mise à jour, mais ce n'est pas forcément ton problème, et ça n'est pas très important si le taux de mise à jour de ce fichier reste raisonnable.

    Si un traitement batch effectue des mises à jours massives sur ce fichier, il est alors recommandé de recopier le fichier dans un séquentiel, le traiter, puis reconstruire le fichier séquentiel indexé après traitement. Ca permet en plus de rafraîchir les index...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonjour a tous et merci de vos réponses.
    (Désolé du délais de ma réponses, vacance quand tu nous tiens )

    @ vince29: j'utilise toujours des noms de fichiers logiques. Les liens avec les DSN étant réalisés sur mes cartes DD de mes flux JCL.

    @fremen167: Mon fichier initial ayant une organisation relative, j'ai du passer par une clef composée ( relative key is mykey = nom prenom) et cela marche

    Par contre, n'ayant plus acces au code source de cet exo ... je ne pourrais pas le publier. Vraiment désolé !

    De plus je ne travail maintenant que sur des KSDS (CICS and VSAM are my friends )

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 362
    Points : 419
    Points
    419
    Par défaut
    Citation Envoyé par holderheck Voir le message
    @fremen167: Mon fichier initial ayant une organisation relative, j'ai du passer par une clef composée ( relative key is mykey = nom prenom) et cela marche
    Une clé composée, ce n'est pas la même chose qu'une clé secondaire... par contre, j'ignorais qu'on pouvais déclarer une clé de cette manière. J'aurais défini une zone groupe décomposée en nom et prénom, et utilisé ce groupe comme clé.

    Par ailleurs, tu dis que ça marche, mais le problème des doublons reste posé, ça peut "marcher" longtemps et puis planter un jour parce que le contenu des fichiers évolue.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Tu as tout à fait raison, le problème des doublons reste là.
    Mais il s'agissai d'un simple exercice que je devais faire lors de ma formation.
    Maintenant je ne travaille qu'avec des KSDS, le problème de clefs ne se pose plus

  8. #8
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    ??? Dommage qu'un tel source soit indisponible, j'aurai aimé voir !
    sur un VSAM RRDS les index secondaires ne sont pas autorisés et on accède sur numéro de slot, ce qui suppose une valeur numérique ???
    Sur un ESDS on peut à la rigueur déclarer des index secondaires, j'imagine qu'il s'agissait de ça.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Pour cet exo, nous n'utilisions pas VSAM,
    Effectivement, un enregistrement dans un fichier relatif n'est accessible que par son rang ( RRN dans le cas de l'utilisation de VSAM )

    Je ne me souvient plus exactement de l'énoncé ni de l'organisation du fichier mais je devrais pouvoir rammener le source et le fichier cette semaine. Je ne vous cache pas qu'il y a de tres fortes chances que plusieures coquilles se soient glissées dans mon post initial, je n' étais pas encore à l'aise avec le vocabulaire au moment de sa publication

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'un objet OLE dans un fichier excel
    Par Leniouns dans le forum Général Java
    Réponses: 6
    Dernier message: 06/12/2011, 15h11
  2. Réponses: 3
    Dernier message: 28/07/2011, 13h43
  3. Utiliser un Bitmap se trouvant dans mon fichier .dll
    Par Coussati dans le forum Débuter
    Réponses: 3
    Dernier message: 02/11/2009, 19h31
  4. Utilisation de positionnement de curseur dans un fichier
    Par roswellboy dans le forum Windows
    Réponses: 1
    Dernier message: 05/04/2008, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo