Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Firebird 3.0 in einer SP (Multiuser-Umfeld) ein Wert ändern

  Alt 8. Mai 2022, 20:43
Sorry,

so sieht meine Methode derzeit aus.

Code:
create or alter procedure GetNextCharge(ChargeID integer)
returns (
    NextCharcheNr integer)
as
declare variable vergleich1 integer;
declare variable vergleich2 integer;
begin

  Vergleich1 = 0;
  Vergleich2 = -1;

  while (Vergleich1 <> Vergleich2) do
  begin

    /* aktuelle CharcheNr abfragen */
    select CharcheNr
    from Chargen
    where ChargeID = :ChargeID
    into :Vergleich1;

    /* CharcheNr inkrementieren */
    Vergleich1 = Vergleich1 + 1;

    /* CharcheNr schreiben */
    update Chargen
       set CharcheNr = :Vergleich1
    where ChargeID = :ChargeID;

    /* zum Vergleich abfragen */
    select CharcheNr
    from Chargen
    where ChargeID = :ChargeID
    into :Vergleich2;

    /* wenn gleich raus ansonsten wiederholen */
    if (vergleich2 = vergleich1) then
    begin
      NextCharcheNr = :vergleich1;
      suspend;
    end
  end
end
  Mit Zitat antworten Zitat