<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://gsbelarus.com:80/gs/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=GD_FUNCTION</id>
		<title>GD FUNCTION - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://gsbelarus.com:80/gs/wiki/index.php?action=history&amp;feed=atom&amp;title=GD_FUNCTION"/>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=GD_FUNCTION&amp;action=history"/>
		<updated>2026-07-17T00:10:45Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.16</generator>

	<entry>
		<id>https://gsbelarus.com:80/gs/wiki/index.php?title=GD_FUNCTION&amp;diff=3517&amp;oldid=prev</id>
		<title>SYSDBA: Новая страница: «&lt;syntaxhighlight lang=&quot;SQL&quot;&gt; CREATE TABLE gd_function (   id               dintkey,                     /* Первичный ключ */   module           dtext40,…»</title>
		<link rel="alternate" type="text/html" href="https://gsbelarus.com:80/gs/wiki/index.php?title=GD_FUNCTION&amp;diff=3517&amp;oldid=prev"/>
				<updated>2010-06-04T09:36:45Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;lt;syntaxhighlight lang=&amp;quot;SQL&amp;quot;&amp;gt; CREATE TABLE gd_function (   id               dintkey,                     - ‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Первичный ключ: &lt;/span&gt;   module           dtext40,…»&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;SQL&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TABLE gd_function&lt;br /&gt;
(&lt;br /&gt;
  id               dintkey,                     /* Первичный ключ */&lt;br /&gt;
  module           dtext40,                     /* Модуль */&lt;br /&gt;
  language         dtext10,                     /* Язык программирования */&lt;br /&gt;
  name             dlongname,                   /* Наименование функции */&lt;br /&gt;
  comment          dtext180,                    /* Комментарий к функции */&lt;br /&gt;
  script           dscript,                     /* Текст функции */&lt;br /&gt;
  displayscript    dscript,                     /* Видимый текст функции *//*Данное поле можно удалить*/&lt;br /&gt;
&lt;br /&gt;
  afull            dsecurity,                   /* Права доступа полные *//*Данное поле можно удалить*/&lt;br /&gt;
  achag            dsecurity,                   /* Права доступа на изменения *//*Данное поле можно удалить*/&lt;br /&gt;
  aview            dsecurity,                   /* права доступа на просмотр *//*Данное поле можно удалить*/&lt;br /&gt;
  modifydate       dtimestamp,                  /*Данное поле можно удалить*/&lt;br /&gt;
&lt;br /&gt;
  testresult       dblob80,                     /* Поле для отчетов. Для хранения пустой структуры. */&lt;br /&gt;
  ownername        dtext40,                     /*Данное поле можно удалить*/&lt;br /&gt;
  functiontype     dfunctiontype,               /*Данное поле можно удалить*/&lt;br /&gt;
  event            dtext40,&lt;br /&gt;
&lt;br /&gt;
  localname        dtext40,                     /* Название функции на русском языке *//*Данное поле можно удалить*/&lt;br /&gt;
  publicfunction   dboolean DEFAULT 1 NOT NULL, /* Внутрення или внешняя функция *//*Данное поле можно удалить*/&lt;br /&gt;
  shortcut         dtext10,                     /* Горячая клавиша *//*Данное поле можно удалить*/&lt;br /&gt;
  groupname        dtext20,                     /* Название группы *//*Данное поле можно удалить*/&lt;br /&gt;
&lt;br /&gt;
  modulecode       dinteger NOT NULL,           /* код модуля */&lt;br /&gt;
  enteredparams    dblob80,&lt;br /&gt;
  reserved         dinteger,                    /* Зарезервировано */&lt;br /&gt;
  inheritedrule    dinheritedrule,              /* Поле для событий указывает на момент&lt;br /&gt;
                                                   перекрытия. Оно может принимать три значения:&lt;br /&gt;
                                                    0 - перекрывать полностью;&lt;br /&gt;
                                                    1 - вызывать родительский обработчик до скрипт-функции;&lt;br /&gt;
                                                    2 - вызывать обработчик после выполнения скрипт-функции.*/&lt;br /&gt;
  breakpoints      dblob80,                     /* Поле хранит информацию о точках прерывания*/&lt;br /&gt;
  usedebuginfo     dboolean,                    /* Указывает на необходимость использования отладчика при запуске функции*/&lt;br /&gt;
                                                /*Данное поле можно удалить*/&lt;br /&gt;
  editorstate      dblob80,                     /* Хранится положение курсора редактора, закладки и т.п.*/&lt;br /&gt;
  editiondate      deditiondate,                /* Дата последнего редактирования */&lt;br /&gt;
  editorkey        dintkey                      /* Ссылка на пользователя, который редактировал запись*/&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE gd_function ADD CONSTRAINT gd_pk_function&lt;br /&gt;
  PRIMARY KEY (id);&lt;br /&gt;
&lt;br /&gt;
/* пакуль што мы падтрымлiваем 1 мову */&lt;br /&gt;
ALTER TABLE gd_function ADD CONSTRAINT gd_chk_function_language&lt;br /&gt;
  CHECK (language IN ('JScript', 'VBScript'));&lt;br /&gt;
&lt;br /&gt;
/* назва функцыi павiнна быць унiкальнай */&lt;br /&gt;
/* у межах аднаго модулю                 */&lt;br /&gt;
CREATE UNIQUE INDEX gd_x_function_name ON gd_function&lt;br /&gt;
  (name, modulecode);&lt;br /&gt;
&lt;br /&gt;
CREATE INDEX gd_x_function_module ON gd_function&lt;br /&gt;
  (module);&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE gd_function ADD CONSTRAINT gd_fk_function_editorkey&lt;br /&gt;
  FOREIGN KEY(editorkey) REFERENCES gd_people(contactkey)&lt;br /&gt;
  ON UPDATE CASCADE;&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&lt;br /&gt;
CREATE GENERATOR gd_g_functionch;&lt;br /&gt;
SET GENERATOR gd_g_functionch TO 1;&lt;br /&gt;
&lt;br /&gt;
COMMIT;&lt;br /&gt;
&lt;br /&gt;
SET TERM ^ ;&lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER gd_function_ad_ch FOR gd_function&lt;br /&gt;
AFTER DELETE POSITION 32000&lt;br /&gt;
AS&lt;br /&gt;
  DECLARE VARIABLE I INTEGER;&lt;br /&gt;
BEGIN&lt;br /&gt;
  I = GEN_ID(gd_g_functionch, 1);&lt;br /&gt;
END&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER gd_bi_function FOR gd_function&lt;br /&gt;
  BEFORE INSERT&lt;br /&gt;
  POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
BEGIN&lt;br /&gt;
  IF (NEW.ID IS NULL) THEN&lt;br /&gt;
    NEW.ID = GEN_ID(gd_g_unique, 1) + GEN_ID(gd_g_offset, 0);&lt;br /&gt;
&lt;br /&gt;
/*  NEW.modifydate = 'NOW';*/&lt;br /&gt;
&lt;br /&gt;
  IF (NEW.modulecode IS NULL) then&lt;br /&gt;
    NEW.modulecode = 1010001;/*ид апликатион*/&lt;br /&gt;
  IF (NEW.publicfunction IS NULL) then&lt;br /&gt;
    NEW.publicfunction = 0;&lt;br /&gt;
END&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER gd_bu_function FOR gd_function&lt;br /&gt;
  BEFORE UPDATE&lt;br /&gt;
  POSITION 0&lt;br /&gt;
AS&lt;br /&gt;
BEGIN&lt;br /&gt;
  IF (NEW.modulecode IS NULL) then BEGIN&lt;br /&gt;
    IF (OLD.modulecode IS NULL) THEN&lt;br /&gt;
      NEW.modulecode = 1010001;&lt;br /&gt;
    ELSE&lt;br /&gt;
      NEW.modulecode = OLD.modulecode;            &lt;br /&gt;
  END&lt;br /&gt;
  IF (NEW.publicfunction IS NULL) then BEGIN&lt;br /&gt;
    IF (OLD.publicfunction IS NULL) THEN          &lt;br /&gt;
      NEW.publicfunction = 0;                     &lt;br /&gt;
    ELSE                                          &lt;br /&gt;
      NEW.publicfunction = OLD.publicfunction;    &lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
^  &lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER gd_bi_function5 FOR gd_function&lt;br /&gt;
  BEFORE INSERT POSITION 5&lt;br /&gt;
AS&lt;br /&gt;
BEGIN&lt;br /&gt;
  IF (NEW.editorkey IS NULL) THEN&lt;br /&gt;
    NEW.editorkey = 650002;&lt;br /&gt;
 IF (NEW.editiondate IS NULL) THEN&lt;br /&gt;
    NEW.editiondate = CURRENT_TIMESTAMP;&lt;br /&gt;
END&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
CREATE TRIGGER gd_bu_function5 FOR gd_function&lt;br /&gt;
  BEFORE UPDATE POSITION 5&lt;br /&gt;
AS&lt;br /&gt;
BEGIN&lt;br /&gt;
  IF (NEW.editorkey IS NULL) THEN&lt;br /&gt;
    NEW.editorkey = 650002;&lt;br /&gt;
  IF (NEW.editiondate IS NULL) THEN&lt;br /&gt;
    NEW.editiondate = CURRENT_TIMESTAMP;&lt;br /&gt;
END&lt;br /&gt;
^&lt;br /&gt;
&lt;br /&gt;
SET TERM ; ^&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:База данных]]&lt;/div&gt;</summary>
		<author><name>SYSDBA</name></author>	</entry>

	</feed>