GD P GETRUID

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: « <syntaxhighlight lang="SQL"> create or alter procedure GD_P_GETRUID ( ID integer) returns ( XID integer, DBID integer) as BEGIN XID = NULL; DBID = N…»)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 +
Процедура применяется для получения и/или создания РУИДа объекта. Следующий запрос покажет РУИДы для записей из таблицы [[GD_CONTACT]]:
 +
 +
<syntaxhighlight lang="SQL">
 +
SELECT
 +
  c.id, c.name, r.xid, r.dbid
 +
FROM
 +
  gd_contact c JOIN gd_p_getruid(c.id) r ON 1=1
 +
</syntaxhighlight>
 +
 +
Отсутствующие РУИДы будут созданы в процессе выполнения данного запроса.
 +
 +
====Исходный код====
  
 
<syntaxhighlight lang="SQL">
 
<syntaxhighlight lang="SQL">
Строка 39: Строка 51:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[Category:База данных]]
+
====См. также====
 +
 
 +
* [[RUID]]
 +
 
 +
[[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

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

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

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