AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Sequence liefert immer gleichen Wert
Thema durchsuchen
Ansicht
Themen-Optionen

Sequence liefert immer gleichen Wert

Ein Thema von skyobserver · begonnen am 12. Mai 2014 · letzter Beitrag vom 13. Mai 2014
Antwort Antwort
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Sequence liefert immer gleichen Wert

  Alt 12. Mai 2014, 16:34
Datenbank: DB400 • Version: V5R3M0 • Zugriff über: AnyDac v1.12.2
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?
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Sequence liefert immer gleichen Wert

  Alt 12. Mai 2014, 16:45
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von skyobserver
skyobserver

Registriert seit: 18. Mai 2005
Ort: Ense
114 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Sequence liefert immer gleichen Wert

  Alt 13. Mai 2014, 08:27
Ü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
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;
Die größte Enttäuschung für einen Perfektionisten ist die Realität
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz