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