28 декабря 2023

Фасадные менеджеры в ИТ

    Последняя запись уходящего года будет не техническая. Это не подведение итогов года и не поздравление с наступающим. Это размышлизм об одном виде менеджеров, с которым, я думаю, сталкивались многие, но не знали, как их правильно назвать не матерясь. Недавно я гостил у своего друга в Германии. За "рюмкой чая" не обошлось без разговоров о работе и в целом о всей ИТ отрасли. Сошлись на том, что одна из главных проблем в ИТ компаниях – это не эффективный менеджмент. Друг уже почти полгода работает на новом проекте, который они делают совместно с другой компанией. Значительную часть его рабочего времени занимают митинги со спорами с менеджерами компании-партнера. Этих менеджеров очень метко назвал коллега моего друга – "фасадные менеджеры".

27 ноября 2023

Ошибка ".exe is not a valid Win32 application" на старых версиях Windows

    На прошлой неделе мне сказали, что 32-х битное консольное приложение, написанное на Delphi 11, не запускается под Windows 2003. Я не поверил. Поставил на виртуалку Delphi 11.3, сделал тестовое 32-х битное консольное приложение с одной строкой кода "Writeln('It works!')", попросил админа поднять древнюю виртуалку с Windows Server 2003, запустил на ней свое тестовое приложение и получил ошибку "temp.exe is not a valid Win32 application":
exe is not a valid Win32 application
Как так? Ведь разработка десктопных приложений – это же конек Delphi!

20 ноября 2023

MS SQL Server. Работа с данными от имени другого пользователя

    Я уже писал об использовании EXECUTE AS в MS SQL Server. Тогда я использовал "WITH EXECUTE AS OWNER" для изменения контекста безопасности на владельца триггера и "EXECUTE AS CALLER" для изменения контекста безопасности в коде триггера на пользователя, вызвавшего модуль. Хочу поговорить о вызове "EXECUTE AS" с указанием имени пользователя.

07 ноября 2023

Выпущен Delphi 12.0 Athens

    Сегодня, 11 ноября 2023 года, компания Embarcadero Technologies выпустила Delphi 12, C++ Builder 12 и RAD Studio 12. Этот релиз получил кодовое название "Athens".
Delphi 12.0 Athens Splash Screen

Для загрузки доступен Delphi 12.0 (RAD Studio 12.0) ISO

    В личных кабинетах зарегистрированных пользователей продуктов Embarcadero доступен для загрузки ISO-образ DVD с RAD Studio 12.0, Delphi 12.0 и C++Builder 12.0.

23 октября 2023

MS SQL Server. Запись данных из триггера в другую базу данных

    Представим ситуацию, в которой на сервере MS SQL Server есть две базы данных. С первой базой через свою информационную систему работают пользователи. Во вторую базу для обмена с другой системой выгружаются "итоговые данные, подписанные руководством". Самый простой вариант – это создать триггер, который после подписи будет копировать данные из таблицы первой базы данных во вторую.

12 октября 2023

Релиз Delphi 12 запланирован на 9 ноября 2023 года

    9 ноября 2023 г. компания Embarcadero проводит вебинар "What's Coming in The Next RAD Studio 12.0". Это традиционная презентация, которая проходит в день выпуска каждой новой версии RAD Studio, Delphi и C++Builder. Спикерами выступят Марко Канту, Дэвид Миллингтон, Ян Баркер, Кайл Уиллер, Стивен Болл и Нуно Кастро. Команда не только расскажет о том, что будет в новой версии, но и на протяжении всего вебинара будет отвечать на вопросы слушателей.
What's Coming in The Next RAD Studio 12.0
Вебинар пройдет 9 ноября 2023 г. в 19:00 по Минскому/Московскому времени. Планируемая продолжительность 1 час 30 минут.

11 октября 2023

Delphi 12. Генерация графа зависимостей между модулями проекта в Graphviz-файл

    В компилятор Delphi 12 добавлена возможность генерации графа зависимостей между модулями проекта в файл формата Graphviz (Graph Visualization Software). Она реализована непосредственно на уровне компилятора без дополнительного инструмента синтаксического анализа. Подобный граф может помочь разработчикам понять структуру проекта и избежать ненужных циклических ссылок на модули, которые могут замедлить компиляцию или вызвать негативные побочные эффекты для самого компилятора.

02 октября 2023

Android API 33 уровня и другие улучшение поддержки Android в Delphi 12

    Начиная с 31 августа 2023 года Google Play Store ожидает, что новые приложения должны быть нацелены на Android 13 (33 уровень API) или выше. Delphi 11.3 не поддерживает Android API 33 уровня. Так как добавление его полной поддержки требует значительных трудозатрат, то это будет сделано только в Delphi 12. Кроме добавления поддержки Android API 33 уровня в Delphi 12, есть и другие существенные улучшения FireMonkey для Android:

20 сентября 2023

Delphi 12. Заголовки Windows API сгенерированные из Win32Metadata

    В январе 2021 года компания Microsoft представила на GitHub свой новый проект Win32Metadata. Его цель – создать полное описание Windows API в виде файла метаданных Windows.Win32.winmd, который позволяют автоматически переводить заголовки его модулей на любые языки программирования. В рамках проекта Microsoft реализовала инструмент для перевода заголовков Win32 API на C# и Rust, а сообщество разработчиков реализовало его для Beef, D, Dart, Python и Zig. Вот теперь в Embarcadero разработали подобный конвертор для перевода заголовков Win32 API на Delphi.

13 сентября 2023

TIOBE Index сентябрь 2023: Delphi и Kotlin вернулись в топ-20

    Delphi в TIOBE Index сентябрь 2023 прибавил 0.22% к своему рейтингу и с 1.02% вернулся на 15-ю позицию, которую занимал в июле с 0.98%. То есть он покинул TIOBE Index топ-20 всего лишь на месяц. Хочется считать, что это падение рейтинга было из-за ошибки при его подсчете.

11 сентября 2023

Delphi 12. Улучшения для списков, массивов и коллекций

    Среди прочих изменений RTL в Delphi 12 можно выделить доработку функциональных возможностей списков, массивов и коллекций:

04 сентября 2023

Delphi 12. Поддержка разделенного экрана в FireMonkey

    Мобильные операционные системы, чтобы одновременно работать с двумя приложениями, позволяют разделить экран устройства пополам. Эта функция особенно полезна на устройствах с большим размером экрана. Разработчики Delphi 12 добавили в библиотеку FireMonkey поддержку создания приложений для iOS и Android, которые используют только часть экрана доступную после его разделения.

01 сентября 2023

Delphi 12. Поддержка сравнения с NaN в соответствии с требованиями IEEE

    Стандарт IEEE 754 требует, чтобы все операции сравнения с NaN возвращали значение False. Согласно ему, "в синтаксисе C предикат x != y имеет значение True, но все остальные: x < y, x <= y, x == y, x >= y и x > y имеют значение False всякий раз, когда x или y или оба аргумента имеют значение NaN". В Delphi 12 поддержка сравнения с NaN реализована в соответствии с этими требованиями стандарта IEEE 754.

30 августа 2023

Delphi 12. Отображение элементов TListView в виде плиток

    TListView в Delphi всегда поддерживал четыре режима отображения своих элементов:
  • vslcon – полноразмерные иконки с заголовком под ними;
  • vsSmalllcon – маленькие иконки с заголовком справа от них;
  • vsList – список маленьких иконок с заголовком справа от них;
  • vsReport – таблица, в которой крайний левый столбец содержит маленькие иконки с заголовком, а остальные столбцы содержат подэлементы.
В Delphi 12 список этих режимов дополнился новым режимом "в виде плитки" (Tile View), который доступен в базовом контроле операционной системы.

24 августа 2023

Улучшенный диалог поиска в файлах в Delphi 12

    Диалог "Find in Files" в RAD Studio 12 получил новый параметр "Subdirectory exclude mask". Этот параметр позволяет при поиске по содержимому файлов в каталогах ("Search in directories") с вложенными подкаталогами ("Include subdirectories") исключить из поиска определенные каталоги. По умолчанию исключаются каталоги "__history" и "__recovery", а для разработчиков на C++ Builder еще и "__astcache".

21 августа 2023

Новый менеджер платформ Delphi 12

    Менеджер платформ – это часть инсталлятора RAD Studio, которая потом доступна в IDE через меню "Tools > Manage Platforms". Он позволяет выбирать пользователю необходимые для работы языки программирования, поддерживаемые операционные системы и связанные с ними элементы. К сожалению, предыдущая реализация менеджера платформ была не удобна для использования, имела ряд проблем и даже ошибок. В Delphi 12 был полностью переработан его пользовательский интерфейс и поведение при установке платформ и других элементов.

18 августа 2023

