powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Коэффициент инбридинга
15 сообщений из 15, страница 1 из 1
Коэффициент инбридинга
    #37979335
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла задача расчитать коэффициент инбридинга для животного.
Fx=0.5*SUM(0.5^n), где
n- число путей инбридинга от общего предка, через животное X по отцовской стороне родословной к общему предку с материнской стороны, исключая пути от самого общего предка.

Задачу удалось решить, но решение не кажет простым и достаточно быстрым. Есть ли идеи как улучшить его.

DDL исходной таблицы

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE HORSE (
    CODE_HORSE      INTEGER NOT NULL,
    CODE_FATHER     INTEGER DEFAULT -2 NOT NULL,
    CODE_MOTHER     INTEGER DEFAULT -3 NOT NULL,
    NAME            VARCHAR(50)
);

ALTER TABLE HORSE ADD CONSTRAINT PK_HORSE PRIMARY KEY (CODE_HORSE);
ALTER TABLE HORSE ADD CONSTRAINT FK_HORSE_REF_FATHER FOREIGN KEY (CODE_FATHER) REFERENCES HORSE (CODE_HORSE) ON DELETE SET DEFAULT ON UPDATE SET DEFAULT;
ALTER TABLE HORSE ADD CONSTRAINT FK_HORSE_REF_MOTHER FOREIGN KEY (CODE_MOTHER) REFERENCES HORSE (CODE_HORSE) ON DELETE SET DEFAULT ON UPDATE SET DEFAULT;



Моё решение:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE GLOBAL TEMPORARY TABLE PEDIGREE_TMP (
    CODE_ROOT_HORSE  INTEGER NOT NULL,
    MARK             VARCHAR(20) NOT NULL,
    CODE_HORSE       INTEGER NOT NULL,
    DEPTH            INTEGER NOT NULL
) ON COMMIT DELETE ROWS;


ALTER TABLE PEDIGREE_TMP ADD CONSTRAINT PK_PEDIGREE_TMP PRIMARY KEY (CODE_ROOT_HORSE, MARK);
CREATE INDEX PEDIGREE_TMP_IDX_CODE_HORSE ON PEDIGREE_TMP (CODE_HORSE);
CREATE INDEX PEDIGREE_TMP_IDX_CODE_ROOTHORSE ON PEDIGREE_TMP (CODE_ROOT_HORSE);



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
CREATE OR ALTER PROCEDURE SP_GET_IMBRID (
    CODE_HORSE INTEGER,
    DEPTH INTEGER)
RETURNS (
    IMBRID_VALUE NUMERIC(15,6))
AS
BEGIN
  /*
   * Процедура вычисления коэффициента инбридинга
   */
  INSERT INTO PEDIGREE_TMP (
      CODE_ROOT_HORSE,
      CODE_HORSE,
      MARK,
      DEPTH)
  WITH RECURSIVE PEDIGREE (
      CODE_ROOT_HORSE,
      CODE_HORSE,
      MARK,
      DEPTH) AS (
  SELECT HORSE.CODE_HORSE,
         HORSE.CODE_HORSE,
         CAST('' AS VARCHAR(80)),
         0
  FROM HORSE
  WHERE HORSE.CODE_HORSE = :CODE_HORSE
  UNION ALL
  SELECT PEDIGREE.CODE_ROOT_HORSE,
         HORSE.CODE_FATHER,
         'F' || PEDIGREE.MARK,
         PEDIGREE.DEPTH + 1
  FROM HORSE
      INNER JOIN PEDIGREE ON HORSE.CODE_HORSE = PEDIGREE.CODE_HORSE
  WHERE PEDIGREE.DEPTH < :DEPTH AND
        HORSE.CODE_FATHER > 0
  UNION ALL
  SELECT PEDIGREE.CODE_ROOT_HORSE,
         HORSE.CODE_MOTHER,
         'M' || PEDIGREE.MARK,
         PEDIGREE.DEPTH + 1
  FROM HORSE
      INNER JOIN PEDIGREE ON HORSE.CODE_HORSE = PEDIGREE.CODE_HORSE
  WHERE PEDIGREE.DEPTH < :DEPTH AND
        HORSE.CODE_MOTHER > 0)
  SELECT CODE_ROOT_HORSE,
         CODE_HORSE,
         MARK,
         DEPTH
  FROM PEDIGREE
  WHERE DEPTH > 0;

  WITH H (CODE_HORSE,
          DEPTH,
          MARK,
          S,
          PREV_MARK)
  AS (SELECT CODE_HORSE,
             DEPTH,
             MARK,
             SUBSTRING(MARK FROM CHAR_LENGTH(MARK) FOR 1) AS S,
             CASE
               WHEN DEPTH > 1
               THEN SUBSTRING(MARK FROM 2 FOR CHAR_LENGTH(MARK))
             END AS PREV_MARK
      FROM PEDIGREE_TMP
      WHERE CODE_ROOT_HORSE = :CODE_HORSE AND
            CODE_HORSE > 0)
  SELECT COALESCE(SUM(POWER(0.5, F1.DEPTH + M1.DEPTH - 1)), 0) AS IMBRID_VALUE
  FROM H F1
      INNER JOIN H M1 ON F1.CODE_HORSE = M1.CODE_HORSE
  WHERE F1.S = 'F' AND
        M1.S = 'M' AND
        NOT EXISTS(SELECT *
                   FROM H F2
                       INNER JOIN H M2 ON F2.CODE_HORSE = M2.CODE_HORSE
                   WHERE F2.S = 'F' AND
                         M2.S = 'M' AND
                         F2.MARK = F1.PREV_MARK AND
                         M2.MARK = M1.PREV_MARK)
  INTO :IMBRID_VALUE;

  DELETE FROM PEDIGREE_TMP
  WHERE CODE_ROOT_HORSE = :CODE_HORSE;

  SUSPEND;
END
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37979497
Фотография Вечность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ух ты какой тут цирк с конями!

Мон пардон за оффтопег.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37979573
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВечностьУх ты какой тут цирк с конями!

Ну да прога предназначена для учёта породистых лошадей в институте коневодства. Но задача такая встречается не только у коней.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37980384
vvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

я бы в табличку ввел поле с коэффициентом и пересчитывал его при модификации данных.
Тогда время выборки будет минимальным. :)
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37980473
vvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

а нельзя ли поясняющую диаграмму-пример?

Fx=0.5*SUM(0.5^n), где
n- число путей инбридинга от общего предка, через животное X по отцовской стороне родословной к общему предку с материнской стороны, исключая пути от самого общего предка.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37980557
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvmа нельзя ли поясняющую диаграмму-пример
Можно.
пояснения


vvmя бы в табличку ввел поле с коэффициентом и пересчитывал его при модификации данных.

Проблема в том что в табличке HORSE уже давно есть данные ~500000 записей. Если так делать то, он должен быть посчитан для всех них. Пробовал расчитать для 1000 записей. Это заняло 6,5 сек. Но время увеличивается не линейно и боюсь, что обсчитать 500000 нереально.

Если бы алгоритм был более прост возможно воспользовался бы вашим советом.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #37980646
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В такой форме формула более понятна.

Fx=0.5*SUM(0.5 n1+n2-1 ), где

n1 - ряд предков, в котором общий предок встречается в отцовской части родословной
n2 - ряд предков, в котором общий предок встречается в материнской части родословной
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Коэффициент инбридинга
    #38563318
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563464
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисесли вдруг Таблоида заинтересуется
Я не Таблоид, но мне интересно. Попробую заняться. Можно как-то получить большой пример базы?
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563478
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

хм... ну ту базу на которой у меня это реализовано естественно нет (это всё таки собственность ВНИИКа). Но я попробую накатать портянку с данными на котором можно будет экспериментировать. Вообще эта штука общая и часто применяется в племенном животноводстве.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563616
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть вот это:
ddl:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
recreate table anm(
    fid int, mid int, kid int,
    constraint anm_pk primary key(fid,mid,kid),
    constraint anm_distincts check(fid<>mid and fid<>kid and mid<>kid),
    constraint anm_fid_is_male check( not exists(select * from anm x where x.mid=anm.fid) ),
    constraint anm_mid_is_female check( not exists(select * from anm x where x.fid=anm.mid) )
);
commit;
create index anm_fid on anm(fid);
create index anm_mid on anm(mid);
commit;

data:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
insert into anm values(10,20,30);
insert into anm values(10,30,32);
insert into anm values(32,20,42);
insert into anm values(32,20,45);
insert into anm values(10,45,50);
insert into anm values(10,45,54);
insert into anm values(54,20,60);
commit;


В статье про этот самый инцест сказано:Если в родословной встречается только один общий предок (в свою очередь, неинбредный), то коэффициент инбридинга равен 1\2 в степени n + n1 - 1, где n – колено, в котором он встречается в родословной со стороны отца , а n1 – колено, в котором он встречается в родословной со стороны матери . Если общих предков несколько, то вычисленные по каждому из них коэффициенты суммируются.Вышеприведенным данным соотв-вует схема в аттаче.
Что в этом примере будет означать "коэффициент инбридинга для особи с id = 60 " ? Или тут надо всегда считать " по отношению к ", т.е. коэффициент инбридинга особи 60 по отношению к особи 10 етц ?
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563626
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисесли вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт

Симонов Денисесли вдруг Таблоида заинтересуется, то вот что должно получиться Отчёт

в этом примере посчитано по отношению к лошади Mr. Prospector и Neactretic, а потом они суммируются. Обрати внимание, что если по одному из предков инбридинг уже есть, то по его предкам считать не надо, т.е. для Mr. Prospector инбринг считается, то для Raise A native и Gold Digger уже нет. Я попозже попробую очистить БД от реальных данных и лишних таблиц и выложить пример с данными. Для интереса можно пользоваться всеми плюшками FB3, хотя сейчас это у меня функционирует на FB2.5. По хорошему надо не только коэффициент посчитать но и родословную вывести, а также индекс для таблицы цветов, чтобы раскрасить инбредные лошади.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563634
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я там НХНП. Каким образом особь "Nearctic (CAN)" является предком господина Проспектора ("Mr. Prospector (USA)") ? она (или он) никого же из его предков не произвела, от неё на свет появились только "Northern Dancer (CAN)" и "Icecapade (USA)"...

Хотелось бы какой-то графический пример, простой и наглядный.
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563649
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

никаким. господина Проспектора, также как и Неаретик является предком Акбаш Казаха. Тут педигри развёрнуто.

Сама лошадь написана на верху отчёта в родословной
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
       FFF
    FF
       MFF
  F
       FMF  
    MF 
       MMF
       FFM
    FM
       MFM
  M
       FMM  
    MM 
       MMM

Собственно в данном Проспектор встречается по одному разу в предках отца и предках матери, но это не обязательно. Далее в зависимости от того в каких рядах родословной это произошло назначаются коэффциенты. Здесь для Проспектора в 3 и 3, т.е. F = 0.5 * 0.5 3+3-1 = 0,015625, для Неаретик 5 и 5 - F = 0.5 * 0.5 5+5-1 = 0,0009765625. Потом эти величины суммируются.
Вот более сложный случай https://cloud.mail.ru/public/482dc38706f0/Abadan.pdf
Вот скрипт по созданию БД. Только там без кличек и данных, одни коды https://cloud.mail.ru/public/aadbe59ef49a/horse.7z
...
Рейтинг: 0 / 0
Коэффициент инбридинга
    #38563726
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот полная процедура для тех кому интересно

блок
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
EXECUTE BLOCK
RETURNS (
    DEPTH INTEGER,
    MARK VARCHAR(20),
    CODE_HORSE INTEGER,
    IMBRID INTEGER,
    IMBRID_COLOR INTEGER,
    IMBRID_VALUE NUMERIC(15,6))
AS
DECLARE VARIABLE A_CODE_HORSE INTEGER = 742363;
DECLARE VARIABLE A_MAX_DEPTH INTEGER = 7;
DECLARE VARIABLE X_CODE_HORSE INTEGER;
DECLARE VARIABLE DEPTH_F INTEGER;
DECLARE VARIABLE DEPTH_M INTEGER;
DECLARE VARIABLE COUNTER INTEGER;
DECLARE VARIABLE COLOR INTEGER;
BEGIN
  /*
   * Процедура извлечения педигри
   * Developer: Симонов Денис
   * Copyright © 2011 Silentium
   */
  IMBRID_VALUE = 0;
  COUNTER = 0;
  DELETE FROM PEDIGREE_TMP WHERE CODE_ROOT_HORSE = :CODE_HORSE;
  INSERT INTO PEDIGREE_TMP (CODE_ROOT_HORSE,
                            MARK,
                            CODE_HORSE,
                            DEPTH,
                            IMBRID,
                            IMBRID_VALUE,
                            IMBRID_COLOR)
  WITH RECURSIVE PEDIGREE (
      CODE_ROOT_HORSE,
      CODE_HORSE,
      MARK,
      DEPTH)
  AS (SELECT HORSE.CODE_HORSE,
             HORSE.CODE_HORSE,
             CAST('' AS VARCHAR(80)),
             0
      FROM HORSE
      WHERE HORSE.CODE_HORSE = :A_CODE_HORSE
      UNION ALL
      SELECT PEDIGREE.CODE_ROOT_HORSE,
             HORSE.CODE_FATHER,
             'F' || PEDIGREE.MARK,
             PEDIGREE.DEPTH + 1
      FROM HORSE
      INNER JOIN PEDIGREE ON HORSE.CODE_HORSE = PEDIGREE.CODE_HORSE
      WHERE PEDIGREE.DEPTH < :A_MAX_DEPTH
      UNION ALL
      SELECT PEDIGREE.CODE_ROOT_HORSE,
             HORSE.CODE_MOTHER,
             'M' || PEDIGREE.MARK,
             PEDIGREE.DEPTH + 1
      FROM HORSE
      INNER JOIN PEDIGREE ON HORSE.CODE_HORSE = PEDIGREE.CODE_HORSE
      WHERE PEDIGREE.DEPTH < :A_MAX_DEPTH)
  SELECT CODE_ROOT_HORSE,
         MARK,
         CODE_HORSE,

         DEPTH,
         0,
         0,
         0
  FROM PEDIGREE;

  FOR WITH H (
          CODE_HORSE,
          DEPTH,
          MARK,
          S,
          PREV_MARK)
      AS (SELECT CODE_HORSE,
                 DEPTH,
                 MARK,
                 SUBSTRING(MARK FROM CHAR_LENGTH(MARK) FOR 1) AS S,
                 CASE
                   WHEN DEPTH > 1
                   THEN SUBSTRING(MARK FROM 2 FOR CHAR_LENGTH(MARK))
                 END AS PREV_MARK
          FROM PEDIGREE_TMP
          WHERE CODE_ROOT_HORSE = :A_CODE_HORSE AND
                CODE_HORSE > 0 AND
                DEPTH > 0)
      SELECT F1.CODE_HORSE,
             F1.DEPTH AS F_DEPTH,
             M1.DEPTH AS M_DEPTH
      FROM H F1
      INNER JOIN H M1 ON F1.CODE_HORSE = M1.CODE_HORSE
      WHERE F1.S = 'F' AND
            M1.S = 'M' AND
            NOT EXISTS(SELECT *
                       FROM H F2
                       INNER JOIN H M2 ON F2.CODE_HORSE = M2.CODE_HORSE
                       WHERE F2.S = 'F' AND
                             M2.S = 'M' AND
                             F2.MARK = F1.PREV_MARK AND
                             M2.MARK = M1.PREV_MARK)
      ORDER BY F1.DEPTH, M1.DEPTH
      INTO X_CODE_HORSE,
           DEPTH_F,
           DEPTH_M
  DO
  BEGIN

    COLOR = NULL;
    SELECT IMBRID_COLOR
    FROM PEDIGREE_TMP
    WHERE CODE_HORSE = :X_CODE_HORSE AND
          CODE_ROOT_HORSE = :A_CODE_HORSE ROWS 1
    INTO :COLOR;

    IF (COLOR = 0) THEN
    BEGIN
      SELECT AVALUE
      FROM HUE
      WHERE BYORDER = :COUNTER + 1
      INTO :COLOR;
      COUNTER = COUNTER + 1;
      IF (COUNTER > 8) THEN
        COUNTER = 0;
    END

    UPDATE PEDIGREE_TMP
    SET IMBRID = 1,
        IMBRID_COLOR = :COLOR,
        IMBRID_VALUE = IMBRID_VALUE + POWER(0.5, :DEPTH_F + :DEPTH_M - 1)
    WHERE CODE_HORSE = :X_CODE_HORSE AND
          CODE_ROOT_HORSE = :A_CODE_HORSE;

  END

  SELECT SUM(IMBRID_VALUE)
  FROM (SELECT MIN(IMBRID_VALUE) AS IMBRID_VALUE
        FROM PEDIGREE_TMP
        WHERE CODE_ROOT_HORSE = :A_CODE_HORSE
        GROUP BY CODE_HORSE)
  INTO :IMBRID_VALUE;

  UPDATE PEDIGREE_TMP
  SET IMBRID_VALUE = :IMBRID_VALUE
  WHERE CODE_HORSE = :A_CODE_HORSE AND
        CODE_ROOT_HORSE = :A_CODE_HORSE;

  FOR SELECT CODE_HORSE,
             DEPTH,
             MARK,
             IMBRID,
             IMBRID_COLOR,
             IMBRID_VALUE
      FROM PEDIGREE_TMP
      WHERE CODE_ROOT_HORSE = :A_CODE_HORSE
      INTO :CODE_HORSE,
           :DEPTH,
           :MARK,
           :IMBRID,
           :IMBRID_COLOR,
           :IMBRID_VALUE
  DO
    SUSPEND;
