Обсуждение:Перенос данных на чистую базу (постановка)

Материал из GedeminWiki
Версия от 17:15, 12 сентября 2011; Evgeny (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Код добавления идентификаторов в множество, которые нужно перенести на чистую базу данных(для таблицы GD_DOCUMENT):


EXECUTE BLOCK(Num integer = :num)
AS
  DECLARE VARIABLE ID INTEGER;
  DECLARE VARIABLE PARENT INTEGER;
  DECLARE VARIABLE DOCUMENTTYPEKEY INTEGER;
  DECLARE VARIABLE TRTYPEKEY INTEGER;
  DECLARE VARIABLE TRANSACTIONKEY INTEGER;
  DECLARE VARIABLE NUMBER VARCHAR(20) CHARACTER SET WIN1251;
  DECLARE VARIABLE DOCUMENTDATE DATE;
  DECLARE VARIABLE DESCRIPTION VARCHAR(180) CHARACTER SET WIN1251;
  DECLARE VARIABLE SUMNCU NUMERIC(15,4);
  DECLARE VARIABLE SUMCURR NUMERIC(15,4);
  DECLARE VARIABLE SUMEQ NUMERIC(15,4);
  DECLARE VARIABLE DELAYED SMALLINT;
  DECLARE VARIABLE AFULL INTEGER;
  DECLARE VARIABLE ACHAG INTEGER;
  DECLARE VARIABLE AVIEW INTEGER;
  DECLARE VARIABLE CURRKEY INTEGER;
  DECLARE VARIABLE COMPANYKEY INTEGER;
  DECLARE VARIABLE CREATORKEY INTEGER;
  DECLARE VARIABLE CREATIONDATE TIMESTAMP;
  DECLARE VARIABLE EDITORKEY INTEGER;
  DECLARE VARIABLE EDITIONDATE TIMESTAMP;
  DECLARE VARIABLE PRINTDATE DATE;
  DECLARE VARIABLE DISABLED SMALLINT;
  DECLARE VARIABLE RESERVED INTEGER;
  DECLARE VARIABLE USR$EQRATE NUMERIC(15,4);
  DECLARE VARIABLE I INTEGER = 0;
  DECLARE VARIABLE J INTEGER = 1;
BEGIN 
  g_his_create(I);
  g_his_create(J);
FOR
 SELECT  ID,PARENT,DOCUMENTTYPEKEY,TRTYPEKEY,TRANSACTIONKEY,NUMBER,DOCUMENTDATE,DESCRIPTION,SUMNCU,
   SUMCURR,SUMEQ,DELAYED,AFULL,ACHAG,AVIEW,CURRKEY,COMPANYKEY,CREATORKEY,CREATIONDATE,
   EDITORKEY,EDITIONDATE,PRINTDATE,DISABLED,RESERVED,USR$EQRATE
 FROM GD_DOCUMENT
 INTO :ID,:PARENT,:DOCUMENTTYPEKEY,:TRTYPEKEY,:TRANSACTIONKEY,:NUMBER,:DOCUMENTDATE,:DESCRIPTION,
   :SUMNCU,:SUMCURR,:SUMEQ,:DELAYED,:AFULL,:ACHAG,:AVIEW,:CURRKEY,:COMPANYKEY,
   :CREATORKEY,:CREATIONDATE,:EDITORKEY,:EDITIONDATE,:PRINTDATE,:DISABLED,:RESERVED,:USR$EQRATE
DO BEGIN
 g_his_include(J, :id);
 g_his_exclude(I, :id);
 if (g_his_has(J,:PARENT) = 0) then
   g_his_include(I, :PARENT);
 if (g_his_has(J,:DOCUMENTTYPEKEY) = 0) then
  g_his_include(I, :DOCUMENTTYPEKEY);
 if (g_his_has(J,:TRTYPEKEY) = 0) then
   g_his_include(I, :TRTYPEKEY);
 if (g_his_has(J,:TRANSACTIONKEY) = 0) then
   g_his_include(I, :TRANSACTIONKEY);
 if (g_his_has(J,:CURRKEY) = 0) then
   g_his_include(I, :CURRKEY);
 if (g_his_has(J,:COMPANYKEY) = 0) then
   g_his_include(I, :COMPANYKEY);
 if (g_his_has(J,:CREATORKEY) = 0) then
   g_his_include(I, :CREATORKEY);
 if (g_his_has(J,:EDITORKEY) = 0) then
   g_his_include(I, :EDITORKEY);
END
FOR
 SELECT ID,PARENT,DOCUMENTTYPEKEY,TRTYPEKEY,TRANSACTIONKEY,NUMBER,DOCUMENTDATE,DESCRIPTION,SUMNCU,
   SUMCURR,SUMEQ,DELAYED,AFULL,ACHAG,AVIEW,CURRKEY,COMPANYKEY,CREATORKEY,CREATIONDATE,EDITORKEY,
   EDITIONDATE,PRINTDATE,DISABLED,RESERVED,USR$EQRATE
 FROM GD_DOCUMENT
 INTO :ID,:PARENT,:DOCUMENTTYPEKEY,:TRTYPEKEY,:TRANSACTIONKEY,:NUMBER,:DOCUMENTDATE,:DESCRIPTION,
   :SUMNCU,:SUMCURR,:SUMEQ,:DELAYED,:AFULL,:ACHAG,:AVIEW,:CURRKEY,:COMPANYKEY,:CREATORKEY,
   :CREATIONDATE,:EDITORKEY,:EDITIONDATE,:PRINTDATE,:DISABLED,:RESERVED,:USR$EQRATE
 DO BEGIN
   if (g_his_has(J, :parent) = 1) then
   begin
     g_his_include(J, :id);
     g_his_exclude(I, :id);
     if (g_his_has(J,:PARENT) = 0) then
       g_his_include(I, :PARENT);
     if (g_his_has(J,:DOCUMENTTYPEKEY) = 0) then
       g_his_include(I, :DOCUMENTTYPEKEY);
     if (g_his_has(J,:TRTYPEKEY) = 0) then
       g_his_include(I, :TRTYPEKEY);
     if (g_his_has(J,:TRANSACTIONKEY) = 0) then
       g_his_include(I, :TRANSACTIONKEY);
     if (g_his_has(J,:CURRKEY) = 0) then
       g_his_include(I, :CURRKEY);
     if (g_his_has(J,:COMPANYKEY) = 0) then
       g_his_include(I, :COMPANYKEY);
     if (g_his_has(J,:CREATORKEY) = 0) then
       g_his_include(I, :CREATORKEY);
     if (g_his_has(J,:EDITORKEY) = 0) then
       g_his_include(I, :EDITORKEY);
     END
 END
END
Персональные инструменты
Пространства имён

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