DL/I programmering. från grunden. monitors. Peter Sterwe. training people

Relevanta dokument
Bättre COBOL. monitors. Peter Sterwe. training people

z/os JCL och Utilities

COBOL. från grunden. monitors. Peter Sterwe. training people

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

Programmering. Den första datorn hette ENIAC.

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

SEB. Four foils. SEB IT Lars-Göran Karlsson

Språket Python - Del 2 Grundkurs i programmering med Python

Lösningar till tentamen i EIT070 Datorteknik

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Metoder. Inledande programmering med C# (1DV402)

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

Konsultprofil Per Broström 1 (5)

Vilken version av Dreamweaver använder du?

Laboration 1 Introduktion till Visual Basic 6.0

Uppgift 1a (Aktiekurser utan poster)

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Övningar Dag 2 En första klass

ADO.NET Murach Kapitel 17-20

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Tentamen TEN1 HI

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Databaser - Design och programmering

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

COBOL med DL/I, CICS och JCL. Övningar MONITOR IT-utbildning, Cobolskolan Sverige, B1-1

732G16: Databaser - Design och programmering

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

E-posthantering med Novell Groupwise WebAccess

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Föreläsning 5-6 Innehåll

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Tentamen i Introduktion till programmering

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

1.Lär känna MS SQL Observera. Tips. Förberedelse

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

HI1024 Programmering, grundkurs TEN

Introduktion till MySQL

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Extramaterial till Matematik Y

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Tentamen i Objektorienterad programmering

Användarhandledning Plancenter Admin version 2011

VAD GÖR DU / VEM ÄR DU?

USB styrt DMX gränssnitt

TDDC74 Programmering, abstraktion och modellering. Tentamen

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

CE_O6. Parallell in/utmatning (I/O). Förberedelser till laboration nios2io.

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Metoder (funktioner) Murach s: kap Winstrand Development

SIE4-läsaren En applikation utvecklad i Excel som läser SIE4 filer

Språket Python - Del 1 Grundkurs i programmering med Python

INTRODUKTION TILL JDBC

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 14/6 Tid

Lab5 för prgmedcl04 Grafik

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

HI1024 Programmering, grundkurs TEN

KA27 Uppflyttningsvillkor Kravspecifikation

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Aktivitetskort på nätet

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

Värmedistribution i plåt

Objektorienterad programmering

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

1.1 Runnable och Thread

HI1024 Programmering, grundkurs TEN

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Hantering av hyperlänkar

Starta MySQL Query Browser

C++ Slumptalsfunktioner + switch-satsen

Tentamen i. Programmering i språket C

Grunderna i stegkodsprogrammering

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Arduinokurs. Kurstillfälle 4

Lite mer om CGI-programmering

API Notera HTTPS POST msg UTF-8. API_key JSON Mobilnummer format 1. Skicka ett SMS till specifikt nummer POST parametrar: from msg API_key Exempel:

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Administrationsmanual ImageBank 2

Föreläsning 6: Introduktion av listor

15-1. MONITOR IT-utbildning

PROGRAMMERING-Java TENTAMINA

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Uppgift 1 ( Betyg 3 uppgift )

AVCAD 4.0 för Windows

8 Importera/Exportera låssystem och personregister

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Transkript:

training people monitors DL/I programmering från grunden Peter Sterwe Lär dig grunderna i DL/I-programmering på ett översiktligt och pedagogiskt sätt från företaget som har mer än trettio års erfarenhet av utbildning inom IBM z/os Mainframe.

DL/ Introduktion Med DL/I skapar vi en struktur som ger all den information som krävs, utan att ta upp extra plats i förväg. 1-1

DL/ Introduktion FÖRÄLDER OCH BARN. I en struktur bestående av rotsegment och ett eller flera beroende segment finns också begreppen förälder och barn. Rotsegmentet är i de flesta databaser förälder till ett eller flera barn. Dessa barn kan i sin tur vara föräldrar till ytterliggare barn-segment. 1-2

DL/I miljön DBD - DataBase Description. Ett DBD beskriver en databas uppbyggnad. Man skapar ett DBD per databas. Detta DBD kan sedan användas för alla applikationsprogram som ska arbeta med just den databasen. Här finns information om fysiskt databasnamn, så kallade dd-namn på de dataset som ingår i basen, accessmetod och lagringsmedium. Här beskrivs också alla segment som ingår i databasen, med namn och segmentlängder, eventuella sorteringsfält (nycklar) och sökfält. Strukturen beskrivs genom att man för varje segment anger vilket segment som är förälder, samt genom den inbördes ordningen mellan segmenten. Den inbördes ordningen styr i vilken ordning segmenten ska läsas vid sekvensläsning av databasen, den så kallade hierarkiska sekvensen. Konventionen bjuder att man ritar segmenten i hierarkisk ordning enligt DBD uppifrån och ned - från vänster till höger". 2-3

DL/I miljön Eftersom DL/I betraktar vårt applikationsprogram som en subrutin förbereder DL/I exekveringen genom inladdning av aktuella kontrollblock och laddmoduler. Applikationsprogrammet får kontrollen vid den entrypunkt som i ett cobolprogram ska heta 'DLITCBL (DL/I to Cobol). Via ENTRY-satsen får vårt program adressen till aktuella PCB:n. Detta behövs för att vi i vårt applikationsprogram ska kunna ta vara på den information DL/I ger oss efter varje anrop. Applikationsprogrammet gör sina anrop genom CALL på DL/I (CBLTDLI, Cobol to DL/I) när det vill läsa eller uppdatera på databasen. Vid första CALL på en viss databas öppnar DL/I databasen, vilket betyder att vi inte behöver koda något "open" i vårt cobol-program. Programmet ska avslutas med satsen GOBACK, (aldrig med STOP RUN, programmet är en subrutin till DL/I) då DL/I återfår kontrollen, avslutar exekveringen och stänger databasen mm. 2-4

DL/I areor vid anrop PARM-COUNT Ej obligatorisk i COBOL och det finns därför ingen anledning att använda denna parameter. För allmän kännedom gäller ändå följande. Binärt helord i programmets Working-Storage (PIC S9(9) COMP). Ska innehålla antalet efterföljande parametrar (minst 3, max 18). FUNKTIONSKOD Obligatorisk. GU GN GNP GHU GHN GHNP ISRT REPL DLET Fyra bytes i programmets Working-Storage, PIC X(4). Ska innehålla funktionskod enligt ovan. 3-5

DL/I areor vid anrop SSA = SEGMENT SEARCH ARGUMENT För varje typ av läsning på databasen kan vi lämna med sökargument i form av SSA:er. Ett SSA är en area i programmets Working-Storage. Den arean eller det fältet ska som minimum innehålla segmentnamn (8 bytes) följt av minst ett blanktecken. Ovan visas ett exempel på detta. Dessutom kan ett SSA innehålla fältnamn, jämförelseoperatorer och jämförelsevärden. Exempel på dettta ser vi också på detta uppslag. 3-6

Läsande anrop Det finns tre sätt att läsa en DL/I-databas. Följande funktionskoder kan användas: GN - GET NEXT GU - GET UNIQUE GNP - GET NEXT WITHIN PARENT Vid programmering med standard CALL gäller följande funktionskoder om läsning kommer att efterföljas av uppdatering: GHN GHU GHNP - GET HOLD NEXT - GET HOLD UNIQUE - GET HOLD NEXT WTIHIN PARENT Hold-anropen fungerar exakt likadant som GET - anrop utan HOLD, varför dessa inte vidare kommenteras förrän vi går igenom de uppdaterande anropen. 4-7

Läsande anrop I det detta exemplet har vi endast kvalificerat SSA på KURS, inget SSA alls på TILLFLLE samt okvalificerat SSA på DELTGRE. Anropet resulterar i att vi i vår IOAREA får första deltagaren under kursen DB15' under första bästa tillfälle, i det här fallet 0215'. 4-8

DL/I Programmering från grunden Uppdaterande anrop INSERT - RULES I DBD När databasadministratören (DBA), skapar ett DBD finns möjligheten att lämna med en sk. option vad gäller regler för hur INSERT ska ske. De options som finns är LAST, FIRST eller HERE. Dessa gäller för de segment som saknar unik nyckel (segment med unik nyckel hamnar där de ska, dvs. i nyckelordning). LAST FIRST HERE Segmentet hamnar sist i tvillingkedjan. Segmentet hamnar först i tvillingkedjan. Segmentet placeras före det segment som lästes i sista CALL. Har inget CALL gjorts placeras segmentet först i tvillingkedjan. LAST är det som gäller om inte denna parameter lämnas med, och så är fallet med kursdatabasen. 5-9