Кто брал экзешник с сайта в последнюю неделю, надо обновиться еще раз (должна быть версия 2.5.11.6476 или больше). Мы вернули в исходное состояние обработку перекрытия метода GetFromClause (Issue 2376) из-за большого количества несовместимостей в существующих настройках.
В кратце, суть изменений: раньше (и так будет теперь) если вручную надо было присоединить к таблице B таблицу C, причем B являлась таблицей-атрибутом для главной таблицы бизнес объекта А, то в GetFromClause программист добавлял джоин и для B, и для C. В результирующем запросе таблица B появлялась два раза. Один раз как таблица-атрибут, второй -- как добавленная разработчиком вручную.
Была попытка анализировать запрос и в описанном случае оставлять только одну таблицу B, используя ее и для связки с С и для вытаскивания атрибутов, но при этом возникла проблема с именами полей в старой и новой версиях программы. Из-за их несовпадения могут перестать работать отчеты и нарушиться вывод колонок в гриде.
Последняя версия at_sql_setup.pas до отката изменений находится в основной ветке, в ревизии r749.
12 апр. 2011 г.
7 апр. 2011 г.
Особое извращение
Кто сказал, что времена LaTeX ушли? Mediawiki с расширениями дает не меньше возможностей для программирования документации. Так, например, выглядит шаблон Gedemin Wiki для отображения списка членов класса:
{{#arraydefine:show|procedure,function}}
{{#arraydefine:methods|{{{list}}}}}
{{#arraysort:methods|asc}}
{{{member_type}}} класса [[{{{unit}}}.{{{class}}}|{{{class}}}]].
<table rules="rows" frame="hsides">
{{#arrayprint:methods| |@@@@|
<tr><td>
{{#ifeq:{{#arraysearch:show|{{#explode:@@@@| |0}}}}|-1| |{{#explode:@@@@| |0}}}} [[{{{unit}}}.{{{class}}}.{{#explode:@@@@| |1}}|{{#explode:@@@@| |1}}]]
</td>
<td> </td>
<td>
{{:{{{unit}}}.{{{class}}}.{{#explode:@@@@| |1}}}}
</td></tr>}}
</table>
Примерный результат.
{{#arraydefine:show|procedure,function}}
{{#arraydefine:methods|{{{list}}}}}
{{#arraysort:methods|asc}}
{{{member_type}}} класса [[{{{unit}}}.{{{class}}}|{{{class}}}]].
<table rules="rows" frame="hsides">
{{#arrayprint:methods| |@@@@|
<tr><td>
{{#ifeq:{{#arraysearch:show|{{#explode:@@@@| |0}}}}|-1| |{{#explode:@@@@| |0}}}} [[{{{unit}}}.{{{class}}}.{{#explode:@@@@| |1}}|{{#explode:@@@@| |1}}]]
</td>
<td> </td>
<td>
{{:{{{unit}}}.{{{class}}}.{{#explode:@@@@| |1}}}}
</td></tr>}}
</table>
Примерный результат.
Labels:
документация
6 апр. 2011 г.
Delphi 64
Свершилось! Embarcadero начинает закрытое бета тестирование 64-х битного Delphi. Мы записались в список. После 10-го обещают дать ответ: допустят или нет. 64-бита нужны нам в первую очередь для компиляции GUDF.DLL для 64-х битного сервера Firebird. Можно будет проверить несколько идей по быстрому "сворачиванию" данных, которые основаны на использовании больших массивов (каждый свыше 1 Гб) в оперативной памяти.
Labels:
Delphi
30 мар. 2011 г.
Quick and dirty DB cleanup
На скорую руку, очистить базу от документов и проводок можно следующим образом:
- Отключить триггеры (перед этим желательно запомнить какие триггеры были в неактивном состоянии).
Выполнить delete from ac_entry.
Выполнить delete from inv_movement.
Выполнить delete from inv_balance.
Потом удалять данные из таблиц позиций документов (имена %LINE). Можно написать такой запрос: SELECT 'DELETE FROM ' || a.relationname || ';' FROM at_relations WHERE relationname like 'USR$%LINE', выполнить в IBExpert, скопировать в буфер результат и вставить в окно скрипта.
Выполнять многократно delete from inv_card c where not exists (select c1.id from inv_card с1 where c1.parent = c.id) пока все не удалится.
Выполнять многократно delete from gd_document, смотреть какие таблицы ругаются и удалять из них информацию. Повторять, пока не очистится gd_document.
Подключить отключенные триггеры.
execute block
as
declare variable stmt varchar(1024);
declare variable dt integer;
declare variable rn varchar(31);
begin
for
select t.id, r.relationname from at_relations r
join gd_documenttype t on t.linerelkey = r.id
into :dt, :rn
do begin
stmt = 'delete from gd_document doc ' ||
' where doc.documenttypekey = ' || :dt ||
' and not (doc.parent is null) ' ||
' and not (doc.id in (select documentkey ' ||
' from ' || :rn || '))';
execute statement :stmt;
end
end
Labels:
база данных,
совет,
SQL
23 мар. 2011 г.
Про нас пишут
Вадим Станкевич пишет про Гедымин в статье "Свободное ПО для корпоративных пользователей: ожидания и перспективы" для журнала ITБел:
А также: Проект "НИВА-БП" возможности и перспективы. Беседа с завкафедры "Экономика и управления предприятиями АПК" УО «Белорусский государственный экономический университет» Жудро М.К.
А также: Проект "НИВА-БП" возможности и перспективы. Беседа с завкафедры "Экономика и управления предприятиями АПК" УО «Белорусский государственный экономический университет» Жудро М.К.
Новая документация
Документация по подсистеме Птицеводство. 70 страниц.
Документация по бизнес планированию. Руководство пользователя и подробнейший контрольный пример. Около 200 страниц.
Вся документация в PDF.
Документация по бизнес планированию. Руководство пользователя и подробнейший контрольный пример. Около 200 страниц.
Вся документация в PDF.
Labels:
документация
15 мар. 2011 г.
Firebird в театре
Система заказа билетов Театра оперы и балета, Филармонии и (скоро) Театра музкомедии используют Firebird в качестве базы данных.
Кстати, если уж речь зашла о театрах, то Театр им. Я Купалы, Молодежный театр и Театр кукол в Минске автоматизированы на Гедымине.
Кстати, если уж речь зашла о театрах, то Театр им. Я Купалы, Молодежный театр и Театр кукол в Минске автоматизированы на Гедымине.
Labels:
Firebird
13 мар. 2011 г.
Наша первая выставка
Похоже, после годичного перерыва снова примем участие в TIBO.
Таким был крошечный шестиметровый стенд на самой первой нашей выставке в 1998-м году, в павильоне ВДНХ на ул. Я Купалы.
В руках у Антона рекламный буклет компании Софт-Информ. Мы готовились к выпуску Совета Анжелики и их продукт считался нашим основным конкурентом. Буклет разорвали, а через пару недель милиция разгромила одну из самых успешных белорусских IT компаний второй половины девяностых. Такое вот черное вуду получилось.
Таким был крошечный шестиметровый стенд на самой первой нашей выставке в 1998-м году, в павильоне ВДНХ на ул. Я Купалы.
В руках у Антона рекламный буклет компании Софт-Информ. Мы готовились к выпуску Совета Анжелики и их продукт считался нашим основным конкурентом. Буклет разорвали, а через пару недель милиция разгромила одну из самых успешных белорусских IT компаний второй половины девяностых. Такое вот черное вуду получилось.
Вызов функции по ссылке в VBScript
Хотя в языке VBScript отсутствует понятие указатель на процедуру/функцию (собственно, отсутствует понятие указатель как таковое), достигнуть похожего эффекта можно с помощью конструкции Eval. В приведенном ниже примере на вход процедуры Test передается имя функции, которая должна быть вызвана.
Option Explicit Function TestAdd(A, B) TestAdd = A + B End Function Function TestSubstract(A, B) TestSubstract = A - B End Function Sub Test(FuncName, K, N) MsgBox Eval(FuncName & "(K, N)") End Sub Sub Macros Test "TestAdd", 100, 40 ' на экране 140 Test "TestSubstract", 100, 40 ' на экране 60 End Sub
Labels:
vbscript
10 мар. 2011 г.
Проблема с интервальными деревьями в старых файлах настроек
Если при восстановлении базы (ранее сконвертированной под Firebird 2.5) из архива выдает сообщение об ошибке с текстом "Input parameter mismatch for procedure USR$_P_EXLIM_...", значит на базу с новой структурой интервальных деревьев была загружена настройка со старыми деревьями.
В таком случае надо на исходной базе выполнить в окне SQL редактора команду:
После этого базу можно архивировать.
Почему проблемная процедура создается без ошибок при загрузке настройки -- вопрос к создателям Firebird.
Особое внимание разработчикам! Все настройки с интервальными деревьями должны быть пересохранены после обновления структуры базы данных.
В таком случае надо на исходной базе выполнить в окне SQL редактора команду:
DELETE FROM fin_versioninfo WHERE id > 112Затем подключиться к ней новейшей версией gedemin.exe (всегда можно скачать с нашего сайта) и дождаться окончания обновления структуры базы данных. В процессе обновления будут пересозданы все процедуры и триггеры интервальных деревьев.
После этого базу можно архивировать.
Почему проблемная процедура создается без ошибок при загрузке настройки -- вопрос к создателям Firebird.
Особое внимание разработчикам! Все настройки с интервальными деревьями должны быть пересохранены после обновления структуры базы данных.
Labels:
проблема
2 мар. 2011 г.
Подписаться на:
Сообщения (Atom)



