Een transactie
Een transactie bestaat in principe uit de volgende acties:
Tabel (bestand) adresseren, regels selecteren en naar de result-set
overdragen.
Regels uit de result-set lezen, wijzigen en/of nieuwe regels
invoegen.
Transactie afsluiten. Bij wijzigingen/toevoegingen worden de regels
uit de result-set in de tabel (het bestand) overgenomen.
Er zijn echter meer acties nodig om tabelgegevens in het NC-
programma te kunnen bewerken en om te voorkomen dat dezelfde
tabelregels parallel worden gewijzigd. Hieruit volgt de volgende
uitvoering van een transactie:
1 Voor elke te bewerken kolom wordt een Q-parameter
gespecificeerd. De Q-parameter wordt aan de kolom toegewezen
– hij wordt gekoppeld (SQL BIND...).
2 Tabel (bestand) adresseren, regels selecteren en naar de result-set
overdragen. U moet bovendien opgeven welke kolommen in de
result-set moeten worden overgenomen (SQL SELECT...).
U kunt de geselecteerde regels blokkeren. Andere processen
hebben dan weliswaar leestoegang tot deze regels, maar de
tabelgegevens veranderen niet. U moet altijd de geselecteerde
regels blokkeren wanneer er wijzigingen worden uitgevoerd (SQL
SELECT ... FOR UPDATE).
3 Regels uit de result-set lezen, wijzigen en/of nieuwe regels
invoegen:
– Een regel van de result-set in de Q-parameters van uw NC-
programma overnemen (SQL FETCH...)
– Wijzigingen in de Q-parameters voorbereiden en naar een regel
van de result-set overdragen (SQL UPDATE...)
– Nieuwe tabelregel in de Q-parameters voorbereiden en als
nieuwe regel aan de result-set doorgeven (SQL INSERT...)
4 Transactie afsluiten.
– Tabelgegevens zijn gewijzigd/aangevuld: de gegevens worden
uit de result-set in de tabel (het bestand) overgenomen. Ze zijn nu
in het bestand opgeslagen. Eventuele blokkeringen worden
gereset, de result-set wordt vrijgegeven (SQL COMMIT...).
– Tabelgegevens zijn niet gewijzigd/aangevuld (alleen
leestoegang): Eventuele blokkeringen worden gereset, de result-
set wordt vrijgegeven (SQL ROLLBACK... ZONDER INDEX).
U kunt meerdere transacties parallel bewerken.
Een gestarte transactie moet beslist worden afgesloten –
ook wanneer u uitsluitend gebruikmaakt van leestoegang.
Alleen dan is gewaarborgd dat wijzigingen/aanvullingen
niet verloren gaan, blokkeringen worden opgeheven en de
result-set wordt vrijgegeven.
424
10 Programmeren: Q-parameters