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 :

Accès séquentiel sans RECORD KEY


Sujet :

Cobol

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut Accès séquentiel sans RECORD KEY
    Bonjour les experts;

    Je fais mes premier pas en COBOL et j'ai un programme que je ne comprend pas. Pourriez-vous m'expliquer comment se fait l'accès aux enregistrements sans avoir le RECORD KEY dans la déclaration de nos fichiers en mode séquentiel. Un exemple ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ...
    001300 INPUT-OUTPUT SECTION.                                            
    001400 FILE-CONTROL.                                                    
    001500     SELECT                                                  
    001600            FA-HICECR             ASSIGN HICECR01                 
                                            ORGANIZATION INDEXED
    001800                                  ACCESS SEQUENTIAL               
                                            RECORD    FA-CPRHICECR
    002000                                  STATUS IS XZ-STATUS.            
    
    
    001500     SELECT
    001600            FB-HICECR             ASSIGN HICECR02
                                            ORGANIZATION INDEXED
    001800                                  ACCESS SEQUENTIAL
                                            RECORD    FB-CPRHICECR
    002000                                  STATUS IS XZ-STATUS.
    ...
    Je vous remercie par avance pour vos explications.

  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.

    Si je comprends bien, tu as deux fichiers indexés auxquels tu accèdes séquentiellement. Ils sont tous les deux déclarés avec un RECORD [KEY]. Le mot KEY est facultatif. Cette clause, RECORD [KEY], est obligatoire si le fichier est indexé, ce qui est le cas ici.

    Pour accéder (lire en particulier) le fichier il suffit de l'ouvrir par OPEN et de lire par des READ. Les enregistrements seront lus dans l'ordre des clés à partit du premier enregistrement du fichier. On peut aussi faire un START pour commencer la lecture à partir d'un enregistrement pointé par une partie ou toute une valeur de la clé.

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour.

    Si je comprends bien, tu as deux fichiers indexés auxquels tu accèdes séquentiellement. Ils sont tous les deux déclarés avec un RECORD [KEY]. Le mot KEY est facultatif. Cette clause, RECORD [KEY], est obligatoire si le fichier est indexé, ce qui est le cas ici.

    Pour accéder (lire en particulier) le fichier il suffit de l'ouvrir par OPEN et de lire par des READ. Les enregistrements seront lus dans l'ordre des clés à partit du premier enregistrement du fichier. On peut aussi faire un START pour commencer la lecture à partir d'un enregistrement pointé par une partie ou toute une valeur de la clé.
    Merci Hédhili pour ta réactivité, d'après tes explications la clé d'accès aux enregistrements du premier fichier "FA-HICECR" est bien le champ "FA-CPRHICECR" par contre je ne trouve nulle part ce champ dans mon programme et JE PENSE qu'il est appelé via la clause copy, ma première question est comment sont déclarées les structures appelées par les clauses copy. Ma seconde question est où devront se trouver les fichiers traités par mon programme (le chemin est il paramétrable quelque part?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    004700 DATA DIVISION.                                                   
    004800 FILE SECTION.                                                    
     
               COPY PAREXP.
    
    
    
    
               COPY HICECR    REPLACING ==(XX)== BY ==FA==.
    
    
               COPY HICECR    REPLACING ==(XX)== BY ==FB==.
    
    
               COPY HICECR    REPLACING ==(XX)== BY ==WW==.
    Par avance merci.

  4. #4
    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
    Citation Envoyé par Psuchoo Voir le message
    ... la clé d'accès aux enregistrements du premier fichier "FA-HICECR" est bien le champ "FA-CPRHICECR" par contre je ne trouve nulle part ce champ dans mon programme et JE PENSE qu'il ai appelé via la clause copy, ma première question est comment sont déclarées les structures appelées par les clauses copy. Ma seconde question est où devront se trouver les fichiers traités par mon programme (le chemin est il paramétrable quelque part?)
    - La clé RECORD KEY doit faire partie intégrante de la structure du fichier et si celle-ci n'est pas visible dans le programme c'est qu'elle fait sûrement l'objet d'un copy Les objets copiés sont en fait des membres ou des fichiers source, comme le programme, qu'on demande au compilateur de copier avant compilation. Ils peuvent aussi être des pavés de programmes source que l'on inclut dans notre nouveau source.
    - En ce qui concerne les fichiers, ils sont quelque part sur les disques, pour faire simple. C'est dans le script (JCL, procédure, CL, etc...) de lancement du programme à exécuter qu'on indique l'association entre les fichiers indiqués dans le programme par la clause ASSIGN et les fichiers réellement sur disque. Pour certains OS et si cette association n'est pas faite, le nom réel du fichier sur disque est celui indiqué dans la clause ASSIGN. Dans certains OS le chemin d'accès complet du fichier doit être indiqué dans le programme.

    PS : Dis nous sur quelle plateforme tu travailles (OS, compilo, versions, ...) et n'hésite à te documenter (Cobol reference relative à l'OS disponible sur le net)

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    ....
    PS : Dis nous sur quelle plateforme tu travailles (OS, compilo, versions, ...) et n'hésite à te documenter (Cobol reference relative à l'OS disponible sur le net)
    Je travaille sur un environnement AIX mais je n'ai aucune idée sur le compilo, la version, ...etc.

    Auras-tu des références ou des liens pour la documentation complète a ce sujet?

  6. #6
    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
    Citation Envoyé par Psuchoo Voir le message
    Je travaille sur un environnement AIX mais je n'ai aucune idée sur le compilo, la version, ...etc.

    Auras-tu des références ou des liens pour la documentation complète a ce sujet?
    Fais une recherche avec "cobol programming guide for Aix" et "cobol reference for Aix" :

    Exemples :
    - https://www.ibm.com/support/knowledg...R/cob3lr01.pdf
    - https://www.ibm.com/support/knowledg...R/cob3pg00.pdf

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Août 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Fais une recherche avec "cobol programming guide for Aix" et "cobol reference for Aix" :

    Exemples :
    - https://www.ibm.com/support/knowledg...R/cob3lr01.pdf
    - https://www.ibm.com/support/knowledg...R/cob3pg00.pdf

    Je te remercie pour les éclaircissements. Pourras-tu me préciser que font les lignes de code suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    124300   2       MD-INDICE              PIC S9(00009) COMP-4 VALUE +0.
    ...
    126500   2       MD-COMPTAGE-E          PIC ---B---B--9.
    126600   2       XZ-HEURE               PIC 99.99.99.99.
    J'ai une confusion surtout entre les types COMP-3 et COMP-4. Que signifie ---B---B--9 et 99.99.99.99?

    Je t'en remercie par avance.

  8. #8
    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
    Citation Envoyé par Psuchoo Voir le message
    Je te remercie pour les éclaircissements. Pourras-tu me préciser que font les lignes de code suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    124300   2       MD-INDICE              PIC S9(00009) COMP-4 VALUE +0.
    ...
    126500   2       MD-COMPTAGE-E          PIC ---B---B--9.
    126600   2       XZ-HEURE               PIC 99.99.99.99.
    J'ai une confusion surtout entre les types COMP-3 et COMP-4. Que signifie ---B---B--9 et 99.99.99.99?

    Je t'en remercie par avance.
    MD-INDICE est un nombre signé de 9 chiffres stocké en binaire et initialisé à 0.
    MD-COMPTAGE est un nombre signé édité (impression, fichier échange) de 8 chiffres, une place est réservée au signe. S'il est négatif il y aura un signe "-" à gauche, sinon rien. Les 0 non significatifs (à gauche) ne sont pas imprimés sauf le dernier de droite (une valeur 0 sera imprimée 0). Un blanc sera inséré pour séparer les groupes de 3 chiffres.
    XZ-HEURE est un nombre de 8 chiffres séparés deux par deux par un point.

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

Discussions similaires

  1. accés multiple sans conditions a +ieurs fichiers
    Par jasminrose dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 05/04/2007, 02h58
  2. Table sans primary key avec Hibernate
    Par zizou771 dans le forum Hibernate
    Réponses: 1
    Dernier message: 28/02/2007, 15h58
  3. Réponses: 7
    Dernier message: 03/07/2006, 17h10
  4. [MFC]Accès BD sans ODBC
    Par annedjomo dans le forum MFC
    Réponses: 7
    Dernier message: 14/11/2005, 09h20
  5. Accès séquentiel/Accès direct etc... kesako ?
    Par da_cruz dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 10/09/2003, 11h22

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