Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Cobol
Cobol Forum d'entraide sur la programmation en langage Cobol
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2011, 10h41   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 44
Points : 10
Points : 10
Par défaut Code de création de table (débutant)

Bonjour,

Je dois comprendre le code de création d'une table et comme je ne connais pas le cobol, je m'adresse à vous.

Voici le début du code en question:

Code :
1
2
3
4
5
6
7
01 IOAREA
 05 BI01-CLE-REF
   15 BI01-NUMCARTE
       20 BI01-NUMSERVICE PIC X(01)
       20 BI01-CARTE PIC X(04)
 05 BI01-NOM
  • Je voulais savoir si le "BI01" avait une signification particulière.
  • Je souhaite aussi connaitre la signification des numéro: 01,05,15,20
  • Quant au "IOAREA" est-ce le nom de la table?
  • Pouvez-vous aussi me confirmer que dans le jargon cobol il n'est pas question de "tables" mais de "fichiers"?On dit que le langague de requête pour les BD IMS est le "DL1" , alors pourquoi le code de création de la table est en cobol?

merci !
waters est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 15h57   #2
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur et formateur Mainframe
Secteur : Conseil

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
Bonjour Waters,

Citation:
Je voulais savoir si le "BI01" avait une signification particulière.
Non à moins que sur ton site ait été mis en place une norme précise pour le nommage des variables. En COBOL, en dehors des mots réservés, tu peux nommer les variables comme tu le veux dans la limite d'une trentaine de caractères de long.

Citation:
Je souhaite aussi connaitre la signification des numéro: 01,05,15,20
Toute bonne documentation te fournira une réponse complète. Pour faire court, chaque variable est dotée d'un niveau pouvant aller de 01 à 99 avec des niveaux réservés comme 77 et 88. Les variables ayant un niveau "élevé" sont des sous-définitions des variables de niveau moins "élevé". Tout ceci correspond à des attributions de place en mémoire.
Chaque variable élémentaire (i.e. qui n'est pas re-définie par d'autres variables de niveau "inférieur") est affectée d'une clause PICTURE (abrégée en PIC) qui indique si la variable est alphanumérique ou numérique. Les zones groupes (i.e. les variables re-définies par d'autres) sont automatiquement définies en alphanumérique.

Citation:
Quant au "IOAREA" est-ce le nom de la table?
Difficile de se faire une idée comme ça. Tout dépend de ce que ton programme manipule (fichiers, tables DB2, segments IMS ...).

Citation:
Pouvez-vous aussi me confirmer que dans le jargon cobol il n'est pas question de "tables" mais de "fichiers"?On dit que le langague de requête pour les BD IMS est le "DL1" , alors pourquoi le code de création de la table est en cobol?
Dans le "jargon COBOL" on traite des fichiers séquentiels, des fichiers VSAM, des tables DB2, des bases IMS ...

Le langage de requête pour une base IMS est effectivement le DL1 et dans le "jargon IMS" on ne traite pas des tables mais des segments. IMS est un SGBD hiérarchique. Une base IMS est définie par un DBD (Data Base Descriptor). Ce DBD est composé de SEGMENTS qui vont porter les données de la base. Le DBD n'est pas codé en COBOL mais par un ensemble de MACRO. Le DBD sera compilé et inscrit au noyau IMS. Un PSB fera l'interface entre ton programme COBOL et ta base. Chaque requête de ton programme récupèrera le contenu de 1 à n SEGMENT.

A vue de nez, je pense que le code que tu as inscrit dans ta question correspond à la description COBOL d'un SEGMENT de ta base. Une requête DL1 alimentera les variables que tu mentionnes.

Dans ton programme tu dois avoir une requête du style
Code :
1
2
3
4
CALL 'CBLTDLI' USING ordre d'accès
                     PCB
                     Zone d'entrée sortie <= en l'espèce je pense que là tu dois avoir ta zone IOAREA
                     SSA (Search Segment Argument - facultatif)
Voila pour faire simple car ce n'est pas le lieu de te donner un cours IMS.

N'hésite pas si tu as besoin de tuyaux.
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/08/2011, 16h49   #3
Expert Confirmé
 
Inscription : décembre 2007
Messages : 1 903
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 1 903
Points : 3 688
Points : 3 688
Citation:
Envoyé par waters Voir le message
Bonjour,

Je dois comprendre le code de création d'une table et comme je ne connais pas le cobol, je m'adresse à vous.

Voici le début du code en question:

Code :
1
2
3
4
5
6
7
01 IOAREA
 05 BI01-CLE-REF
   15 BI01-NUMCARTE
       20 BI01-NUMSERVICE PIC X(01)
       20 BI01-CARTE PIC X(04)
 05 BI01-NOM
  • Je voulais savoir si le "BI01" avait une signification particulière.

merci !
Pour compléter l'excellente réponse de Bernard :
Le préfixage est une pratique commune en COBOL pour déterminer à quoi appartient la donnée. Par exemple, si je suis sur un programme MACHIN qui appelle un module TRUC, je peux faire un MOVE MACHIN-NUM-CLIENT TO TRUC-NUM-CLIENT . Ca n'a pas de signification technique, mais BI01 fait probablement référence à un module/programme/fichier, en tous cas quelque chose de précis que l'on veut pouvoir distinguer.
__________________
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 12h29   #4
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
S'attaquer à des programmes COBOL qui, manifestement, s'interfacent avec des Bases de données DL/1 sans connaitre ni COBOL, ni DL/1, c'est un redoutable challenge ...

Je ne sais pas si je dois en rire ou en pleurer ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 13h26   #5
Membre du Club
 
Homme Bernard
Développeur et formateur Mainframe
Inscription : février 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Homme Bernard
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur et formateur Mainframe
Secteur : Conseil

Informations forums :
Inscription : février 2007
Messages : 39
Points : 67
Points : 67
Bien d'accord avec toi Luc Orient. Encore un pauvre prestataire qu'on a vendu comme expert au client sans doute ...
BernardBZH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web