17 апр. 2011 г.

Редактор CSV файлов

При записи в CSV файл Microsoft Excel не сохраняет пустые колонки, если они находятся в конце записи. Как на беду, наша процедура универсального импорта требует строгого соответствия количества полей заданной спецификации. С помощью Гугла легко нашелся автономный бесплатный редактор CSV файлов с широчайшими возможностями.
Как и многие другие замечательные программы, CSVed написан на Borland Inprise Borland CodeGear Embarcadero Delphi.

12 апр. 2011 г.

Откат изменений GetFromClause

Кто брал экзешник с сайта в последнюю неделю, надо обновиться еще раз (должна быть версия 2.5.11.6476 или больше). Мы вернули в исходное состояние обработку перекрытия метода GetFromClause (Issue 2376) из-за большого количества несовместимостей в существующих настройках.

В кратце, суть изменений: раньше (и так будет теперь) если вручную надо было присоединить к таблице B таблицу C, причем B являлась таблицей-атрибутом для главной таблицы бизнес объекта А, то в GetFromClause программист добавлял джоин и для B, и для C. В результирующем запросе таблица B появлялась два раза. Один раз как таблица-атрибут, второй -- как добавленная разработчиком вручную.

Была попытка анализировать запрос и в описанном случае оставлять только одну таблицу B, используя ее и для связки с С и для вытаскивания атрибутов, но при этом возникла проблема с именами полей в старой и новой версиях программы. Из-за их несовпадения могут перестать работать отчеты и нарушиться вывод колонок в гриде.

Последняя версия at_sql_setup.pas до отката изменений находится в основной ветке, в ревизии r749.

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>&nbsp;</td>
<td>
{{:{{{unit}}}.{{{class}}}.{{#explode:@@@@| |1}}}}
</td></tr>}}
</table>

Примерный результат.

6 апр. 2011 г.

Delphi 64

Свершилось! Embarcadero начинает закрытое бета тестирование 64-х битного Delphi. Мы записались в список. После 10-го обещают дать ответ: допустят или нет. 64-бита нужны нам в первую очередь для компиляции GUDF.DLL для 64-х битного сервера Firebird. Можно будет проверить несколько идей по быстрому "сворачиванию" данных, которые основаны на использовании больших массивов (каждый свыше 1 Гб) в оперативной памяти.