В Delphi 12 для всех платформ отключили исключения в операциях с плавающей точкой

    Начиная с Delphi 1 RTL использовала исключения в операциях с плавающей точкой. Но в последние годы современные операционные системы, такие как Windows, macOS и Linux, и их официальные средства разработки, перестали использовать модель "floating-point exception" ("FP Exception"). То, что API-интерфейсы ОС предполагают отсутствие исключений, а Delphi RTL их использует, может привести к крашу приложения. Для решения этой проблемы разработчики Delphi ранее уже отключили исключения в операциях с плавающей точкой на платформах отличных от Windows и, чтобы избежать проблем при рендеринге изображений, в FMX под Windows. В Delphi 12 это сделали для всех платформ (Windows, macOS, iOS, Android и Linux).

16 августа 2023

Новый режим двойной буферизации VCL-контролов в Delphi 12

    Иногда у приложений написанных на Delphi проявляется одна маленькая, но неприятная проблема – при перерисовке VCL-контрола он "мерцает". Для ее решения разработчики Delphi добавили наследникам TWinControl свойство DoubleBuffered (тип boolean). Если DoubleBuffered имеет значение false, то контрол рисует себя непосредственно в окне. Если DoubleBuffered имеет значение true, то контрол рисует себя сначала на bitmap в памяти, а затем bitmap рисуется на окне. Двойная буферизация уменьшает мерцание, но требует больше памяти. Кроме повышенного расхода памяти есть и более существенные проблемы. Например, зависание VCL-приложений при работе через удаленные рабочий стол (RDP). Этой проблемой страдала даже сама IDE RAD Studio. Любое изменение сеанса RDP (блокировка, разблокировка, подключение, отключение) вызывает изменение общесистемных настроек (WM_SETTINGCHANGE), которое приводит к каскаду сообщений и множеству перерисовок IDE. Устранили это только в RAD Studio 10.4.2. В Delphi 12 механизм двойной буферизации VCL-контролов был доработан.

10 августа 2023

Улучшения для диспетчера окон рабочего стола Windows 11 в Delphi 12

    Диспетчер окон рабочего стола (Desktop Window Manager, DWM) – система графического интерфейса рабочего стола Windows, которая использует аппаратное ускорение для отрисовки графического интерфейса пользователя. Разработчики Delphi добавили в Delphi 12 поддержку некоторых ее функций специфических для Windows 11.

08 августа 2023

TIOBE Index август 2023: Delphi покинул топ-20

    За последние годы Delphi несколько раз покидал TIOBE Index топ-20. Например, в апреле 2020 Delphi сначала сместился на 22-е место, потом в июле вовсе упал на 30-е место, и только в ноябре вернулся в топ-20 сразу на 18-е место. Следующий кризис случился в августе 2021 – 22-е место. Но он покинул топ-20 ненадолго. Уже в следующем месяце снова 20-е место. И вот снова август, и снова Delphi вылетел из топ-20.

03 августа 2023

Поддержка QBE в Delphi 12

    В 1970-х годах исследовательский центр компании IBM предложил новый способ создания запросов к базе данных – QBE (Query by Example). Он подразумевает ввод конечным пользователем информационной системы образцов значений полей в виде текстовой строки, которые потом преобразуются в стандартный запрос к базе данных. Это позволяет простому пользователю делать сложные запросы без необходимости изучать специализированный язык запросов (например, SQL), синтаксис которого может быть недоступен ему для понимания. Разработчики Delphi 12 добавили поддержку QBE в FireDAC.

31 июля 2023

Улучшение поддержки файлов формата UTF-8 без BOM в Delphi 12

    Одна из проблем, с которыми сталкиваются программисты на Delphi при чтении текстового файла – это определение его кодировки. Метод TEncoding.GetBufferEncoding работает корректно только если файл содержит метку порядка байтов (Byte Order Mark, BOM) для одной из стандартных кодировок. Если переданный в него буфер не содержит BOM, то возвращается кодировка по умолчанию. TEncoding.Default зависит от операционной системы. Например, для Windows – это ANSI, Linux или macOS – это UTF-8. То есть при отсутствии в текстовом файле BOM задача определения его кодировки (UTF-8 или ANSI или ASCII) лежит на программисте. И вот наконец-то в Delphi появился для этого свой функционал.

28 июля 2023

Новый способ получения OUTPUT-значения после DML операции MS SQL Server в FireDAC Delphi 12

    Так получилось, что с периодичностью в два года я пишу о получении в программе значения первичного ключа, который сгенерирован СУБД при добавлении в таблицу новой строки. В 2019-м я писал об этом для UniDAC, потом в 2021-м для FireDAC. Разработчики Delphi 12 предоставили повод написать об этом и в 2023-м. В FireDAC для MS SQL Server, по аналогии с PostgreSQL и Firebird/InterBase, добавлена возможность получения OUTPUT-значения после DML операции с помощью параметров.

