GD P GETRUID

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
 
 
Процедура применяется для получения и/или создания РУИДа объекта. Следующий запрос покажет РУИДы для записей из таблицы [[GD_CONTACT]]:  
 
Процедура применяется для получения и/или создания РУИДа объекта. Следующий запрос покажет РУИДы для записей из таблицы [[GD_CONTACT]]:  
  
Строка 56: Строка 55:
 
* [[RUID]]
 
* [[RUID]]
  
[[Category:База данных]]
+
[[Category:Хранимые процедуры]]

Текущая версия на 13:59, 9 августа 2013

Процедура применяется для получения и/или создания РУИДа объекта. Следующий запрос покажет РУИДы для записей из таблицы 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

[править] См. также

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

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