Prozeduren Previous topic Chapter index Next topic

IS_RECORD_LOCKED_SESSION

 

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

Gibt an ob dies schon gelocked ist.

 

Beschreibung

Prüft bei den DABiS Premium Modulen, ob ein Datensatz für eine bestimmte Session/Server-Kombination reserviert ist.

 

Definition

CREATE PROCEDURE IS_RECORD_LOCKED_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
  /* prueft, ob ein Datensatz fuer eine bestimmte Session/Server-Kombination 
     reserviert ist */
  
  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 ((currentsessionid = sessionid) and (currentserverid = serverid)) then
    begin
      result = 1;
    end
  end
end

 

     Previous topic Chapter index Next topic