Net-Base Žurnāls

01.07.2026

SQL Server savienojuma modernizēšana sistēmā Delphi: stabilāka darbība, labāka uzturējamība, mazāks risks

Daudzas Delphi lietojumprogrammas jau gadiem ilgi sazinās ar SQL Server — bieži stabilas, tomēr ar tehnisku bagāžu: novecojuši datu piekļuves veidi, grūti uzturami SQL vaicājumi, neskaidras transakcijas, vāji noklusējuma drošības iestatījumi vai veiktspējas problēmas, pieaugot slodzei. Šis raksts parāda...

01.07.2026

No žurnāla tēmas līdz projektu praksei

Atbilstošas pakalpojumu un tehniskās lapas rakstam

Kas vēlas modernizēt SQL Server savienojumu programmā Delphi, retu reizi saskaras ar vienkāršu “strādā vai nestrādā” problēmu. Daudzos uzņēmumos ilgstoši uzticami darbojas izveidotas Delphi darbvirsmas lietotnes vai Windows servisi – līdz parādās jaunas prasības: Windows atjauninājumi, jaunas SQL‑Server versijas, stingrākas drošības prasības, lielāki datu apjomi, vairāk atrašanās vietu vai nepieciešamība skaidri kapsulēt saskarnes. Tad kļūst redzams, cik spēcīgi datu piekļuve, kļūdu apstrāde un transakciju loģika ietekmē administrācijas un ekspluatācijas ikdienu.

Šajā rakstā aprakstīti konkrēti modernizācijas soļi, kurus iespējams īstenot esošajās sistēmās, neveidojot visu no jauna. Fokusā ir lēmumi, kas svarīgi IT vadībai, administratoriem un tehniskajiem projektatbildīgajiem: draiveru izvēle, drošības līmenis, darbības stabilitāte, uzturējamība, veiktspēja un zema riska migrācijas ceļš.

Kāpēc SQL Server savienojuma jautājums programmā Delphi kļūst par modernizācijas tēmu

Praksē modernizācijas spiediens reti rodas no paša Delphi valodas — tas rodas no mijiedarbības starp datubāzi, draiveru vidi, operētājsistēmas nostiprināšanu un biznesa programmatūras pieaugošo sarežģītību. Tipiski izraisītāji ir:

  • Tehniskie mantojumi datu piekļuvē: veci ADO-/OLE‑DB ceļi, manuālas ODBC konfigurācijas, nevienmērīgi savienojuma iestatījumi vai jauktas komponentes projektā.
  • Drošības noklusējumi vairs neder: prasības TLS šifrēšanai (transporta šifrēšana), sertifikātu pārbaudei, paroļu rotācijai vai Windows autentifikācijai.
  • Veiktspējas problēmas: pieaugošs lietotāju skaits, lielāka paralelitāte, jaunas atskaites, papildu integrācijas – un pēkšņi parādās timeouts, deadlocks vai ilgstošas bloķēšanas.
  • Uzturējamība samazinās: SQL virknes formularos, trūkst parametrizācijas, „try/except“ bez diagnostikas konteksta, neskaidras transakciju robežas.
  • Platformu un versiju lēcieni: atjaunināšana uz jaunām SQL‑Server vai Windows versijām, pāreja uz 64‑bitu vidi, Terminalserver/RemoteApp vai virtualizācija.

Galvenais: modernizēts savienojums nav tikai „ātrāks“. Tas ir pārvaldāmāks: skaidrāka ekspluatācija, reproducējama konfigurācija, jēgpilni logi un datu piekļuve, kuru var testēt un pakāpeniski atjaunināt.

Esošā stāvokļa precīza uzskaite: pirms „vienkārši FireDAC iestrādāt“

Pirms komponentes tiek aizstātas, ir vērts veikt īsu, strukturētu inventarizāciju. Tas vēlāk ietaupa dienas problēmu meklēšanā, jo padara redzamas atkarības, kas vecajos projektos bieži pastāv tikai netieši.

Kontrolsaraksts: kas analīzē jānoskaidro?

  • Kāda piekļuves tehnoloģija? ADO (caur OLE DB), ODBC, dbExpress, BDE atlieku komponentes, proprietārās bibliotēkas – un kur tās kodā izvietotas?
  • Kā tiek veidoti savienojumi? Connection‑String centrāli vai pa moduļiem? Vai ir konfigurācijas faili, reģistra ieraksti, vides mainīgie?
  • Kā notiek autentifikācija? SQL‑login, Windows Authentication (integrētā pieteikšanās), servisa konti, Kerberos/NTLM, iespējams jaukti režīmi.
  • Kā tiek izmantotas transakcijas? Par katru saglabāšanas darbību, par katru lietošanas gadījumu, vai pat „autocommit“ bez skaidrām robežām?
  • Kuras SQL‑Server funkcijas tiek izmantotas? Stored Procedures, Views, Trigger, CLR, Always On, šifrēšana, Columnstore, Temporal Tables.
  • Kādas darbības vides? Einzelplatz, Terminalserver, Citrix, Windows- und Linux-Services, geplante Tasks, mehrere Standorte mit VPN.
  • Ein Ergebnis dieser Phase sollte ein kleines Zielbild sein: Welche Module werden zuerst modernisiert, welche Einstellungen werden standardisiert, und welche Risiken (z. B. Authentication-Wechsel) werden bewusst separat behandelt.

    SQL Server Anbindung in Delphi modernisieren: Treiber- und Komponentenstrategie

    Für viele Delphi-Systeme ist die entscheidende Weichenstellung: Wie sprechen wir technisch mit SQL Server – und wie standardisieren wir das über alle Module hinweg? In modernen Delphi-Stacks ist BDE-Ablosung mit nativer Anbindung häufig der praktikabelste Standard. BDE-Ablosung mit nativer Anbindung ist eine Datenzugriffsschicht (Data Access Layer) in Delphi, die Treiber kapselt, Parameterisierung unterstützt und typische Betriebsanforderungen wie Pooling und Logging sauber abbilden kann.

    Warum Standardisierung wichtiger ist als „der perfekte Treiber“

    In Bestandsanwendungen findet man nicht selten Mischbetrieb: ein Teil nutzt ADO, ein anderer ODBC, ein dritter dbExpress. Das führt zu doppelter Konfiguration, unterschiedlichen Timeout- und Transaktionssemantiken und schwer vergleichbaren Fehlerbildern. Ziel der Modernisierung sollte sein:

    • ein einheitlicher Connection-Standard (inkl. Timeouts, Verschlüsselung, Application Name),
    • ein gemeinsames Fehler- und Loggingkonzept,
    • eine klar definierte Abstraktionsschicht zwischen UI/Service-Logik und SQL.

    ADO ersetzen oder kapseln?

    Viele Systeme nutzen ADO, weil es damals „einfach ging“. Heute ist ADO nicht automatisch falsch, aber häufig ein Hindernis für einheitliche Security-Defaults, Pooling-Strategien und Diagnose. In der Praxis gibt es zwei gangbare Wege:

    • Kapseln: ADO bleibt zunächst, aber es wird eine Datenzugriffs-Fassade eingeführt, damit neue Module bereits sauber angebunden werden.
    • Schrittweise ablösen: Module oder Use-Cases werden nacheinander auf FireDAC umgestellt, begleitet von Regressionstests und Parallelbetrieb.

    Welche Variante passt, hängt von Release-Druck, Testabdeckung und Komplexität der SQL-Logik ab – weniger von der reinen Anzahl der Formulare.

    Security in der Datenbankanbindung: TLS, Identitäten und Rechte sauber ziehen

    Aus Betriebssicht ist die Datenbankanbindung ein Security-Hauptthema. Es geht um Transportverschlüsselung, Identitäten, minimale Rechte und nachvollziehbare Konfiguration. Gerade bei gewachsenen Anwendungen sind Defaults oft historisch, nicht bewusst gewählt.

    Transportverschlüsselung (TLS) und Zertifikatsprüfung

    SQL Server kann Verbindungen per TLS verschlüsseln. Wichtig ist dabei nicht nur „Encrypt an“, sondern auch die Prüfung des Zertifikats und ein konsistentes Zertifikatsmanagement (z. B. saubere Subject Alternative Names). Sonst läuft man in die Falle: Verschlüsselung aktiv, aber durch „Trust Server Certificate“ faktisch ohne echte Prüfung.

    Für Administratoren zählt hier: Konfiguration muss reproduzierbar sein (GPO/Deployment), und Fehler müssen eindeutig werden (z. B. Zertifikat abgelaufen vs. DNS-Name falsch).

    SQL-Login vs. Windows Authentication

    SQL-pieteikšanās ir viegli izplatāmas, taču grūtāk droši uzturēt: paroļu rotācija, slepeno datu pārvaldība un ļaunprātīgas izmantošanas risks. Windows Authentication (integrētā pieslēgšanās) var uzņēmuma kontekstā dot priekšrocības, taču prasa skaidrus rāmjus: servisa kontiem, SPNs (Service Principal Names) un Kerberos ceļiem jābūt pareiziem, īpaši, ja piekļuve notiek caur vairākiem „hops“ (piem., no termināla servera uz datubāzi).

    Praktiski piemērota modernizācija bieži nozīmē: Windows Authentication priekš servera komponentēm (Windows- und Linux-Services, REST-Server) un skaidri reglamentēti pieteikšanās gadījumi īpašiem scenārijiem — katrā gadījumā ar minimālām tiesībām.

    Rechtekonzept: Weniger ist stabiler

    Pieejamības un noturības līmenis ir saistīts arī ar tiesībām. Pārāk plašas tiesības rada „blakusparādības“: negaidītas shēmas izmaiņas, datu dzēšanas vai biznesa noteikumu apietes. Pārbaudīta pieeja ir:

    • DB-Rollen pro Anwendung (lasīšana, rakstīšana, administratīvi atdalītas),
    • Eksplizītas tiesības nevis dalība plašās standarta lomās,
    • Skaidra atdalīšana DDL (shēmas izmaiņas) un DML (datu izmaiņas) caur izstrādes/izvietošanas procesiem.

    Performance und Stabilität: Verbindungspooling, Timeouts, Sperren

    Daudzas veiktspējas problēmas nav jautājums „SQL Server ir lēns“, bet gan nesakārtotu klientu stratēģiju sekas: pārāk daudz savienojumu, nepiemēroti timeauti, lietotāja interfeisa darbības pāri transakcijām vai neparametrizēti vaicājumi. Modernizācija šeit nozīmē: padarīt datu piekļuvi plānojamu.

    Verbindungen: Öffnen/Schließen vs. Pooling

    Darbstaciju lietojumprogrammās ierasts atvērt savienojumus pēc nepieciešamības. Servera procesos (Windows-Service, REST-Server) savienojumu pooling ir izšķirošs, lai absorbētu pieauguma slodzes. Pooling nozīmē: savienojumi tiek atkārtoti izmantoti, nevis katram pieprasījumam būvēti no jauna. Tas samazina pieteikšanās režijas izmaksas un stabilizē atbildes laikus.

    Darbināšanas pusē svarīgi ir: pooling prasa skaidrus limitus, jēgpilnus bezdarbības timeautus un monitoringu, lai „iestrēgušos“ savienojumus varētu pamanīt. Citādi problēmas tiek tikai pārbīdītas.

    Timeouts: drei Ebenen, ein Ziel

    SQL-Server scenārijos timeauti iedarbojas vairākos līmeņos: tīkla/soketa, pieteikšanās/handshake un komandu izpildes timeauts (Command-Timeout, izpildes laiks). Mūsdienīga pieslēgšana nozīmē: šīs vērtības apzināti iestatīt un katram lietošanas gadījumam pamatot (piem., interaktīva meklēšana vs. nakts bachtas izpilde).

    Darbināšanā jābūt iespējai izsekot, vai timeauts radušies trūkstošu indeksu, bloķēšanas vai tīkla problēmu dēļ. Tas strādā tikai tad, ja lietojumprogramma reģistrē kontekstu (vaicājuma tips, parametri, ilgums, servera nosaukums).

    Transaktionen und Sperren (Locking) beherrschbar machen

    Transakcijas ir centrāla stabilitātes tēma. Transakcija ir saistītu datu izmaiņu secība, kas stājas spēkā pilnībā vai nemaz. Praksē problēmas rodas, ja transakcijas paliek atvērtas pārāk ilgi — piemēram, ja UI darbības, lietotāja apstiprinājumi vai failu piekļuves notiek transakcijas ietvaros.

    Modernizācijas soļi, kas iedarbojas nekavējoties:

    • Transaktionsgrenzen pro fachlichem Vorgang definēt (piem., „Auftrag buchen“), nevis pēc formas.
    • Keine interaktiven Wartezeiten transakcijas ietvaros (dialogi, ilgas aprēķināšanas, drukāšana/PDF).
  • Deadlocks analysierbar machen: Fehlerbehandlung so erweitern, dass Deadlock-Opfer erkennbar sind und Wiederholstrategien gezielt eingesetzt werden können.
  • Wartbarkeit erhöhen: SQL kapseln, Parameterisierung erzwingen, Fehlerdiagnose verbessern

    Viele Delphi-Bestandsprojekte leiden weniger an „zu wenig Features“ als an unklarem Datenzugriff. Wartbarkeit entsteht, wenn SQL und Datenlogik nicht überall verteilt ist, sondern nachvollziehbar an wenigen Stellen liegt.

    SQL-Strings in der UI sind ein Wartungsrisiko

    Wenn jedes Formular eigene SQL-Strings zusammenbaut, wird jede Schemaänderung teuer. Außerdem steigen Security-Risiken (z. B. SQL Injection) und die Diagnose wird schwierig. Ein moderner Ansatz ist eine Data-Access-Schicht, die:

    • SQL-Statements zentral verwaltet (pro Modul/Use-Case),
    • Parameterisierung konsequent nutzt (statt String-Konkatenation),
    • Rückgabedaten in klaren Strukturen liefert (statt „Dataset überall“).

    Für Teams ohne große Entwicklerkapazität ist schon ein Zwischenschritt wertvoll: eine einheitliche Query-Fabrik und feste Regeln, wo SQL liegen darf.

    Stored Procedures vs. Inline SQL: Betriebsrealität statt Glaubensfrage

    Stored Procedures (gespeicherte Prozeduren im SQL Server) können Vorteile bringen: zentrale Logik, Rechtekonzepte, und oft stabilere Ausführungspläne. Inline SQL ist dafür schneller zu ändern und für viele Teams besser versionierbar im gleichen Release-Prozess wie die Anwendung.

    In der Praxis ist eine Mischstrategie üblich:

    • Kritische Schreibvorgänge (Buchungen, Bestandsbewegungen) eher prozedural, wenn Rechte und Konsistenz im Vordergrund stehen.
    • Leselastige Abfragen (Suchen, Listen, Reports) eher als versioniertes SQL in der Anwendung – aber sauber parametrisiert und getestet.

    Entscheidend ist weniger das „Wo“, sondern dass Deployments, Rollbacks und Abhängigkeiten klar sind.

    Fehlerdiagnose: vom Exception-Text zum betreibbaren Signal

    Viele Anwendungen loggen nur „Fehler beim Speichern“. Für Betrieb und 2nd-Level-Support ist das wertlos. Modernisierung bedeutet: strukturierte Fehlerinformationen, ohne sensible Daten zu leaken. Sinnvolle Log-Elemente sind:

    • Korrelation: Request-ID oder Vorgangs-ID, um Logzeilen zusammenzuführen.
    • Technischer Kontext: Server/Instanz, Datenbank, Login-Typ, Treiber, Dauer.
    • SQL-Klasse: Name der Abfrage/Use-Case, nicht zwingend kompletter SQL-Text.
    • Fehlerkategorie: Timeout, Deadlock, Constraint-Verletzung, Netzwerk, Login.

    Damit wird der Unterschied zwischen „wir sehen nur Symptome“ und „wir können Ursachen sauber eingrenzen“ in der Praxis sehr groß.

    Schema- und Datenänderungen: Migration planbar machen

    Wer die SQL-Server-Anbindung modernisiert, berührt fast immer auch das Schema: Datentypen, Indizes, Constraints, Collation, oder die Einführung neuer Tabellen für Integrationen. Ohne Migrationsdisziplin entsteht ein fragiles System, das auf einem Testsystem funktioniert, aber in Staging/Produktion bricht.

    Versionierte Datenbankmigrationen statt manueller Eingriffe

    Ein belastbarer Ansatz ist, Datenbankänderungen wie Anwendungsreleases zu behandeln: versioniert, wiederholbar, mit klaren Vorbedingungen. Das kann über Migrationsskripte, ein Deployment-Paket oder über einen Release-Job passieren. Wichtig ist nicht das Tool, sondern die Regel:

    • Keine „Handänderungen“ in Produktion ohne Nachvollziehbarkeit.
    • Rollback stratēģija vismaz kritiskām izmaiņām (vai skaidrāks „forward-only“ plāns).
    • Staging vide, kas reālistiski atspoguļo ražošanas datus (vajadzības gadījumā maskēšana).

    Datu tipi un Unicode: izvairīšanās no klusajām kļūdām

    Īpaši vecākās Delphi lietojumprogrammās vēsturiskie pieņēmumi (ANSI virknes, vecās kolācijas) satiekas ar mūsdienu prasībām (Unicode, daudzvalodība, jaunie klienti). SQL Server pusē NVARCHAR/Unicode tipi ir standarts. Modernizācija šeit nozīmē: apzināti noteikt, kā tiek risināta rakstzīmju kodēšana, kārtošana un salīdzināšana. Pretējā gadījumā radīsies grūti reproducējamas kļūdas meklēšanā, dublēšanas pārbaudē vai datu eksportā uz saskarnēm.

    Arhitektūra: datu piekļuvi atslēgt un atvērt saskarnēm

    Daudzos uzņēmumos Delphi lietojumprogramma vairs nav vienīgā: portāli, ārējie pakalpojumu sniedzēji, BI, DMS vai ERP integrācijas piekļūst tiem pašiem datiem. Ja modernizē datubāzes savienojumu, tas ir labs brīdis pielāgot arhitektūru tā, lai tā atbalstītu izaugsmi.

    Slāņošana: skaidras robežas starp UI, biznesa loģiku un datu piekļuvi

    Pārbaudīta prakse ir slāņu arhitektūra (piem., prezentācija, biznesa loģika, datu piekļuve). Tas šķiet abstrakti, taču darbībā tam ir ļoti konkreti efekti:

    • Izmaiņas ir lokalākas: jaunam laukam nav nepieciešamas 20 formas izmaiņas ar SQL virkņu iekļaušanu.
    • Tests kļūst iespējams: biznesa loģiku var izpildīt pret testa datiem bez reālas datubāzes savienojuma.
    • Drošību var īstenot centrāli: logēšana, tiesību pārbaudes, parametrizācija.

    Nākamajiem soļiem, piemēram, Delphi REST-API vai Delphi REST-API und REST-Server, šī atslēgšana ir pamats: tad netiek „datubāze atvērta internetam“, bet gan definēti izmantošanas gadījumi tiek nodrošināti kā saskarnes.

    Paralēlais darbs: vecas un jaunas datu piekļuves kontrolēti kombinēt

    Reālajā dzīvē ne vienmēr iespējams pāriet „Big Bang“ stilā. Pragmatisks piegājiens ir jaunos datu piekļuves kanālus nodot caur jauno standartu, kamēr vecās moduļu daļas turpina darboties. Svarīgi ir:

    • Vienoti transakciju noteikumi, lai divas tehnoloģijas nestrādātu viena pret otru.
    • Kopīga konfigurācija (serveri, DB, šifrēšana, laika noilgumi) no viena avota.
    • Skaidras migrācijas robežas: pa izmantošanas gadījumiem vai moduļiem, nevis „mazliet visur“.

    Darbība un administrēšana: konfigurācija, uzraudzība, izlaidumu process

    Modernizēts savienojums ar SQL Server ir pabeigts tikai tad, kad tas darbībā darbojas tīri: izsekojami parametri, skaidri žurnāli, plānojami izlaidumi un uzraudzība, kas rāda ne tikai CPU noslodzi, bet arī lietotnes problēmas.

    Konfigurācija: reproducējama un vides specifiska

    Attīstības, testa, staging un produkcijas vidēs atšķiras serveru nosaukumi, sertifikāti, autentifikācija un dažkārt pat datubāzu nosaukumi. To nevajadzētu risināt ar koda izmaiņām, bet gan ar skaidru konfigurācijas stratēģiju (fails, Secret-Store, izvietošanas parametri). Izšķiroši: tā pati būve, cita konfigurācija – un mehānisms, kas agrīni atklāj nepareizas konfigurācijas.

    Uzraudzība: lietojumprogrammas metrikas papildina SQL Server metrikas

    SQL Server piedāvā daudz diagnostikas iespēju (Wait Stats, Query Store, Blocking-Analysen). Pilnīgai situācijas izpratnei nepieciešamas arī lietojumprogrammas metrikas: atbildes laiki pa izmantošanas gadījumiem, kļūdu līmeņi, paralēlu datubāzes operāciju skaits, atkārtoti mēģinājumi pēc deadlock. Tas ļauj IT atbildīgajiem noteikt, vai problēma radušies datubāzē, tīklā vai lietojumprogrammā.

    Izlaides process: domāt par datubāzi un lietojumprogrammu kopā

    Ja Delphi-lietojumprogramma un datubāze tiek izvietotas atsevišķi, rodas tipiskas kļūdas: jaunā lietojumprogramma sagaida jaunu kolonnu, datubāzes migrācija vēl nav izrullēta (vai otrādi). Tāpēc mūsdienīgs izlaides process definē:

    • Secība (piem., migrācija vispirms, lietotne pēc tam),
    • Saderības logs (lietotnes versijas var noteiktu laiku darboties ar veco shēmu),
    • Smoke testi pēc izvietošanas (pieteikšanās, galvenie izmantošanas gadījumi, rakstīšanas operācija).

    Riska samazināšana projektos: modernizēt bez darbības pārtraukuma

    Tehniski daudz kas ir iespējams, taču projektu realitāte nozīmē: ierobežoti uzturēšanas logi, maza testa pārklājuma, darbībai jāturpinās. Labu praksi ir pierādījusi pieeja ar skaidrām etapām.

    Etapu plāns, kas darbojas esošajās vidēs

    1. Pamatstāvokļa noteikšana: dokumentēt pašreizējās kļūdu situācijas, time-outus, top-vaicājumus, servera konfigurāciju.
    2. Konfigurācijas standarta definēšana: Connection-String noteikumi, TLS/Trust-Policy, time-outi, Application Name.
    3. Ieviešiet jaunu datu piekļuvi: FireDAC (vai izvēlētais standarts) kā definētu slāni, sākotnēji izvēlētajiem izmantošanas gadījumiem.
    4. Uzlabot diagnostiku: logēšana, korelācija, kļūdu kategorijas, izvēles SQL-Trace funkcijas atbalsta gadījumā.
    5. Pakāpeniska aizvietošana: migrēt moduļus, papildināt regresijas testus, noņemt vecos ceļus.
    6. Drošināšana un ekspluatācija: monitorings, izlaides procesi, piekļuves tiesību koncepcijas finalizēšana.

    Svarīgākais: katra etape sniedz neatkarīgu ieguvumu. Tādējādi modernizācija ir pamatota arī tad, ja nav iespējams uzreiz pieskarties visai sistēmai.

    Noslēguma secinājums: mūsdienīga SQL Server pieslēgšana ir ekspluatācijas projekts, ne tikai tīrs refaktoringa darbs

    Modernizācija SQL Server pieslēgumā Delphi ir vairāk nekā komponentu nomaiņa. Tā skar drošības līmeni, diagnostikas spējas, izlaides stabilitāti un jautājumu, cik labi jūsu biznesa programmatūra spēj tikt galā ar augošajām prasībām. Tie, kas apzināti standartizē draiveru stratēģiju, autentifikāciju, transakciju dizainu un logēšanu, samazina operacionālos riskus un izveido pamatu turpmākiem soļiem, piemēram, REST saskarnēm, portāla pieslēgumiem vai pakāpeniskai Delphi modernizācijai.

    Ja vēlaties tehniski izturīgi attīstīt savu esošo Delphi vidi un strukturēti modernizēt SQL Server pieslēgumu, sazinieties ar mums:

    Nozaru kontekstā arī Delphi FireDAC SQL Server un Delphi Ado aizstāšana spēlē svarīgu lomu, ja integrācijām, datu plūsmām un turpmākajai attīstībai jādarbojas saskaņoti.

    Apspriest projektu vai modernizācijas iniciatīvu ar Net-Base.

    Nākamais solis

    Ja no tēmas rodas reāls projekts, arhitektūra, esošais stāvoklis un ekspluatācija būtu jāizskata kopā jau agri.

    Mēs atbalstām ne tikai atsevišķu jautājumu risināšanā, bet arī tad, kad no avota koda fragmentiem, mantojuma sistēmu jautājumiem vai portāla idejām jāizveido stabils uzņēmuma līmeņa projekts.

    • Esošais stāvoklis, mērķa stāvoklis un tehniskie riski tiek kopīgi vērtēti.
    • REST, datu piekļuve, portāli un izvēršana netiek atlikti kā vēlākas sekas.
    • Jūs savlaicīgi redzat, kurš ceļš ir ekonomiski un darbības ziņā dzīvotspējīgs.

    Kopīgot ierakstu

    Kopīgot šo ierakstu tieši

    LinkedIn, X, XING, Facebook, WhatsApp un e-pasts ir uzreiz pieejami. Instagramam saiti un īsu tekstu sagatavosim nekavējoties.

    E-pasts

    Instagram atveras jaunā cilnē. Saite un īss teksts tiek iepriekš nokopēti starpliktuvē.