26 июля 2023

Новые редакторы свойств контролов в IDE Delphi 12

    Уже несколько лет пользователям Delphi и C++ Builder через RAD Studio GetIt Package Manager доступен бонус – библиотека Konopka Signature VCL Controls (KSVC). Это библиотека, права на которую Embarcadero купила у Raize Software, имеет большой набор VCL-контролов и дизайнеров их свойств. Авторы Delphi 12, чтобы упростить разработчикам проектирование пользовательского интерфейса, добавили в IDE Delphi некоторые дизайнеры свойств из библиотеки KSVC.

24 июля 2023

Получение списка дочерних контролов в Delphi 12

    В VCL получить список дочерних контролов у контрола можно с использованием цикла по массиву дочерних контролов TWinControl. Так как некоторые контролы сами могут быть контейнерами для контролов, то метод получения списка контролов на всех уровнях вложенности должен вызываться рекурсивно. В Delphi 12 эту задачу облегчили добавлением TControl Enumerator.

21 июля 2023

Новая версия RAD Server использует FastMM 5

    Весной 2020 года состоялся релиз менеджера памяти FastMM 5. Ядро новой версии RAD Server, которая будет выпущена с Delphi 12, использует FastMM5. Переход на FastMM5 позволил увеличить производительность RAD Server. Особенно в сценариях с интенсивной многопоточностью. Средний прирост производительности составил 5%.
    FastMM 5 имеет двойную лицензию: бесплатную (соответствующую GPL v3) и коммерческую. Интересно, на сколько разработчиков компания Embarcadero купила лицензий и платила ли вообще?

19 июля 2023

NativeInt в Delphi 12 стал "слабым" псевдонимом

    В работе с целочисленными типами у компилятора Delphi 12 произошло существенное изменение, которое повлияет на перегрузку процедур/функций и совместимость 32-х и 64-х битного кода. Речь идет о "плавающем" типе NativeInt (NativeUInt). В 32-х битном приложении он эквивалентен типу Integer, а в 64-х битном типу Int64. К тому же размер NativeInt эквивалентен размеру указателя в выбранной платформе (4 или 8).

17 июля 2023

Свойство ShowInTaskbar у TForm в Delphi 12

    В Delphi 12 классу TForm добавили новое свойство ShowInTaskbar. Это свойство определяет, должна ли форма иметь иконку на панели задач Windows. То есть теперь даже не основная форма приложения, у которой свойство ShowInTaskBar имеет значение True, будет иметь на панели задач свою иконку. Это позволит свернуть и восстановить форму через ее иконку на панели задач независимо от состояния основной формы. Для основной формы приложения (Application.MainForm) свойства ShowInTaskBar и Application.MainFormOnTaskBar синхронизируются.

14 июля 2023

Многострочные строковые литералы в Delphi 12

    Продолжим тему строковых литералов в Delphi 12. Кроме длинных строковых литералов в компилятор Delphi 12 добавлена поддержка многострочных строковых литералов. Больше не будет необходимости, как раньше, объединять строки в один строковый литерал используя оператор "+".
Многострочные строковые литералы в Delphi 12

12 июля 2023

Длинные строковые литералы в Delphi 12

    Строки в Delphi, можно сказать, безразмерные. Они могут занимать в памяти до 2GB и вмещать примерно 230 символов для UnicodeString, или даже 231 для AnsiString. Но для обратной совместимости у него есть строковый тип ShortString, который как классическая строка Pascal, ограничена 255 символами. Все эти годы компилятор Delphi обрабатывал строковые литералы как ShortString. Поэтому если программист в коде писал литерал из более чем 255 символов, то получал ошибку "E2056 String literals may have at most 255 elements ".
Delphi 11: [dcc32 Error] E2056 String literals may have at most 255 elements
Что бы избавиться от ошибки, такой строковый литерал необходимо было разделить на несколько отдельных литералов и объединить их, используя оператор "+". Delphi 12 снял это ограничение. Теперь длина строки литералов ограничиваться только ограничениями редактора (4K символов в строке).

22 июня 2023

