Net-Base Tímarit

01.07.2026

Nútímavæða SQL Server-tengingu í Delphi: stöðugri rekstur, betri viðhaldshæfni, minni áhætta

Mörg Delphi-forrit hafa í mörg ár átt samskipti við SQL Server – oftast stöðug, en með tæknilegum bagga: úreltar gagnaaðgangsaðferðir, SQL-strengir sem erfitt er að viðhalda, óljósar færsluaðgerðir, veikar sjálfgefnar öryggisstillingar eða frammistöðuvandamál við vaxandi álag. Þessi grein sýnir...

01.07.2026

Frá tímaritsþema til verkefnaframkvæmdar

Viðeigandi þjónustu- og tæknisíður fyrir greinina

Sá sem vill nútímavæða tengingu við SQL Server í Delphi, stendur sjaldan frammi fyrir yfirlýstu „virkar eða virkar ekki“-vandamáli. Í mörgum fyrirtækjum keyra eldri Delphi-borðtölvuforrit eða Windows-þjónustur áreiðanlega árum saman – þangað til nýjar kröfur berast: Windows-uppfærslur, nýjar SQL-Server-útgáfur, strangari öryggiskröfur, aukið gagnamagn, fleiri staðsetningar eða þörf á að innkapsla viðmót hreint. Þá verður ljóst hversu mikið gagnanotkun, villumeðhöndlun og viðskiptaflæði hafa áhrif á daglegt viðhald og rekstur.

Þessi grein lýsir hagnýtum skrefum til nútímavæðingar sem hægt er að innleiða í tilvistarkerfum án þess að endurbyggja allt frá grunni. Áherslan er á ákvarðanir sem skipta máli fyrir IT-stjórn, kerfisstjóra og tæknilega verkefnisstjóra: val á drifi, öryggisstig, stöðugleiki í rekstri, viðhaldsvænleiki, frammistaða og áhættulítil flutningsleið.

Af hverju tenging við SQL Server í Delphi verður málefni nútímavæðingar

Í framkvæmd verður þrýstingur á nútímavæðingu sjaldan vegna tungumálsins Delphi sjálfs, heldur vegna samspils gagnagrunna, drifaraumhverfis, harðnunar stýrikerfis og vaxandi flókins viðskiptaforrits. Algengir kveikjarar eru:

  • Tæknilegar erfðir í gagnaaðgangi: gamlir ADO-/OLE-DB-vegir, handstilltar ODBC-stillingar, ósamræmd tengingastilling eða blandaðir íhlutir í verkefninu.
  • Öryggisstaðlar duga ekki lengur: kröfur um TLS-dulkóðun (gagnaflutningsdulkóðun), staðfestingu vottorða, lykilorðasnúning eða Windows-auðkenningu.
  • Frammistöðuvandamál: aukinn fjöldi notenda, meiri samhliða vinnsla, ný skýrslur, viðbótarinnleiðingar – og skyndilega sjást timeout, deadlock eða langar læsingar.
  • Viðhaldsvænleiki minnkar: SQL-strengir í formum, skortur á parametrun, try/except án greiningarsamhengis, óskýrar mörk transakcióna.
  • Pall- og útgáfubreytingar: uppfærsla á nýjum SQL-Server- eða Windows-útgáfum, skipti í 64-bita umhverfi, Terminalserver/RemoteApp eða fjarvæðing.

Kjarni málsins: Nútímavædd tenging er ekki bara „hraðari“. Hún er meiri stjórn undir: skýr rekstur, endurteknanleg stilling, merkjanlegir logs og gagnaaðgangur sem má prófa og endurnýja stigvaxandi.

Skilja núverandi stöðu nákvæmlega: áður en maður „einfach FireDAC einbaut“

Áður en íhlutum er skipt út borgar sig að framkvæma stutta, kerfisbundna stöðukönnun. Hún sparar síðar daga við bilanaleit því hún gerir háðar tengingar sýnilegar sem í eldri verkefnum eru oft aðeins óljósar.

Athugunarlisti: Hvað þarf að svara í greiningunni?

  • Hvaða aðgangstækni? ADO (yfir OLE DB), ODBC, dbExpress, BDE-leifar, einkaeignabókasöfn – og hvar eru þau dreifð í kóðanum?
  • Hvernig eru tengingar byggðar? Connection-String miðstýrt eða per mótul? Eru stillingarskrár, Registry-færslur, umhverfisbreytur?
  • Hvernig fer auðkenning fram? SQL-Login, Windows-auðkenning (innbyggð innskráning), þjónustureikningar, Kerberos/NTLM, hugsanlega blandaðir mótar.
  • Hvernig eru transakciónir notaðar? Fyrir hvert vistunarferli, fyrir hvert Use-Case, eða jafnvel „autocommit“ án skýrra marka?
  • Hvaða SQL-Server-eiginleikar eru nýttir? Stored Procedures, Views, Trigger, CLR, Always On, dulkóðun, Columnstore, Temporal Tables.
  • Hvaða rekstrarumhverfi? einstaka vinnustöð, Terminalserver, Citrix, Windows- og Linux-þjónustur, tímasett verkefni, fleiri staðsetningar með VPN.
  • Niðurstaða þessa áfanga ætti að vera lítil markmynd: Hvaða módúlar verða endurnýjaðir fyrst, hvaða stillingar verða staðlaðar, og hvaða áhætta (t.d. breyting á auðkenningu) verður meðvitað meðhöndluð sér.

    Nútímavæða SQL Server tengingu í Delphi: stýrla- og íhlutastefna

    Fyrir mörg Delphi-kerfi er lykilákvörðunin: Hvernig tengjumst við tæknilega SQL Server – og hvernig stöðlum við það yfir öll módúl? Í nútímalegum Delphi-stekkum er BDE-skipti með innbyggðri tengingu gjarnan hin hagnýta lausn. BDE-Ablosung mit nativer Anbindung er gagnaaðgangslag (Data Access Layer) í Delphi sem hylur stýrla, styður parametriseringu og getur skýrt sinnt dæmigerðum rekstrarkröfum eins og pooling og logging.

    Af hverju staðlun er mikilvægari en „hin fullkomna stýrill“

    Í eldri forritum er ekki óalgengt að vera í blönduðu umhverfi: hluti notar ADO, annar ODBC, þriðji dbExpress. Þetta leiðir til tvíþættrar stillingar, mismunandi timeout- og viðskiptasemantíku og erfiðra til samanburðar villumynda. Markmið nútímavæðingar ætti að vera:

    • samræmdur tengistaðall (þ.m.t. tímamörk, dulkóðun, forritsnafn),
    • sameiginlegt villu- og skráningarkerfi,
    • skýrt skilgreint aðskiljunarlag milli notendaviðmóts/þjónusturökfræði og SQL.

    Að skipta út ADO eða umlykja það?

    Marg kerfi nota ADO vegna þess að það var þá „auðvelt“. Í dag er ADO ekki sjálfkrafa rangt, en oft hindrun fyrir samræmdar öryggis-frumstillingar, pooling-stefnur og greiningu. Í framkvæmd eru tvær raunhæfar leiðir:

    • Umlykja: ADO helst upphaflega, en gagnaaðgangsfasiða er innleidd svo ný módúl verði þegar tengdar á hreinan hátt.
    • Skref fyrir skref útskifting: Módúl eða notkunartilvik eru færð eitt af öðru yfir á FireDAC, fylgt af regression-prófunum og samhliða rekstri.

    Hvaða leið hentar ræðst af útgáfupressu, prófunardýpt og flækjustigi SQL-rökfræði – minna af hreinum fjölda eyðublaða.

    Öryggi í gagnagrunnstengingu: TLS, auðkenningar og réttindi vel skilgreind

    Frá rekstrarsjónarhóli er gagnagrunnstenging meginöryggismál. Um ræðir flutningsdulkóðun, auðkenningar, lágmarksréttindi og rekjanlega stillingu. Sérstaklega í vöxnum forritum eru sjálfgefnar stillingar oft sögulegar, ekki meðvitað valdar.

    Flutningsdulkóðun (TLS) og vottorðaskoðun

    SQL Server getur dulkóðað tengingar með TLS. Mikilvægt er ekki aðeins að „Encrypt an“ sé sett, heldur einnig að athuga vottorðið og hafa samræmda vottorðastjórnun (t.d. hreinar Subject Alternative Names). Annars festist maður í gildru: dulkóðun virk, en í reynd án raunverulegrar skoðunar vegna „Trust Server Certificate“.

    Fyrir stjórnendur skiptir þetta þannig: stillingar þurfa að vera endurgeranlegar (GPO/Deployment), og villur þurfa að vera ótvíræðar (t.d. vottorð útrunnið vs. DNS-nafn rangt).

    SQL-innskráning vs. Windows auðkenning

    SQL-innskráningar eru auðveldar í útbreiðslu en erfiðari í öruggri rekstri: lykilorðaskipti, meðhöndlun leyndarmála og misnotkunarhætta. Windows Authentication (samþætt innskráning) getur fært kosti í fyrirtækjaumhverfi, en krefst skýrra ramma: Service-Accounts, SPNs (Service Principal Names) og Kerberos-leiðir þurfa að vera rétt skilgreindar, sérstaklega við aðgang yfir marga hlekk (t.d. Terminalserver að gagnagrunni).

    Hagnýt endurnýjun í rekstri er oft: Windows Authentication fyrir þjónustuhluta (Windows- und Linux-Services, REST-þjónn) og skýrt reglubundnar innskráningar fyrir sértilfelli – hver með lágmarksréttindi.

    Réttindastefna: Minna er stöðugra

    Aftökuöryggi tengist líka réttindum. Of víðtæk réttindi valda „aukaverkunum“: óvæntar breytingar á gagnauppbyggingu, eyðingu gagna eða að farið sé framhjá fagreglum. Reynsla sýnir:

    • Gagnagrunnshlutverk fyrir hvert forrit (lesa, skrifa, stjórnunarhlutverk aðskilin),
    • Skýr réttindi fremur en aðild að öflugum staðalhlutverkum,
    • Skýr aðgreining milli DDL (schema-breytinga) og DML (gagnabreytinga) yfir innfærslur.

    Frammistaða og stöðugleiki: tengingapooling, tímamörk, læsingar

    Margir frammistöðuvandamál stafa ekki af því að „SQL Server er hægur“, heldur af ósamræmdum viðskiptavinastefnum: of margar tengingar, röng tímamörk, UI-aðgerðir sem ná yfir viðskipti eða fyrirspurnir án parametra. Nútímavæðing hér merkir að gera aðgang að gögnum áætlanlegan.

    Tengingar: opnun/lokun vs. pooling

    Í skjáborðsforritum er algengt að opna tengingar eftir þörfum. Í þjónustuferlum (Windows-Service, REST-þjónn) er tengingapooling nauðsynlegt til að taka á móti álagsstökkum. Pooling þýðir að tengingar eru endurnýttar í stað þess að stofna nýjar fyrir hverja fyrirspurn. Þetta minnkar innskráningarálag og jafnar svörunartíma.

    Mikilvægt er rekstrarlega: Pooling þarf skýr mörk, hentug óvirknitímamörk og eftirlit, svo „fastar“ tengingar verði sýnilegar. Annars er verið að flytja vandamálin til annars staðar.

    Tímamörk: þrjú stig, eitt markmið

    Í SQL-Server-senur hafa tímamörk áhrif á mörgum stigum: net/Socket, innskráning/handshake og Command-Timeout (keyrslutími). Nútímaleg tenging þýðir að stilla þessi gildi með ásetningi og rökstyðja þau fyrir hvert notkunartilvik (t.d. gagnvirk leit vs. nóttarkeyrsla).

    Í rekstri ætti að vera hægt að rekja hvort tímamörk stafi af skorti á vísum (indexum), læsingum eða netvandamálum. Þetta virkar aðeins ef forritið skráir samhengi (fyrirspurnartegund, parametrar, tímalengd, netþjónsnafn).

    Gera viðskipti og læsingar (Locking) stjórnlegar

    Viðskipti eru kjarnatriði fyrir stöðugleika. Viðskipti eru samhangandi röð gagnabreytinga sem annaðhvort ganga öll eftir eða engin. Í framkvæmd verða vandamál þegar viðskipti eru opin of lengi – til dæmis vegna UI-aðgerða, notendastaðfestinga eða skráaraðganga innan viðskipta.

    Nútímavæðingaraðgerðir sem virka strax:

    • Skilgreina mörk viðskipta fyrir hvert faglegt ferli (t.d. „skrá pöntun“), ekki fyrir hvert eyðublað.
    • Engar gagnvirkar biðtímar innan viðskipta (dialogar, langar útreikningar, prentun/PDF).
    • Gera deadlocks greinanlegar: auka villumeðhöndlun þannig að deadlock-fórnarlömb séu þekkt og endurtilraunastefnur verði hægt að beita markvisst.

    Auka viðhaldshæfni: umlykja SQL, krefjast parametrunar, bæta villugreiningu

    Margir Delphi-eldri verkefni þjást minna af „of fáum eiginleikum“ en af óljósum gagnaaðgangi. Viðhaldshæfni skapast þegar SQL og gagnarökning liggja ekki dreifð um allt kerfið, heldur eru skiljanleg og aðgengileg á fáum, skjalfestum stöðum.

    SQL-strengir í UI eru viðhaldsáhætta

    Ef hvert form byggir upp eigin SQL-strengi verður hver skemabreyting dýr. Jafnframt aukast öryggisáhættur (t.d. SQL Injection) og greining verður erfið. Nútímaleg nálgun er gagnaaðgangslag sem:

    • stjórnar SQL-skipunum miðstýrð (fyrir hvert módúl/notkunartilvik),
    • notar parametrun af festu (í stað strengjatengingar),
    • skilar niðurstöðum í skýrum gagnauppbyggingum (í stað „Dataset allsstaðar“).

    Fyrir teymin sem búa ekki yfir mikilli þróunarfærni er þegar milliþrep verðmætt: einleit Query-fabrik og skýrar reglur um hvar SQL má vera.

    Stored Procedures vs. Inline SQL: rekstrarveruleiki frekar en trúarspurning

    Stored Procedures (geymslaferlar í SQL Server) geta fært kosti: miðstýrt rök, réttindahugtök og oft stöðugri framkvæmdaráætlanir. Inline SQL er auðveldara að breyta og fyrir mörg teymin betra að útgáfustýra í sama release-ferli og forritið.

    Í framkvæmd er blandað fyrirkomulag algengt:

    • Mikilvægir ritferlar (færslur, lagerhreyfingar) frekar proðedúralegir þegar réttindi og gagnsamkvæmni eru í fyrirrúmi.
    • Lesturstungur fyrirspurnir (leitir, listar, skýrslur) frekar sem útgáfustýrt SQL í forritinu – en vel parametriserðar og prófaðar.

    Ákvörðunin snýst minna um „hvar“ en um að Deployments, Rollbacks og háðir séu skýrar.

    Villugreining: frá undantekningatexta yfir í rekstrarhæft merki

    Margir þættir skrá aðeins „Villa við vistun“. Fyrir rekstur og 2nd-Level-Support er það lítils virði. Nútímavæðing felur í sér: uppbyggðar villufréttir, án þess að leka viðkvæmum gögnum. Nýtileg logg-þættir eru:

    • Samskeyti: Request-ID eða vinnslu-ID til að tengja logglínur saman.
    • Tæknilegur samhengur: server/tilvik, gagnagrunnur, innskráningartegund, stýrir, tímalengd.
    • SQL-flokkur: nafn fyrirspurnar/notkunartilviks, ekki nauðsynlega fullur SQL-texti.
    • Villuflokkur: timeout, deadlock, brot á takmörkunum, netvandi, innskráning.

    Með þessu verður munurinn á „við sjáum bara einkenni“ og „við getum þrengt orsökina skýrt“ í rekstri verulegur.

    Skemas- og gagnabreytingar: gera flutningaáætlanir framkvæmanlegar

    Sá sem nútímavæðir SQL-Server-tengingu snertir nánast alltaf líka skemuna: gagnategundir, vísitölur, takmarkanir, collation eða innleiðingu nýrra tafla fyrir samþættingar. Án aga í flutningum verður kerfið viðkvæmt: það virkar á prófunarkerfi en brotnar í staging/production.

    Útgáfustýrðar gagnagrunnsflutningar í stað handvirkra inngripa

    Áreiðanleg nálgun er að meðhöndla gagnagrunnsbreytingar eins og útgáfur forrits: útgáfustýrt, endurtekanlegt, með skýrum forsendum. Þetta getur gerst með migrations-skriptum, deployment-pakka eða release-jobbi. Mikilvægt er ekki tólið heldur reglan:

    • Engar „handbreytingar“ í framleiðslu án rekjanleika.
    • Afturkallaáætlun að minnsta kosti fyrir gagn­rýnar breytingar (eða skýr „forward-only“-áætlun).
    • Staging-umhverfi, sem endurspeglar framleiðslugögnin raunsætt (gögn dulrituð ef þörf krefur).

    Gagnategundir og Unicode: forðast duldar villur

    Sérstaklega í eldri Delphi-forritum rekast sögulegar forsendur (ANSI-Strings, gamlar Collations) á nútímakröfur (Unicode, fjöltyngi, nýir clients). Á SQL Server-hliðinni eru NVARCHAR/Unicode-gerðir staðallinn. Nútímavæðing þýðir hér að ákvarða meðvitað hvernig stafakóðun, röðun og samanburður virka. Annars skapast erfitt að endurframkalla villur við leit, athugun á tvítekningum eða útflutning viðmóta.

    Arkitektúr: aftengja aðgang að gögnum og opna fyrir viðmót

    Í mörgum fyrirtækjum er Delphi-forritið ekki lengur einangrað: portalar, ytri þjónustuaðilar, BI, DMS eða ERP-samþættingar sækja sömu gögn. Þegar gagnagrunnstenging er nútímavætt er gott tækifæri til að stilla arkitektúrinn þannig að hann leyfi vöxt.

    Lagskipting: skýr mörk milli notendaviðmóts, faglogíkur og gagnaaðgangs

    Eitt reynt mynstur er lagskipt arkitektúr (t.d. framsetning, faglogík, gagnaaðgangur). Þetta hljómar fræðilega, en hefur mjög ákveðin áhrif í rekstri:

    • Breytingar eru staðbundnari: nýr reitur þarf ekki 20 eyðublöðaútfærslur með SQL-strengjum.
    • Prófanir verða mögulegar: faglogík getur keyrt gegn prófagögnum án raunverulegrar DB-tengingar.
    • Öryggi er hægt að útfæra miðlægt: skráning, réttindaskoðun, parametrun.

    Fyrir seinni skref eins og Delphi REST-API eða Delphi REST-API und REST-Server er þessi aftenging grunnurinn: þá er ekki „gagnagrunnurinn opnaður á Internetinu“, heldur eru skilgreind notkunartilvik boðin sem viðmót.

    Samhliða rekstur: blanda gömlum og nýjum gagnaaðgöngum stýrt

    Í raunveruleikanum er ekki alltaf hægt að skipta yfir í einn stökum skrefum („Big Bang“). Hagnýt nálgun er að láta nýja gagnanotkun keyra samkvæmt nýja staðlinum á meðan eldri modular halda áfram að virka. Mikilvægt í þessu samhengi:

    • Samræmdar reglur fyrir transaktsjónir, til að koma í veg fyrir að tvær tæknilausnir vinni hvor á móti annarri.
    • Sameiginleg uppsetning (Server, DB, dulkóðun, Timeouts) frá einum aðila.
    • Skýr flutningsmörk: á notkunartilvik eða módúl, ekki „lítið hér og þar“.

    Rekstur og stjórnun: uppsetning, eftirlit, útgáfuferill

    Nútímavætt SQL Server-tenging telst ekki „kláruð“ fyrr en hún virkar greiðlega í rekstri: rekjanlegir parametrar, skýr logg, fyriráætlanleg útgáfa og eftirlit sem sýnir ekki aðeins CPU-álag heldur einnig vandamál í forritinu.

    Uppsetning: endurframkvæmanleg og umhverfissértæk

    Milli þróunar, prófana, staging og framleiðslu eru netþjónaheiti, skírteini, auðkenning og stundum jafnvel gagnagrunnsheiti mismunandi. Þetta á ekki að leysa með kóðabreytingum heldur með skýrri uppsetningarstefnu (skrá, Secret-Store, deployment-parametrar). Ákveðnasti þátturinn er: sami build, önnur uppsetning – og mekanismi sem greinir rangar stillingar snemma.

    Eftirlit: Anwendungsmetriken bæta við SQL-Server-mælingum

    SQL Server býður upp á marga greiningarmöguleika (Wait Stats, Query Store, Blocking-Analysen). Fyrir heildarmynd þarf þó einnig hagnýtar forritamælingar: svörunartíma fyrir hvert notkunartilvik, villuhlutföll, fjölda samtímis gagnagrunnsaðgerða og endurtilraunir eftir deadlocks. Með þessum upplýsingum geta ábyrgir í upplýsingatækni metið hvort vandamálið á rætur sínar að rekja til gagnagrunns, nets eða forrits.

    Release-Prozess: Datenbank und Anwendung gemeinsam denken

    Þegar Delphi-forritið og gagnagrunnurinn eru dreift aðskildar koma upp algengar villur: nýtt forrit gerir ráð fyrir nýrri dálki, gagnagrunnsmigration hefur ekki verið rullett út (eða öfugt). Nútímalegt release-ferli skilgreinir því:

    • Röð (t.d. gagnagrunnsmigration fyrst, forritið á eftir),
    • Samhæfisgluggi (App-Versioner geta í ákveðinn tíma keyrt með gamla skemað),
    • Smoke-tests eftir dreifingu (innskráning, helstu notkunartilvik, skrifaðgerð).

    Áhættu minnkun í verkefnum: Svo nútímavæða án stöðvunar

    Tæknilega er margt mögulegt, en verkefna raunsæi þýðir: takmörkuð viðhaldsglugga, takmörkuð prófunarþekja og rekstur sem verður að halda áfram. Reynslan sýnir að vinnuferli í skýrum áföngum virkar best.

    Áfangaáætlun sem virkar í rekstrarumhverfum

    1. Setja grunnlínu: skrá núverandi villumyndir, tímatakmörk (Timeouts), toppfyrirspurnir og netþjónsstillingar.
    2. Skilgreina stillingastaðal: reglur fyrir Connection-String, TLS/Trust-Policy, tímamörk, Application Name.
    3. Innleiða nýjan gagnaaðgang: FireDAC (eða valinn staðall) sem skilgreindur lagfari, fyrst fyrir valin notkunartilvik.
    4. Bæta greiningu: logging, kórrelun, villaflokkar og valfrjálsar SQL-Trace-aðgerðir við stuðningstilvik.
    5. Skref fyrir skref endurnýjun: flytja íhluti, bæta við afturvirkniprófunum og fjarlægja gamlar brautir.
    6. Herting og rekstur: eftirlit, release-ferlar og að lokum staðfesta réttindastefnu.

    Það sem skiptir mestu máli: Hver áfangi skilar sjálfstæðum ávinningi. Þannig réttlætist nútímavæðingin jafnvel þótt ekki sé hægt að taka alla kerfið í gegn strax.

    Lokaniðurstaða: Nútímaleg SQL Server-tenging er rekstrarverkefni, ekki eingöngu endurskipulagning

    Nútímavæðing SQL Server-tengingarinnar í Delphi er meira en að skipta út íhlutum. Hún snertir öryggisstig, greiningargetu, stöðugleika í release-ferlum og hversu vel viðskiptaforritið ykkar ræður við vaxandi kröfur. Sá sem meðvitað staðlar drifara-stefnu, auðkenningu, viðskiptahönnun og skráningu (logging) dregur úr rekstrarlegri áhættu og leggur grunn að síðar skrefum, svo sem REST-viðmótum, portal-tengingum eða stigvaxandi Delphi-nútímavæðingu.

    Ef þið viljið þróa núverandi Delphi-umhverfi á tæknilega traustan hátt og nútímavæða SQL Server-tenginguna á skipulögðan hátt, hafið samband við okkur:

    Í faglegu samhengi gegna einnig Delphi FireDAC SQL Server og Delphi Ado-skipti mikilvægu hlutverki þegar samþættingar, gagnastreymi og áframþróun þurfa að vinna saman á hreinan hátt.

    Ræddu verkefni eða nútímavæðingarverkefni með Net-Base.

    Næsta skref

    Þegar úr málinu verður raunverulegt verkefni ber að skoða arkitektúr, núverandi kerfi og rekstur snemma saman.

    Við styðjum ekki aðeins við einstakar spurningar, heldur einnig þegar úr kóðabútum, eldri kerfum eða gáttahugmyndum þarf að verða traust fyrirtækjaverkefni.

    • Núverandi staða, markmynd og tæknileg áhætta eru metin saman.
    • REST, gagnaaðgangur, gáttir og innleiðing eru ekki skildir eftir til síðar.
    • Það sést snemma hvaða leið er fjárhagslega og rekstrarlega sjálfbær.

    Deila færslu

    Deila þessari færslu beint

    LinkedIn, X, XING, Facebook, WhatsApp og tölvupóstur eru strax tiltækir. Fyrir Instagram undirbúum við hlekk og stuttan texta beint.

    Tölvupóstur

    Instagram opnast í nýjum flipa. Tengill og stuttur texti eru afritaðir í klippiborðið á undan.