Eingabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
TYPENAME |
VARCHAR(100) |
Typ Name |
RECORDID |
INTEGER |
Record ID |
SESSIONID |
VARCHAR(255) |
Session ID |
SERVERID |
VARCHAR(100) |
Server ID |
Ausgabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
RESULT |
SMALLINT |
Rückgabe Wert: |
Beschreibung
Entfernt bei den DABiS Premium Modulen den Lock von einem bestimmten Datensatz, wenn der Datensatz für eine bestimmte Session/Server-Kombination reserviert wurde.
Definition
CREATE PROCEDURE RELEASE_RECORD_SESSION(
TYPENAME VARCHAR(100),
RECORDID INTEGER,
SESSIONID VARCHAR(255),
SERVERID VARCHAR(100))
RETURNS (
RESULT SMALLINT)
AS
declare variable CURRENTSERVERID varchar(100);
declare variable CURRENTSESSIONID varchar(255);
declare variable CURRENTLOCKTIME date;
declare variable CURRENTRECORDID integer;
begin
/* entfernt den lock von einem bestimmten datensatz,
wenn der datensatz fuer eine bestimmte session/server-
kombination reserviert wurde. */
result = 0;
currentrecordid = null;
/* Testen, ob es den Record gibt
spaeter vielleicht
if (typename = 'BLOCK') then
begin
select BKID from bloecke where bloecke.bkid = :RECORDID into :currentrecordid;
end
else if (typename = '') then
begin
OK = 1;
end
*/
/* testweise, bis die existenz des records ermittelt wird (s.o.)*/
currentrecordid = recordid;
if (currentrecordid is not null) then
begin
select RLSESSIONID, RLLOCKTIME, RLSERVERID from RECORDLOCKS where RLTYPENAME = :typename and RLRECORDID = :recordid into :CURRENTSESSIONID, :CURRENTLOCKTIME, :CURRENTSERVERID;
if (currentlocktime IS NULL) then
begin
/* es gibt keinen lock auf den record:
es gibt daher nichts zu loeschen, aber auch keinen fehler */
result = 1;
end else if ((currentsessionid = sessionid) and (currentserverid = serverid)) then
begin
delete from recordlocks where rltypename = :typename and rlrecordid = :recordid;
result = 1;
end else
begin
/* es gibt einen lock auf den record, aber dieser gehoert einer
fremden session > fehler, loeschen verboten */
result = 2;
end
end
end
![]() ![]() ![]() |