Первый международный конгресс посвященный языку Pascal

    С 3 по 7 июля 2023 года в испанском городе Саламанка пройдет первый международный конгресс, посвященный языку программирования Pascal – International Pascal Congress (IPC 2023). Его организатором является Университет Саламанки, который учрежден в 1254 году и является одним из старейших университетов в Европе. Основные цели IPC 2023: стимулирование роста популярности языков программирования семейства Pascal, обсуждение новых идей и технологического сотрудничества, обмен знаниями о программировании, создание благоприятной среды для расширения сообщества Pascal.

19 июня 2023

Что нового в стандарте SQL:2023?

    Международная организация по стандартизации (ISO, International Organization for Standardization) в начале июня 2023 года приняла новую версию стандарта ISO/IEC 9075 "Information technology - Database languages - SQL" – SQL:2023. Этот стандарт определяет требования к синтаксису языка SQL, которые, хоть немного, но обеспечивают совместимость реляционных СУБД. Его первая версия вышла в 1986 году и была основана на стандарте ANSI SQL. Я считаю, что основополагающим стандартом для SQL был SQL-92. Он заложил фундамент, а остальные редакции его просто "достраивали" функционалом не совсем связанным с SQL: регулярные выражения, массивы, XML, JSON, элементы объектно-ориентированного программирования... Исключением можно считать только SQL:2003, который дал нам то, без чего сегодня трудно представить реляционную базу данных: оконные функции, генераторы последовательностей, автоинкрементные столбцы, MERGE, CREATE TABLE AS. А, что нового в стандарте SQL:2023?

15 июня 2023

Результаты Stack Overflow Developer Survey 2023

    Stack Overflow опубликовал результаты прошедшего Stack Overflow Developer Survey 2023. Анкету заполнили более 90 000 разработчиков. В этом году в разделе "Programming, scripting, and markup languages" был учтен 51 язык. Это на 9 больше чем в прошлом. Пятерка лидеров раздела среди профессиональных разработчиков не изменилась:

12 июня 2023

Сколько строк обработал оператор DML?

    После выполнения оператора DML модифицирующего данные иногда бывает необходимо узнать, сколько строк им было обработано. Это может быть полезно, например для определения успешности выполнения оператора или для ведения журнала операций. Каждая СУБД реализует такую функциональную возможность по-своему.

31 мая 2023

Skia в Delphi 12

    Google Skia – кроссплатформенная библиотека с открытым исходным кодом для работы с 2D-графикой. Она является графическим движком для Google Chrome, Chrome OS, Android, Mozilla Firefox, Firefox OS и многих других программных продуктов. Первый раз я столкнулся со Skia в 2019-м году, когда делал утилиту под Linux для работы с файлами формата MS Excel. В проекте у меня была библиотека TMS FlexCel, которая для работы с графикой под операционными системами отличными от Windows использует Skia. Не так давно Skia заметили в Embarcadero R&D и добавили в GetIt библиотеку Skia4Delphi, которая является интерфейсом между Delphi и Google Skia. По информации Марко Канту, Skia4Delphi станет частью RAD Studio 12. Что может дать эта библиотека Delphi 12?

26 мая 2023

Новая жизнь MDI-приложений в Delphi 12

    Приложения с многодокументным интерфейсом (MDI – multiple document interface) предоставляют пользователям оконный интерфейс, в котором большинство окон расположены внутри одного главного окна (как правило исключением являются только модальные окна). Когда-то этот способ организации графического интерфейса пользователя был очень популярен. Но ему на смену давно пришли SDI (single document interface, однодокументный интерфейс) и TDI (tabbed document interface, многодокументный интерфейс с вкладками). Так как на Delphi поддерживается множество старых проектов, то разработчики из Embarcadero R&D были вынуждены в новой версии RAD Studio уделить внимание MDI.

19 мая 2023

Конференция "Python GUI Apps Con 2023"

    Компания Embarcadero анонсировала бесплатную онлайн-конференцию "Python GUI Apps Con 2023". Конференция пройдет 14 и 15 июня 2023 года и будет посвящена:
  • проектированию пользовательского интерфейса с помощью библиотек Python GUI (DelphiFMX, PySimpleGUI, Tkinter и других);
  • интеграции искусственного интеллекта в приложения с графическим интерфейсом;
  • генерации изображений по текстовым описаниям (Stable Diffusion);
  • изучению языковых моделей подобных ChatGPT;
  • использованию RAD Studio, Delphi и C++ Builder;
  • ...

18 мая 2023

