Archief - [PROG][COBOL] Variabele Recordlengte

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

DiDoria

Legacy Member
Hoi,

Een niet veel voorkomende vraag (daarom verwacht ik jammer genoeg ook niet direct antwoord). Hoe kan je in Cobol een record inlezen met variabele lengte?
Normaal heb je altijd een vaste lengte vb

Bram ;Gent ;9000
Stijn ;Belsele ;9120
enz...

Maar wat moet je doen als je een record hebt van 30 velden die gescheiden zijn door een ; en elk veld een variabele lengte kan hebben
Bram;Gent;9000
Charlotte;Sint-niklaas;8000

JE ziet dat je niet altijd de zelfde lengte mag inlezen of je zit vast...

Kan iemand hulp geven? :(

thx!!!!!!!!!!

den Acid Burn

Legacy Member
hate COBOL HATEEEEEE!!!!!!!!!!!!!!!!

sorry kan je niet helpen :)

Boris Yeltsin

Legacy Member
Toevallig om de studenten in te lezen DiDoria? ;)
Ik weet het ook nog niet, moet er nog naar kijken.

Rajiv

Legacy Member
- ken die opdracht van vorig jaar, en die tekstfiles die je gekregen hebt zijn gegenereerd door sqlserver, dus als ze die tabellen aangemaakt zullen hebben in sqlserver zullen die velden ook niet oneindig lang zijn. Jammer genoeg moet cobol project ergens op cd rom gebrand liggen die ik niet meer vind

- leg er een limiet op, bvb veldlengte van 50 posities, dan vervolgens read, met delimeter-string op ";"

-mail desnoods de verantwoordelijke voor het back-end luik hiervoor;)

Boris Yeltsin

Legacy Member
ff ter info. Het is mij gelukt: heb lijn per lijn uitgelezen en dan delimiter gedaan op die ";" zoals Rajiv zei.
Heeft een paar uur geduurd voor het goed werkte maarja.
Wel oppassen, er zijn enkele dubbele primaire sleutels wat fouten geeft bij het schrijven naar de DB

Greets

DiDoria

Legacy Member
Boris Yeltsin zei:
ff ter info. Het is mij gelukt: heb lijn per lijn uitgelezen en dan delimiter gedaan op die ";" zoals Rajiv zei.
Heeft een paar uur geduurd voor het goed werkte maarja.
Wel oppassen, er zijn enkele dubbele primaire sleutels wat fouten geeft bij het schrijven naar de DB

Greets


:D ook op BME

Inlezen lukt maar het wegschrijven naar de DB niet ik weet echt niet wat ik verkeerd doe :(
Staat er ergens een voorbeeld hou je die DB problemen kan oplossen?

ik heb dit als "schrijf methode"

Code:
       SCHRIJVEN-IN-TABEL.          
           EXEC sql INSERT INTO student ( studentID, naam, voornaam, 
           straat, pc, gemeente, telefoon)
               VALUES (STAMNR, ANAAM, VNAAM, 
               STRAATNR, POSTNR, GEMEENTE, TELEFOON);
           end-exec
           EXEC SQL
               COMMIT TRANSACTION
          END-EXEC

Boris Yeltsin

Legacy Member
DiDoria zei:
:D ook op BME

Inlezen lukt maar het wegschrijven naar de DB niet ik weet echt niet wat ik verkeerd doe :(
Staat er ergens een voorbeeld hou je die DB problemen kan oplossen?

ik heb dit als "schrijf methode"

Code:
       SCHRIJVEN-IN-TABEL.          
           EXEC sql INSERT INTO student ( studentID, naam, voornaam, 
           straat, pc, gemeente, telefoon)
               VALUES (STAMNR, ANAAM, VNAAM, 
               STRAATNR, POSTNR, GEMEENTE, TELEFOON);
           end-exec
           EXEC SQL
               COMMIT TRANSACTION
          END-EXEC


Voor de vaiabelen in de "values" moet een dubbelpunt dus:
Code:
VALUES (:STAMNR, :ANAAM, :VNAAM, 
               :STRAATNR, :POSTNR, :GEMEENTE, :TELEFOON)

Dan zou ik ook uw sqlstate controleren. Wss ga je nog een S1000 code krijgen wat betekend dat de primaire keys elkaar tegenwerken. Ze hebben namelijk bij verschillende records als primaire sleutel "??" ingegeven wat dus voor dubbels zorgt.


PS: Yep BME, ik zit zelfs in uw klas :p (wel groep 2)

DiDoria

Legacy Member
lol, nee groep1

De fout heb ik daarnet gezien, mega dom. Gewoon over het hoofd gezien. Nu alleen nog een pad kunnen meegeven. Nog wat zoeken -_-' dus
En wat ik ook doet de 1ste record schrijf hij niet weg :D maar soit :)

snoob

Legacy Member
Vraag me af of de eerstejaars in BME in het 2de & 3rde jaar ook nog COBOL gaan krijgen ... hoop van nie :p

DiDoria

Legacy Member
snoob zei:
Vraag me af of de eerstejaars in BME in het 2de & 3rde jaar ook nog COBOL gaan krijgen ... hoop van nie :p

Ik vrees van wel...
Ik denk dat dat zo een gat wordt voor die docenten dat ze niet meer weten wat in de plaats te geven :D.
Beter wat meer ASP.NET dan (1ste en 2de semester) vind dat een zeer tof vak. Is zeer GUI gericht (nogal logisch (a)) en dan dingen zoals 4 op een rij maken. Vind ik zeer doenbaar en tof om te kunnen! Op paar uurtjes heb je het en denk je WAW! (mss moeten ze 3D vormgeving in java eens aankaarten....)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan