![]() |
Datenbank: DB400 • Version: V5R3M0 • Zugriff über: AnyDac v1.12.2
Sequence liefert immer gleichen Wert
Hallo,
auf unserer AS400-Datenbank gibt es eine Sequence, welche von mehreren Programmen angefragt wird - klappt auch alles soweit super... Ein neues Programm verwendet AnyDac statt BDE für den Datenbankzugriff und zeigt dabei ein mekrwürdiges Verhalten: Wenn ich die Sequence zum ersten mal anfrage wird korrekterweise der nächste Sequence-Wert zurückgegeben. Bei allen folgenden Anfragen wird dann immer nur noch dieser erste Wert zurückgeliefert - bis ich das Programm schließe (sprich Datenbankverbindung getrennt)und neu starte - dann bekomme ich wieder einen korrekten neuen Wert und anschließend immer wieder den gleichen... Hat jemand eine Idee? |
AW: Sequence liefert immer gleichen Wert
So ganz ohne zu wissen was Du da treibst (Source), eher nicht.
Und warum fragst Du den Wert ab? im Allgem. wir der ja nur bei einem INSERT genutzt, z.B. um eine ID zu generieren. Gruß K-H |
AW: Sequence liefert immer gleichen Wert
Üblicherweise erzeugen wir beim INSERT eines Datensatzes Record-IDs in dem
ein Trigger die Sequence abfragt und den zurückgegebenen Wert automatisch einträgt... Einige alte Tabellen haben diese automatik noch nicht - dank 24h/7d-Betrieb :wink: ist die Tabelle auch dauerhaft in Benutzung so das der Trigger noch nicht nachträglich installiert werden konnte. Einige Programme beziehen daher über eine Funktion in einem Delphi-Datenmodul die Record-ID über eine Abfrage der Sequence:
Code:
function TdmEvent.GetEventId: Integer;
begin try adqryDb2.SQL.Text := 'SELECT NEXT VALUE FOR EVENTID_SEQ FROM SYSIBM.SYSDUMMY1'; adqryDb2.Open; try Result := adqryDb2.Fields[0].AsInteger; finally adqryDb2.Close; end; except Result := -1; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz