23 февр. 2014 г.
19 февр. 2014 г.
10 февр. 2014 г.
Циклическое сканирование таблиц документов
После упрощения задачи единственная сложность, которая осталась, поиск ссылок на документы в удаляемом периоде.
Пусть, H1, H2, H3... HN -- таблицы шапок документов и связанные с ними 1-к-1 (или "нашей" связью 1-к-1, как в USR$INV_ADDINFO). P1, P2, P3... PN -- таблицы позиций документов и связанные с ними 1-к-1. H1K1, H1K2... H1KN -- поля ссылки на документ в таблице H1. P1K1, P1K2... P1KN -- поля ссылки на документ в таблице P1.
Тогда алгоритм выглядит следующим образом:
-
Формируем массив ИД документов, которые остаются в БД:
SELECT SUM(g_his_add(1, id))
FROM gd_document
WHERE documentdate >= :D
Обратите внимание, что и шапки и позиции сразу попадут в выборку, так как у позиции документа дата обязательно совпадает с шапкой. Организуем цикл по таблицам H. Для каждой формируем и выполняем запрос:
SELECT
SUM(g_his_add(1, HjK1)),
COUNT(HjK1),
SUM(g_his_add(1, HjK2)),
COUNT(HjK2),
...
FROM Hj
WHERE g_his_has(1, documentkey)
Важно собрать все поля в один запрос, чтобы обойтись только одним сканом таблицы.
Для позиций:
SELECT
COUNT(*),
SUM(g_his_add(1, documentkey)),
SUM(g_his_add(1, PjK1)),
COUNT(PjK1),
SUM(g_his_add(1, PjK2)),
COUNT(PjK2),
...
FROM Pj
WHERE g_his_has(1, masterkeykey)
Если после обработки всех таблиц шапок и всех позиций, все суммы сложились в ноль, то значит ни одной записи не добавилось к сохраняемому множеству ИД. Если больше нуля, то повторяем, начиная с шага 2. Если после обработки таблицы мы получили:
COUNT(HjKi)- SUM(g_his_add(1, HjKi)) = 0
То такую колонку исключаем из дальнейшей обработки. Если в таблице исключены все колонки, то в дальнейшем такую таблицу не обрабатываем.
Labels:
идеи
5 февр. 2014 г.
Перезапись объекта по потенциальному ключу
При загрузке объектов приоритет имеет поиск по потенциальному ключу (там, где перекрыт метод CheckTheSameStatement) перед поиском по РУИДу. Например, пусть у нас имеется исходная база данных с двумя отчетами:
Разработчик копирует ее себе на локальную машину:
...и производит доработку: удаляет отчет "Реестр" и переименовывает отчет "Новый реестр" в просто "Реестр":
Сохраняет доработанный отчет в ПИ и загружает его на исходную БД. Для отчетов у нас определен поиск объектов по имени в пределах одной папки. Т.е. будет найден отчет с именем "Реестр" и перезаписан. Попутно, его РУИД_1 заменится на РУИД_2 из файла.
Перезапись РУИДа означает, что исходный отчет "Новый реестр" вообще останется без РУИДа, потому что РУИД_2 теперь указывает на отчет "Реестр":
Так что будьте аккуратнее с переименованием объектов и следите за тем, что система пишет в лог при загрузке пространства имен.
Наконец-то, LibreOffice начал использовать Firebird вместо какой-то Java-мути.
This allows creation of databases that perform many times faster than the previous built-in HSQLDB.Кто бы сомневался.
We plan to phase HSQLDB out over the next few releases, and provide a smooth migration path to Firebird.
Labels:
цікава
3 февр. 2014 г.
Боты пытаются пробить Gedemin Web Server
[02/Feb/2014 03:23:56] 81.17.28.108 /cgi-bin/php
[02/Feb/2014 03:23:56] 81.17.28.108 /cgi-bin/php5
[02/Feb/2014 03:23:56] 81.17.28.108 /cgi-bin/php-cgi
[02/Feb/2014 03:23:56] 81.17.28.108 /cgi-bin/php.cgi
[02/Feb/2014 03:23:56] 81.17.28.108 /cgi-bin/php4
[02/Feb/2014 06:22:11] 124.194.118.194 phpTest/zologize/axa.php
[02/Feb/2014 06:59:11] 175.115.53.237 w00tw00t.at.blackhats.romanian.anti-sec:)
[02/Feb/2014 06:59:12] 175.115.53.237 phpmyadmin/scripts/setup.php
[02/Feb/2014 06:59:12] 175.115.53.237 phpMyAdmin/scripts/setup.php
[02/Feb/2014 06:59:13] 175.115.53.237 mysqladmin/scripts/setup.php
[02/Feb/2014 06:59:14] 175.115.53.237 pma/scripts/setup.php
[02/Feb/2014 07:04:09] 97.66.248.195 HNAP1/
[02/Feb/2014 15:53:33] 1.245.71.56 manager/html
[02/Feb/2014 21:13:44] 203.113.174.72 phpTest/zologize/axa.php
[03/Feb/2014 00:50:07] 175.115.53.237 w00tw00t.at.blackhats.romanian.anti-sec:)
[03/Feb/2014 00:50:08] 175.115.53.237 phpmyadmin/scripts/setup.php
[03/Feb/2014 00:50:09] 175.115.53.237 phpMyAdmin/scripts/setup.php
[03/Feb/2014 00:50:10] 175.115.53.237 mysqladmin/scripts/setup.php
[03/Feb/2014 00:50:10] 175.115.53.237 pma/scripts/setup.php
[03/Feb/2014 06:42:04] 24.51.148.129 HNAP1/
Подписаться на:
Сообщения (Atom)