Software development, photography, jokes, ....

Sites by me

 
tas-logoTransportation Administration System
snoezelkussen-logo-kleinstSnoezelkussens voor verstandelijk gehandicapten
ikzoekeenbegeleider-logoBegeleiders voor gehandicapten
Laat uw hond het jaarlijkse vuurwerk overwinnen
logo 50x50Hey Vos! Je eigen naam@vos.net emailadres?
Kunst in huis? Nicole Karrèr maakt echt bijzonder mooie dingen
nettylogo2Kunst in huis? Netty Franssen maakt ook bijzonder mooie dingen
Salarisadministratie en belastingadvies bij De Zaak Loont
Zutphense Bomenstichting

Hosting Favorites

 
ANU Internet Services
XelMedia .internet Services
register.com

Blogroll

 
Bomenstichting
LassoSoft
MacFreak
Quality that computes
The Economy of Motion
Wheel 2.0
IntrAktv



Website Hosting bij Xel Media

Marc's Place

E$ISMIO - In-/uitvoer operaties op een ISAM bestand




Aanroep
 
xcall e$ismio (actie, kanaal[, record[, sleutelwaarde[, sleutel]]])
 
Common velden vóór aanroep
e$_curw
Venster-identificatie van het actieve uitvoervenster.
Parameters te vullen bij aanroep
actie (d3)
Drie posities die elk de routine aansturen met betrekking tot de te ondernemen operatie op het ISAM bestand:
  • Positie 1 (meest rechtse) geeft de I/O operatie aan en kent de volgende waarden:
    1. READS
    2. READ
    3. READ + WRITE. Het record wordt in een separate buffer gelezen, waarna record er overheen wordt teruggeschreven.
    4. STORE
    5. READ + WRITE (zie 3.) en indien bij de READ het record niet bestaat, een STORE.
    6. READ + DELETE. Het record wordt in een separate buffer gelezen en verwijderd.
    7. WRITE. Het record moet al eerder door middel van 1. of 2. gelocked zijn.
    8. DELETE. Het record moet al eerder door middel van 1. of 2. gelocked zijn.
  • Positie 2 (de middelste) geeft aan of en hoe er een unlock plaats moet vinden en kent de volgende waarden:
    1. Unlock kanaal na elke I/U-operatie.
    2. Unlock kanaal na een fout 53 bij de operaties 2,3,5 en 6.
  • Positie 3 (de meest linkse) is om aan te geven hoeveel keer, bij een gelocked record, moet worden geprobeerd het record te lezen vóórdat de fout 40 aan het aanroepende programma wordt teruggegeven. De waarde wordt intern met 10 vermenigvuldigd, dus het minimale aantal keren is 10. NUL (0) geldt als 'oneindig blijven proberen'. Bij een lock waarbij vaak of oneindig geprobeerd moet worden het record te lezen, wordt onderin het scherm, in een apart, kaderloos venster, een lock-melding knipperend weergegeven, inclusief de bestandsspecificatie van het bestand waarop de lock betrekking heeft, zodat een gebruiker weet waarom het programma geen sjoege geeft. Een voorbeeld:

kanaal (d*)
Het kanaal waarop een ISAM bestand geopend moet zijn.
record (a*)
De buffer met gegevens die naar het bestand geschreven moet worden. Deze parameter kan weggelaten worden als actie = xx8.
De maximale buffergrootte voor record is 8192 bytes.
sleutelwaarde (a*)
De sleutelwaarde waarmee een record gezocht wordt of waarmee in het bestand gepositioneerd wordt. Deze parameter is niet van belang bij actie = xx1, xx4, xx7 of xx8.
De maximale buffergrootte voor sleutelwaarde is 512 bytes.
sleutel (d*)
De sleutel waarop met sleutelwaarde gelezen of gepositioneerd moet worden. Standaardwaarde is NUL (KEY 0). Deze parameter heeft alleen zin als actie = xx2, xx3, xx5 of xx6.
Parameters gevuld bij terugkeer
record (a*)
De buffer met gegevens die uit het bestand gelezen moest worden.
Common velden gevuld bij terugkeer
e$_err
Foutcode van de eventueel opgetreden fout:
000 = Alles is goed gegaan.
010 = Kanaal <= nul
031 = Record is groter dan 8192 bytes.
031 = Sleutelwaarde is groter dan 512 bytes
519 = Positie 1 van actie <> 8 en record is niet meegegeven.
151 = Positie 1 van actie <= 0 of >= 9
151 = Sleutel < 0
??? = DBL-foutcode
e$_lin
Het regelnummer waar de DBL-fout optrad.
Voorbeelden
Sequentieel het bestand door, startende op KEY 1, ergens in het midden. Unlock na een fout 53. Bij een lock ondeindig blijven proberen:
 
xcall e$ismio (22, chart, artikel, 'MIXER', 1)
while .not.e$_err begin
...
...
xcall e$ismio (21, chart, artikel)
end
 
Hier volgt een DELETE na een record gelezen te hebben met een lock via KEY 0:
 
xcall e$ismio (2, chart, artikel, 'MIXER')
if .not e$_err xcall e$ismio (8, chart)
 
Nu wordt een parameter-record overschreven, en, indien het nog niet bestond, toegevoegd:
 
xcall e$ismio (5, chpar, params)
© 1997- Marc Vos (and others) Contact Me