RLA till SQL????

Vad är problemet?

Först RLA står för record level access. Det är alla våra kära bekanta operationer som CHAIN, READ, READP, READE, READPE, SETLL och SETGT.

Det finns några till.

Det står ju ”record level” dvs en ”rad” i taget. Till skillnad mot SQL som i princip (men vem håller på principer) helst arbetar ett ”set” dvs en uppsättning rader per operation. Här är det en konceptuell skillnad.

Men om man ser på att gå över från RLA till SQL så är kruxet enligt min enkla mening att många operationer gör mer än en sak. Några exempel:

När vi öppnar en fil som är kopplad till ett index får vi tillgång till hela den sökväg som indexerats och kan sedan med olika operationer flytta oss helt fritt – till en viss punkt, framåt eller bakåt och så vidare.

SETLL är i synnerhet en lurig en. I program av ”en viss ålder” – varav det finns många – har man använt SETLL till att kontrollera om en matchning mot en annan tabell förekommer, men utan att läsa in data från den andra tabellen.

SETLL key tabell;
IF %found;
någonting
ENDIF;

Men man också använda samma operation till att se till att nästa läsning sker från en viss startpunkt:

SETLL key tabell;
READ tabell;
IF not %eof;
någonting;
ENDIF;

Den första varianten skulle kunna bli en ”select count…” i SQL medan den andra skulle kunna bli en ”declare cursor” + ”open cursor” + ”fetch”. Helt olika hantering således.

Andra varianter är om man gör en SETLL för att sedan göra en READP. Då stämmer inte detta med SQL cursor heller eftersom den där föregående raden inte ingår i det dataset som SQL-cursorn etablerat.

Och eftersom programmet glatt kan hoppa mellan alla dessa olika varianter av operationer är det enormt svårt att föruse hur man ska kunna skapa en komplett och säker konverterare.

Men det vore bra gott om någon lyckades!

Inte för att vi får programmen att fungera bättre men för att få de mer läsbara.

SENASTE NYTT

Det finns en del att rapportera sedan senaste inlägget.

Moderniseringsprojekt

Jag har ägnat mig en hel del med ett moderniseringsprojekt för ett svenskt tillverkande företag.

Det som är målet är framför allt att säkra framtiden genom att göra programkoden mer begriplig för nya utvecklare. Om man får koden i fullt-fritt-format så är det mycket lättare.

Men man vill dessutom se över litet mer än en ren konvertering (inte helt automatiskt dessutom eftersom en hel del program har följt med riktigt länge och har en del ”RPG-II” egenskaper). Därför ligger det i projektet också att se över att konvertera databasaccess från RLA (Chain – read -setll…) till SQL.

Mycket spännande.

Icruise With Charlie

Common Sweden (aka ”Data3”) ordnade nyligen en kurs kombinerad med skärgårdskryssning med Birka. Charlie Guarino var lärare och det var väldigt mycket hands-on med serviceprogram och mycket annat.

Det som gav mig en aha-upplevelse var hur lätt det är att publicera en procedur i ett serviceprogram som en web-service. Exempelvis som en metod att låta kunders system ställa frågor mot (lämpliga delar av) databasen,

Allt som behövs är inbyggt i maskinen.

Tack Common Sweden och Charlie för en spännande upplevelse.

Ny bok

Eller nästan!

Jag har hållit på en del med att revidera debattboken ”Inte din farfars AS/400” som kom ut på ”Blurb” för fyra år sedan (drygt).

Orsakerna är flera. Dels är fyra år ganska lång tid i de här sammanhangen och dels är plattformen ”blurb” inte optimal när det gäller tillgänglighet.

Hur som helst så gjorde jag klar den nya versionen på det förlag BoD som jag använder mig av numera och den finns på deras egen webshop likväl som på alla andra ställen som bokus, adlibris med flera.

Nu är titen ”Fortfarande inte din farfars AS/400”

Finns exempelvis här: