GD P GETRUID

Материал из GedeminWiki
Перейти к: навигация, поиск

Процедура применяется для получения и/или создания РУИДа объекта. Следующий запрос покажет РУИДы для записей из таблицы GD_CONTACT:

SELECT
  c.id, c.name, r.xid, r.dbid
FROM
  gd_contact c JOIN gd_p_getruid(c.id) r ON 1=1

Отсутствующие РУИДы будут созданы в процессе выполнения данного запроса.

Исходный код

CREATE OR ALTER PROCEDURE GD_P_GETRUID (
    ID INTEGER)
RETURNS (
    XID INTEGER,
    DBID INTEGER)
AS
BEGIN
  XID = NULL;
  DBID = NULL;
 
  IF (NOT :ID IS NULL) THEN
  BEGIN
    IF (:ID < 147000000) THEN
    BEGIN
      XID = :ID;
      DBID = 17;
    END ELSE
    BEGIN
      SELECT xid, dbid
      FROM gd_ruid
      WHERE id=:ID
      INTO :XID, :DBID;
 
      IF (XID IS NULL) THEN
      BEGIN
        XID = ID;
        DBID = GEN_ID(gd_g_dbid, 0);
 
        INSERT INTO gd_ruid(id, xid, dbid, modified, editorkey)
          VALUES(:ID, :XID, :DBID, CURRENT_TIMESTAMP, NULL);
      END
    END
  END
 
  SUSPEND;
END

См. также

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты