Дубль. Журнал дубликатов
EXECUTE block
/*
* Автор Коробка А.А.
*
* Ведение журнала учета дубликатов карт
*/
AS
DECLARE pcode TYPE OF COLUMN clients.pcode;
DECLARE verno INTEGER;
DECLARE adddcode TYPE OF COLUMN doctor.dcode;
DECLARE outdcode TYPE OF COLUMN doctor.dcode;
BEGIN
-- 1. экспорт пациентов - дублей
FOR SELECT pcode, 0, CASE WHEN c.createdate>current_date-1 THEN uid ELSE NULL END FROM clients c
WHERE c.cstatus=994045364
INTO pcode, verno, adddcode do
BEGIN
EXECUTE statement ('update or insert into CL$DUBLE_JORNAL(pcode, verno, adddcode, mdate) values ( ? , ? , ? , current_date) matching (pcode, verno)')
(pcode, verno, adddcode)
ON external '192.168.2.10:meta' AS USER 'CHEA' password 'PDNTP';
END
-- 2. список не экспортированных pcode
FOR EXECUTE statement ('select pcode from CL$DUBLE_JORNAL where mdate<current_date and verno=0')
ON external '192.168.2.10:meta' AS USER 'CHEA' password 'PDNTP'
INTO pcode do
BEGIN
-- 2.1 ищем по журналу объединений [PCODE]
IF (EXISTS(SELECT * FROM clientjoinlist WHERE pcode= :pcode )) THEN
BEGIN
outdcode = NULL;
SELECT FIRST 1 uid FROM clientjoinlist WHERE pcode= :pcode ORDER BY modifydate DESC
INTO outdcode;
EXECUTE statement ('update CL$DUBLE_JORNAL set outdate=current_date-1, outtype=1, outdcode= ? where verno=0 and pcode= ? ')
(outdcode, pcode)
ON external '192.168.2.10:meta' AS USER 'CHEA' password 'PDNTP';
END
-- 2.2 ищем по журналу объединений [MAINPCODE]
ELSE IF (EXISTS(SELECT * FROM clientjoinlist WHERE mainpcode= :pcode )) THEN
BEGIN
outdcode = NULL;
SELECT FIRST 1 uid FROM clientjoinlist WHERE mainpcode= :pcode ORDER BY modifydate DESC
INTO outdcode;
EXECUTE statement ('update CL$DUBLE_JORNAL set outdate=current_date-1, outtype=2, outdcode= ? where verno=0 and pcode= ? ')
(outdcode, pcode)
ON external '192.168.2.10:meta' AS USER 'CHEA' password 'PDNTP';
END
-- 2.3 исправлена ошибка, не известно кем
ELSE
BEGIN
EXECUTE statement ('update CL$DUBLE_JORNAL set outdate=current_date-1, outtype=3 where verno=0 and pcode= ? ')
(pcode)
ON external '192.168.2.10:meta' AS USER 'CHEA' password 'PDNTP';
END
END
END
администрирование/скрипты/цбд/дубликаты/дубль.журнал.дубликатов.txt · Последние изменения: 2017/08/11 17:02 (внешнее изменение)