END



DML
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
CREATE GLOBAL TEMPORARY TABLE PEDIGREE_TMP (
    CODE_ROOT_HORSE  INTEGER NOT NULL,
    MARK             VARCHAR(20) NOT NULL,
    CODE_HORSE       INTEGER NOT NULL,
    DEPTH            INTEGER NOT NULL,
    IMBRID           INTEGER DEFAULT 0 NOT NULL,
    IMBRID_COLOR     INTEGER,
    IMBRID_VALUE     NUMERIC(15,6)
) ON COMMIT DELETE ROWS;



ALTER TABLE PEDIGREE_TMP ADD CONSTRAINT PK_PEDIGREE_TMP PRIMARY KEY (CODE_ROOT_HORSE, MARK);

CREATE INDEX PEDIGREE_TMP_IDX_CODE_HORSE ON PEDIGREE_TMP (CODE_HORSE);
CREATE INDEX PEDIGREE_TMP_IDX_CODE_ROOTHORSE ON PEDIGREE_TMP (CODE_ROOT_HORSE);

CREATE TABLE HUE (
    CODE_HUE  INTEGER NOT NULL,
    NAME      VARCHAR(30) NOT NULL,
    AVALUE    INTEGER NOT NULL,
    BYORDER   SMALLINT
);


ALTER TABLE HUE ADD CONSTRAINT UNQ_HUE_NAME UNIQUE (NAME);
ALTER TABLE HUE ADD CONSTRAINT PK_HUE PRIMARY KEY (CODE_HUE);
CREATE INDEX HUE_IDX_ORDER ON HUE (BYORDER);

INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (1, 'Красный', 255, 1);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (2, 'Голубой', 16711680, 2);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (3, 'Зелёный', 32768, 3);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (4, 'Коричневый', 2763429, 4);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (5, 'Оливковый', 32896, 5);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (6, 'Серый', 808080, 6);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (7, 'Оранжевый', 42495, 7);
INSERT INTO HUE (CODE_HUE, NAME, AVALUE, BYORDER)
         VALUES (8, 'Шоколадный', 1993170, 8);

COMMIT WORK;

...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Коэффициент инбридинга
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]