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