В компании, где я работал будучи студентом, для проектирования модели базы данных использовали ERwin. Мне он сразу показался, мягко сказать, не очень удобным. Для нового проекта я взял у своего знакомого PowerDesigner 6.0 (пришлось записать целых 5 дискет по 1.44 МБ!). С тех пор PowerDesigner используется мной в каждом проекте, где я сам выбираю инструментарий. Вы скажете, что это "как стрелять из пушки по воробьям". Да, я с этим согласен. Но десятки лет его использования вызвали стойкое привыкание. Хотя к PowerDesigner у меня тоже есть вопросы. Хорошо, что большинство из них решаемы. Для примера рассмотрим, как научить PowerDesigner добавлять в генерируемый DDL-скрипт полям индекса порядок сортировки. Да, у этого мощнейшего программного обеспечения есть такая маленькая проблемка.
Язык программирования самого высокого уровня содержит всего несколько команд для управления программистами
25 августа 2026
20 августа 2026
Delphi - единственный платный язык программирования в топ-20 TIOBE Index

20 февраля 2026
Что ждет в Delphi 13.1 Florence?
05 февраля 2026
Вычисление выражений в инспекторе объектов Delphi 13.1
Разработчики Delphi с каждым новым релизом стремятся повышать удобство работы в IDE Delphi. В Delphi 13.1 представлен новый механизм, позволяющий выполнять простые вычисления в определенных числовых полях инспектора объектов (Object Inspector).
02 февраля 2026
24 января 2026
Delphi 13.1 бета и поддержка Windows ARM
Компания Embarcadero Technologies проводит бета-тестирование новой версии RAD Studio, Delphi и C++ Builder. В Delphi 13.1 и C++Builder 13.1 будут представлены несколько новых функций и, как обычно, уделено особое внимание существенному улучшению качества продукта. Эта бета-версия получила кодовое название "Amalthea". В Embarcadero его связывают с одним из спутников Юпитера Amalthea.
Но мне больше нравится трактовка этого названия из древнегреческой мифологии. Там Amalthea — это коза вскормившая своим молоком младенца Зевса. Когда у козы сломался рог, Зевс в благодарность и в память о своей кормилице наделил его волшебной силой наполняться всем, что пожелает владелец, тем самым создав Рог Изобилия. Который в Средние века христиане переименовали в Святой Грааль. Delphi — это Рог Изобилия для программистов. А Delphi без багов — это их Святой Грааль (такая же недостижимая заветная цель).12 ноября 2025
Delphi на 8-м месте в TIOBE Index
29 октября 2025
Выпущен Delphi 13 Florence Patch 2
13 октября 2025
Удаление базы данных PostgreSQL с активными подключениями
Базу данных нельзя удалить, если к ней подключены пользователи. Перед удалением базы данных PostgreSQL я всегда выполняю запрос, который для всех подключений к удаляемой базе данных вызывает функцию принудительного завершения процесса подключения:
06 октября 2025
Восстановить запись в журнал сообщений PostgreSQL
Обратил внимание на одну маленькую неприятную особенность PostgreSQL – если удалить текущий файл журнала сообщений, то сервер не создаст новый файл, пока не наступит момент ротации файла. Это наблюдается и под Windows и под Linux. Что делать, если log_rotation_age большой или вовсе установлен в ноль и смена файлов по времени не производится? Можно наплевать на подключенных к базам данных пользователей и перегрузить PostgreSQL. Но есть более безболезненный способ.
29 сентября 2025
Hotfix на Delphi 13.0 Florence Patch 1 для Indy
RTM-версия Delphi 13 Florence включает в себя копию Indy 10.6.3.11, но несколько компонент Indy отсутствуют в палитре компонентов. Потерялись компоненты OAuth SASL, которые были добавлены в Indy 10.6.3.7.
26 сентября 2025
Выпущен Delphi 13.0 Florence Patch 1
22 сентября 2025
Ускоряем поиск с использованием LIKE
Прислали мне SQL-запрос с жалобой, что при определенных параметрах он работает около 10 минут. Хотя в большинстве случаев возвращает данные быстрее, чем за секунду. Запрос не простой. В нем объединяется несколько таблиц и вьюшек, а среди всех условий – регистронезависимый поиск по вхождению строки: UPPER(поле) LIKE '%СТРОКА%'. Мои замечания по поводу UPPER и LIKE по вхождению, так же как и предложения изменить запрос или использовать полнотекстовый поиск не приняли, т.к. запрос создан генератором запросов и переписывать его никто не будет. Проблему усугублял планировщик запросов PostgreSQL. Судя по плану, когда запрос возвращал данные, LIKE выполнялся по уже отфильтрованным данным и проверял несколько десятков строк, и время выполнения было приемлемое. А с параметрами при которых результат запроса был пустой, LIKE выполнялся первым условием и перебирал все строки в таблице. Как результат – жуткие тормоза. Это поведение моделировалось на PostgreSQL с 12-й версии по 17-ю. На MS SQL Server план этого запроса составлялся всегда корректно.
10 сентября 2025
Изменения Delphi RTL в Delphi 13 Florence
09 сентября 2025
Директива "noreturn" для объявления процедур в Delphi 13 Florence
В компилятор Delphi 13 Florence добавлена директива "noreturn". "noreturn" - это атрибут объявления процедуры, который указывает, что вызов процедуры 100% вызовет исключение, а не завершит обычное выполнение. Это позволит компилятору выполнить оптимизацию путем исключения лишнего кода и пропустить предупреждение о неопределенных результатах в функциях.
08 сентября 2025
Новые директивы компилятора {$PUSHOPT} и {$POPOPT} в Delphi 13 Florence
07 сентября 2025
Новые операторы "is not" и "not in" в Delphi 13 Florence
04 сентября 2025
Поддержка VCL-стилей у TitleBarPanel и прокрутка пунктов меню в Delphi 13 Florence
В предстоящем релизе Delphi 13 Florence в Visual Component Library (VCL) пользователей ждет множество изменений. Это не только улучшения качества, но и новые мелкие функции. Можно выделить две новые "плюшки", на которые разработчики RAD Studio получили много запросов.
20 августа 2025
MS SQL Server. Таблицы оптимизированные для памяти и пропажа места на диске
К нам в поддержку обратился клиент с ошибкой "MAT/PIT export/import encountered a failure for memory optimized table or natively compiled stored procedure with object ID 1873539326 in database ID 5. The error code was 0x80030070." в приложении работающем с MS SQL Server.
Так как в тексте ошибки упомянута таблица оптимизированная для памяти, то моя первая мысль была, что на сервере недостаточно памяти или она глюканула. Поиск описания ошибки по коду 0x80030070 вывел на STG_E_MEDIUMFULL "There is insufficient disk space to complete operation", а потом на ERROR_DISK_FULL 112 (0x70) "There is not enough space on the disk". Действительно, как мне потом написали, у клиента "всё починилось добавлением места". Как связаны таблицы оптимизированные для памяти и недостаток места на диске для завершения операции?



