2010-07-12 2 views

Répondre

4

DISP=MOD

Ceci ajoutera à la fin d'un jeu de données séquentiel existant. Si l'ensemble de données spécifié n'existe pas encore, il sera créé (dans ce cas DISP = MOD et DISP = NOUVEAU équivalent)

méfiez-vous des suivants:

datasets multi-volume

Le comportement de DISP=MOD varie selon que vous spécifiez ou non un volume spécifique. Vous devriez examiner cette reference les règles

partitionnées datasets

Si vous spécifiez un nom de membre dans le paramètre DSNAME, le nom du membre ne doit pas exister déjà. Le système positionne le mécanisme de lecture/écriture à la fin de l'ensemble de données. Si le nom de membre existe déjà, le système termine le travail.

Si vous ne spécifiez pas de nom de membre, le système positionne le mécanisme de lecture/écriture à la fin de l'ensemble de données. Le système n'effectue pas d'entrée automatique dans le répertoire. Ajouter des données à la fin d'un membre d'un PDS/PDSE est un peu une astuce. Vous devez généralement supprimer et réécrire le membre entier avec les nouveaux enregistrements ajoutés.

séquentielle et datasets le verbe COBOL OUVERT

Il y a une certaine "interaction" entre le DISP donné JCL et le verbe COBOL OPEN.

Si vous spécifiez DISP=MOD dans votre JCL, un programme COBOL ajoutera des enregistrements à la fin d'un jeu de données séquentielle pour les OPEN OUTPUT et OPEN EXTEND.

Si vous spécifiez DISP=OLD dans votre JCL, un programme COBOL ajoute des enregistrements à l'extrémité d'un jeu de données séquentiel pour OPEN EXTEND. Si vous ouvrez le jeu de données séquentiel en tant que OPEN OUTPUT, , le contenu original de l'ensemble de données est supprimé et vous recommencez avec un jeu de données vide (comme si vous l'aviez supprimé et réattribué).

VSAM datasets

fichiers virtuels de stockage Méthode d'accès (VSAM) sont un tout autre de poissons bouilloire.jeux de données VSAM sont disponibles dans une variété d'organisations:

  • KSDS (clé séquencée ensemble de données)
  • ESDS (Entrée séquencée ensemble de données)
  • RRDS (Relative record de données)
  • LSD (linéaire de données spatiales Set)

Chaque organisation a ses propres caractéristiques et usages.

Les jeux de données VSAM doivent être prédéfinis avant qu'un programme COBOL puisse les référencer. Ceci est souvent fait en tant que travail séparé IDCAMS. Une fois que l'ensemble de données VSAM a été défini , il peut être accédé via un programme COBOL (ou autre). Ce reference fournit un bon aperçu de la manipulation des jeux de données VSAM sous COBOL. La section: Adding records to a VSAM dataset couvre les spécificités de l'ajout d'enregistrements à un ensemble de données VSAM à partir d'un programme COBOL. Utilisez la version OPEN EXTEND de l'instruction open COBOL pour ajouter des enregistrements à la fin d'un ensemble de données ESDS ou KSDS VSAM existant. Notez que pour les ensembles de données KSDS, les enregistrements doivent être ajoutés dans l'ordre croissant par rapport à la clé.

Le langage JCL utilisé pour connecter un ensemble de données VSAM à un programme est en réalité assez simple et est décrit here. L'utilisation de DISP=MOD est la même que DISP=OLD pour les jeux de données VSAM existants (utilisez l'une ou l'autre - elle ne fait pas de différence ). Utilisez DISP=SHR si vous ne mettez pas à jour le jeu de données et ne souhaitez pas bloquer d'autres programmes d'accès simultané.

+0

Salut Neal, Merci pour le repy. Si j'utilise DISP = MOD alors est-il comme mon quand j'ouvre que le curseur de fichier est déjà positionné au dernier enregistrement? – Saisha

+0

@Manasi L'ouverture d'un ensemble de données séquentiel avec 'DISP = MOD' place le mécanisme de lecture/écriture après le dernier enregistrement dans l'ensemble de données. L'écriture suivante émise par votre programme ajoute un nouvel enregistrement à l'ensemble de données (ne remplacera pas les enregistrements existants). DISP = MOD implique que vous écrivez dans l'ensemble de données (par opposition à la lecture de celui-ci). Remarque: Le terme "curseur" est généralement associé aux opérations de base de données (par exemple position du curseur par rapport à une requête SQL multi-lignes). Pour les opérations de jeu de données, nous nous référons généralement à la position de lecture/écriture dans l'ensemble de données. – NealB

+0

Merci Neal, Si j'utilise DISP = MOD, je dois ouvrir le fichier en mode EXTEND, non? Puis-je utiliser EXTEND avec DISP = OLD? Si j'utilise DISP = OLD pour ajouter des enregistrements, où sera ma position de lecture/écriture dans l'ensemble de données? – Saisha

Questions connexes