Descriptions
Вызывается клиентом. Поколение изменений в таблице DETAIL. [in]A_CLIENT_ID - ID БД клиента. [in]A_SERV_GEN - поколение изменений на сервере, которое запросил клиент. Возвращает набор записей. [out]LOG_ACTION - действие которое должен выполнить клиент(I - вставить U - обновить D - удалить), Остальные выходные параметры - поля записи. В случае удаления все поля, кроме LOG_GID установлены в NULL
 
Input Parameters
Parameter | Type |
---|---|
A_CLIENT_ID |
INTEGER |
A_SERV_GEN |
INTEGER |
 
Output Parameters
Parameter | Type |
---|---|
LOG_GID |
NUMERIC (18, 0) |
LOG_OWN_GEN |
INTEGER |
LOG_ACTION |
CHAR (1) |
DATA |
VARCHAR (255) |
MASTER_GID |
NUMERIC (18, 0) |
 
Definition
CREATE PROCEDURE DETAIL_GEN (
A_CLIENT_ID INTEGER,
A_SERV_GEN INTEGER)
RETURNS (
LOG_GID NUMERIC (18, 0),
LOG_OWN_GEN INTEGER,
LOG_ACTION CHAR (1),
DATA VARCHAR (255),
MASTER_GID NUMERIC (18, 0))
AS
DECLARE VARIABLE LOG_UPD_GEN INTEGER;
DECLARE VARIABLE LOG_INS_GEN INTEGER;
DECLARE VARIABLE LOG_IS_DELETED INTEGER;
BEGIN
FOR
SELECT
LOG_GID,
LOG_UPD_GEN,
LOG_INS_GEN,
LOG_IS_DELETED,
LOG_OWN_GEN,
/*-------TABLE SPECIFIC--------*/
DATA,
MASTER_GID
FROM
LOG_DETAIL LEFT JOIN DETAIL ON LOG_GID = GID
WHERE
LOG_UPD_GEN IS NOT NULL/*С установленным поколением(если LOG_INS_GEN не установлено, то LOG_UPD_GEN тоже не установлено)*/
AND LOG_DB_ID <> :A_CLIENT_ID/*Только ÷ужие*/
INTO
:LOG_GID,
:LOG_UPD_GEN,
:LOG_INS_GEN,
:LOG_IS_DELETED,
:LOG_OWN_GEN,
/*-------TABLE SPECIFIC--------*/
:DATA,
:MASTER_GID
DO
BEGIN
IF( LOG_INS_GEN = A_SERV_GEN )THEN
BEGIN
LOG_ACTION = 'I';/*Клиент должен вставить или обновить запись, если она ещ¸ не удалена*/
IF( LOG_IS_DELETED = 0 )THEN SUSPEND;/*Если запись не была удалена в том же поколении в кот. вставлена*/
END
ELSE IF( LOG_UPD_GEN = A_SERV_GEN )THEN
BEGIN
IF( LOG_IS_DELETED <> 0 ) THEN LOG_ACTION = 'D';/*Клиент должен удалить запись, если она ещ¸ не удалена*/
ELSE LOG_ACTION = 'U';/*Клиент должен обновить запись, если она ещ¸ не удалена*/
SUSPEND;
END
END
END
This file was generated with EMS InterBase/FireBird Manager (www.ibmanager.com) at 11/13/2006 10:51 PM |
![]() ![]() ![]() |