Официальная коллекция шаблонов для FastReport

    Компания Быстрые отчеты открыла сайт с коллекцией шаблонов для генератора отчетов FastReport. Коллекция содержит шаблоны для более чем 50 документов, форма которых утверждена Росстатом, Госкомстатом или Центральным Банком России. Каждый шаблон загружен в двух форматах: fr3 (для Delphi) и frx (для .NET). Дополнительный приятный бонус – шаблоны можно скачать в формате PDF. Хотя сайт и называется "МоиОтчеты Магазин", но все шаблоны можно скачать бесплатно. Может быть, пока бесплатно...
Магазин шаблонов для FastReport
    Подобная коллекция шаблонов для FastReport – это хорошая идея и ее нужно было реализовать уже давно. На протяжении десятков лет тысячи программистов тратили свое время на создание одинаковых шаблонов. Теперь его можно сэкономить, воспользовавшись готовыми шаблонами. Но хотелось бы больше категорий и, чтобы география этой коллекции не ограничивалась одной страной.

16 мая 2023

Голосуй за Delphi и RAD Studio в Stack Overflow Developer Survey 2023

    Stack Overflow начал традиционный ежегодный опрос разработчиков. В этом году в анкету снова включены Delphi (раздел "Programming, scripting, and markup languages") и RAD Studio (раздел "Development environments"). В прошлом в году в опросе приняли участие более 70 000 разработчиков и Delphi занял 23-е место из 42, а RAD Studio 22-е место из 27.
    Анкета Stack Overflow Developer Survey 2023 меньше чем прошлогодняя и на ее заполнение потребуется примерно 5 минут. Учетная запись Stack Overflow для этого не требуется. Анонимные результаты опроса будут опубликованы в открытом доступе в соответствии с лицензией Open Database License, это означает, что любой желающий может загрузить и проанализировать данные.

26 апреля 2023

Новая сборка RAD Studio, Delphi и C++Builder 11.3

    Сегодня, 26 апреля 2023 года, компания Embarcadero кроме новой версии Delphi и C++Builder Community Edition выпустила новую сборку RAD Studio, Delphi и C++Builder 11.3 Alexandria (28.0.48361.3236). Она представляет собой исходный релиз RAD Studio 11.3 (сборка 28.0.47991.2819) с исправлениями первого патча. Если вы уже установили исходную версию RAD Studio 11.3, то заменять ее новой сборкой не нужно.

Выпущены Delphi 11 Community Edition и C++Builder 11 Community Edition

    Сегодня, 26 апреля 2023 года, компания Embarcadero представила новые версии Delphi Community Edition и C++Builder Community Edition. Эти версии реализована на базе последней версии RAD Studio 11.3 Alexandria (28.0.48361.3236).
Delphi 11.3 Community Edition SplashScreen
Community Edition предоставляет студентам, разработчикам "любителям", некоммерческим организациям и стартапам с доходом менее 5000 долларов США бесплатный функционал Delphi и C++Builder 11.3 Professional Edition. Подробнее о Delphi 11 Community Edition и C++Builder 11 Community Edition вы можете почитать на страницах этих продуктов и в Delphi & C++Builder Community Edition FAQs.

17 апреля 2023

Конвертация данных при изменении типа столбца таблицы PostgreSQL

    Изменение типа данных столбца таблицы в PostgreSQL делается с использованием команды ALTER TABLE в комбинации с ALTER COLUMN. Согласно документации эта операция "будет успешна, только если все существующие значения в столбце могут быть неявно приведены к новому типу". Но это не совсем верно. Например, мешают еще связанные с этим столбцом ограничения DEFAULT и CHECK, или несовместимость типов данных. Тип VARCHAR(4) можно легко сменить на CHAR(4) или наоборот, а попытка сменить на INTEGER приведет к ошибке. И эта ошибка будет даже для пустой таблицы.

12 апреля 2023

Выпущен RAD Studio 11.3 Alexandria Patch 1

    Компания Embarcadero выпустила первое обновление для RAD Studio, Delphi и C++Builder 11.3 Alexandria. Этот патч устраняет в RAD Studio 11.3 ряд проблем: разбор content type у REST-запросов, пропуск некоторых событий базы данных, ошибки в IDE и отладчике, а также нехватку некоторых отсутствующих файлов для новой компоненты TBiometricAuth. Установка этого обновления рекомендуется для всех пользователей RAD Studio 11.3.

10 апреля 2023

Oracle Database 23c Free Developer Release

    Компания Oracle выпустила для разработчиков бесплатную версию Oracle Database 23c. Теперь у разработчиков есть возможность создавать новые приложения и улучшать существующие с помощью новейшей версии СУБД ещё до начала ее продаж. Весь набор функциональных возможностей Oracle Database 23c планируется сделать общедоступным в течение следующих 12 месяцев.

04 апреля 2023

PostgreSQL. Корректировка следующего значения полей SMALLSERIAL, SERIAL и BIGSERIAL

    У PostgreSQL, как и у многих других СУБД, есть возможность создавать в таблицах автоинкрементные столбцы. Для этого предназначены типы данных SMALLSERIAL, SERIAL и BIGSERIAL. К сожалению, авторы PostgreSQL не сделали никаких ограничений на прямую запись в столбцы этих типов. С одной стороны – это удобно. В таблицу можно записать данные, у которых уже есть значения для этого столбца. Но с другой стороны – это большая проблема. Такие действия могут привести к дублированию или к ошибке, когда позже при обычной вставке новой записи в таблицу СУБД попытается заполнить поле автоматически. Для сравнения, можно привести как продуманно это реализовано в MS SQL Server. Что бы записать значение в столбец, помеченный как IDENTITY, нужно это разрешить специальной командой "SET IDENTITY_INSERT": вызываем "SET IDENTITY_INSERT имя_таблицы ON", вставляем нужные записи и вызываем "SET IDENTITY_INSERT имя_таблицы OFF". При этом СУБД сама скорректирует текущее значение счетчика на максимальное значение столбца. Для PostgreSQL эту корректировку надо произвести вручную.

29 марта 2023

MS SQL Server. Управление контекстом безопасности подключения к связанным серверам

    Механизм связанных серверов MS SQL Server позволяет реализовать распределенные базы данных, которые работают с данными в других базах данных. "Связаться" можно с любым источником данных, для которого существует возможность подключения к нему с использованием OLE DB. Есть два шага обеспечения безопасности при подключении к удаленной базе данных связанного сервера:
  1. сопоставить имена пользователей локального сервера MS SQL Server с именами пользователей удаленного сервера;
  2. указать, как связанный сервер должен обрабатывать подключение пользователей, имена которых не сопоставлены.
Оба эти шага из T-SQL выполняются с помощью процедуры sp_addlinkedsrvlogin. Она создает или обновляет сопоставление между учетными записями пользователей локального и удаленного серверов. Название процедуры намекает на шаг с сопоставлением имен пользователей, но определенные комбинации ее параметров позволяют управлять подключением всех не сопоставленных пользователей.

27 февраля 2023

Выпущены Delphi, C++Builder и RAD Studio 11.3 Alexandria

    Сегодня, 27 февраля 2023 года, компания Embarcadero выпустила RAD Studio 11 Alexandria Release 3 (RAD Studio 11.3). По словам Марко Канту, "RAD Studio 11.3 — это качественный релиз, обеспечивающий повышенную стабильность и дополнительную производительность для разработчиков на Delphi и C++Builder". В RAD Studio 11.3 реализовано более 400 улучшений. Из них 365 - это исправление ошибок.

Embarcadero RAD Studio 11.3 Alexandria

    По сложившейся традиции, пираты выложили ISO-образ новой версии RAD Studio и генератор лицензий для нее раньше, чем компания Embarcadero сделала ее официальный анонс. У них уже доступна Embarcadero RAD Studio 11.3 Alexandria Architect версии 28.0.47991.2819. Напоминаю, что официальный релиз RAD Studio 11.3 Alexandria запланирован на 28.02.2023 года. О нем будет объявлено во время бесплатного вебинара "What's Coming in the Next RAD Studio 11 Alexandria".

08 февраля 2023

TIOBE Index февраль 2023: Победное шествие C++ продолжается

    Первую половину 2022-го года рейтинг C++ в TIOBE Index колебался то вверх, то вниз. Но с сентября эти колебания прекратились и начался устойчивый рост, который привел к тому, что в декабре 2022 года C++ вытеснил Java из топ-3 TIOBE Index и занял его место. Рост рейтинга C++ продолжается. А лидеры рейтинга, наоборот, его синхронно теряют.

07 февраля 2023

Назначена дата выпуска Delphi, C++Builder и RAD Studio 11.3 Alexandria

    Компания Embarcadero назначила дату выпуска Delphi, C++Builder и RAD Studio 11.3 Alexandria. По сложившейся традиции официальное сообщение о новой версии будет сделано на посвященном ей вебинаре. Вебинар "What's Coming in the Next RAD Studio 11 Alexandria" пройдет 28 февраля 2023 года в 19:00 по Минскому времени (10 AM CST, 5 PM CET, 19 по МСК). Итак, что нас ждет?

