Kategoriarkiv: Okategoriserade

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:

bok om CL varför då?

Såg nu att min bok om CL-programmering nu också finns ute hos de flesta nätbokhandlar och således är lätt att beställa.

Exempelvis:

https://www.bokus.com/bok/9789178510016/grunderna-i-cl-programmering-for-ibmi-for-nya-och-gamla-programmerare/

0Så då kan man kanske undra över varför jag lagt ner (ganska mycket!) tid på att samla in, strukturera, ta fram exempel och övningar och lösningar och…

För ett programspråk som har så specifika syften som just CL.

Det jag har upptäckt är att kunskapen om hur man kan och bör använda CL (för slippa undan gör man inte) är väldigt rudimentär hos de allra flesta som jobbar med IBM i . De nya strukturerade metoder som har kommit – ibland redan för tio år sedan eller mer – används oftast inte.

Och så kan vi inte ha det.

Det är således rätt mycket ”folkbildningstanker” som ligger bakom boken. Samtidigt kan jag visst tänka mig att lära ut tekniken litet mer personligt också.


Vad saker kostar

Det finns en konstig uppfattning som börjar spridas att ingenting egentligen ska kosta någonting.

Av och till blir jag inblandad i upphandlingar av – faktiskt rätt avancerad – systemprogramvara och lika avancerade utvecklingsverktyg.

Nu är det här produkter som kräver en hel del möda när det gäller design och ändå mer när det gäller att utveckla. Samtidigt är det inte sådant som säljs i stora volymer.

Av det följer att man helt enkelt måste ta ut ett pris som står i relation till komplexiteten på produkten och till den volym som den produceras i.

Men gång efter annan förväntar man sig tydligen att man ska kunna köpa en hel bukett sådana utilities för kanske som mest 200 tusen kronor.

Jag har hållit på en stund i den här branchen och om jag jämför litet med hårdvarupriser. När jag började kostade en terminal till det system jag jobbade med 26-tusen. Det skulle motsvara sisådär 150 tusen i dag. Några få år senare kostade en PC med (mycket liten) hårddisk (lågupplöst) färgskärm och enkel skrivare 58000. Skulle vara en kvarts miljon i dag.

Egen IBM-i dator!

Det har jag i och för sig haft under tider som gått också.

 

En B10 stod på hemmakontoret under några år. På slutet var den mesta nyttan att den vårmde så gott. Operativet i den hade gått till vägs ände och det blev strul med licensnycklar av och till.

Nu senast har jag kört på ett gratisutrymme i en tysk server. Det var i och för sig bra och kul så länge det varade men – som mycket som är bra och gratis så missbrukas det. Resultatet – servern är inte längre tillgänglig. Synd.

I stället har jag via Krengeltech.com hyrt mig en egen partition dvs en egen maskin utan krångel och utan att kunna klappa den.

Som vanligt är det litet jox i början med konfigurering av brandväggar och sånt men sen fungerar det galant.  Nu kan jag ändra systemvärden, subsystem med mera utan att fråga någon om lov. Jag ÄR Qsecofr och kan ge mina egna userkonton vilken behörighet jag vill.

I denna kommer jag att testa och ta fram demokod för en kommande andra – utökad upplaga av RPG-boken samt utveckla ett par rätt spännande utilities.

Nästlade datastrukturer – En ”dold” nyhet!

I ”IBM Systems Magazine” (finns online – mycket läsvärt) finns en litet dold nyhet om ett nytt sätt att skapa nästlade datastrukturer!

Hela artikeln finns här

En nästlad struktur – dvs med flera nivåer är mycket användbar exempelvis när man ska beskriva ett något så när komplext XML-meddelande som vi ska läsa in.

Tidigare var man tvungen att använda templates för att beskriva de ingående delarna.

Nu kan man skriva som:

DCL-DS  Hela_Ordern Qualified;

Kundnr Zoned(5);

Faktura Zoned(10);

DCL-DS Huvudtexter dim(99);

Textnummer Zoned(5);

Huvudtext char(60);

END-DS;

DCL-DS Artikelrader dim(99);

Artikel Zoned(10);

Antal Zoned(5);

END-DS;

END-DS;