03 февраля 2023

Программа DelphiCon 2023

Компания Embarcadero опубликовала список докладов DelphiCon 2023:
  • 14 февраля 2023
    • "Looking Forward with Modern Delphi" Jim, Marco, David, Kyle, Stephen
    • "User Interface Design with Actions" Ray Konopka
    • "Every App Trick in the Book" Ian Barker
    • "NX Horizon - The Open Source Event Bus for Delphi" Dalija Prasnikar
    • "Every App Trick in the Book" Ian Barker
    • "When Delphi reaches the Cloud!" Dion Mai
    • "Visualize Data from FireDAC on Maps with Delphi and TMS FNC Maps" Dr. Holger Flick
  • 15 февраля 2023
    • "Spice Up Your Apps with Animations" Ray Konopka
    • "Creating LibreOffice Documents in Delphi" Ian Barker
    • "Evolution of FastReport VCL – Cool features highlight" Denis Zubov
    • "Delphi and AI" Olaf Monien
    • "Demystifying Domain-Driven Design(DDD) In Delphi" Gustavo Mena Barreto
    • "Integrating your apps with Alexa devices" Kivian Cristaldo Emerim
    • "QR Code Case Study - Gate System Arab Diploma" Ziad Allaghi
  • 16 февраля 2023
    • "Using Ntfy to send and receive push notifications" Samuel Rosa de Oliveira
    • "Avoiding Memory Leaks and Dealing with Delphi Exceptions" Maico Dal Ri
    • "Delphi + OpenAI: A Blessing or a curse?" Jim McKeeth
    • "Advanced Visual Effects" Jim McKeeth
    • "Git, Demystified" Rich Dudley
    • "Getting Physical in Your Games with Castle Game Engine" Michalis Kamburelis
Бесплатная регистрация на онлайн-конференцию DelphiCon 2023.

23 января 2023

Анонс DelphiCon 2023

    Компания Embarcadero анонсировала бесплатную онлайн-конференцию DelphiCon 2023. Конференция приурочена к празднованию 28-летия выпуска первой версии Delphi и пройдет в период с 14 по 16 февраля 2023 года. С докладами выступят сотрудники Embarcadero, MVP, представители технических партнеров и другие известные в сообществе Delphi лица. Программа мероприятия будет опубликована ближе к DelphiCon 2023.
DelphiCon 2023
    Осмелюсь предположить, что перед DelphiCon 2023 или во время ее проведения будет объявлено о выпуске Delphi, C++Builder и RAD Studio 11.3. Закрытое бета-тестирование RAD Studio 11.2 Mauritius длилось примерно два месяца. Закрытое бета-тестирование RAD Studio 11.3 Malawi началось в конце ноября 2022. Это наводит на мысль, что выпуск RAD Studio 11.3 можно ждать или в последних числах января, или, скорее всего, в первой половине февраля. Хотя, если смотреть на даты выпуска предыдущих версий: 11.0 – 09.09.2021, 11.1 – 15.03.2022, 11.2 – 07.09.2022, то выпуск 11.3 – это март 2023. С учетом того, что в новых билдах Malawi не добавляется ни чего существенного, то я бы делал ставку на выпуск 11.3 к DelphiCon 2023 или хотя бы к концу февраля.

20 января 2023

"Find In files" сломал диалоги IDE Delphi 11.2

    Попробовал Delphi 11.2 для пет-проекта. Впечатления от этой версии пока положительные. Но поймал в IDE странный глюк. Спустя некоторое временя работы диалог компиляции стала "украшать" повторяющаяся на одинаковом расстоянии надпись "Searching:".
Searching на диалоге компиляции Delphi 11.2

13 января 2023

Неофициальное исправление Delphi LSP для Delphi 11.2

    С переходом на Delphi 11.2 появилось много жалоб на работу LSP-сервера и автозавершения. На Quality Portal в обсуждении RSP-39812 LSP and Code Completion not working properly Bruneau Babet выложил файлы Delphi LSP версии 28.0.47581.2390.

06 января 2023

Подведение итогов 2022 года на TIOBE Index

    Рейтинг популярности языков программирования TIOBE Index подвел итоги 2022 года. Языком программирования 2022 года стал C++. Он получил этот титул потому, что показал в прошлом году самые большие темпы роста (+4.62%). Второе и третье места заняли языки C (+3.82%) и Python (+2.78%).