22 февраля 2021

Создание PDF файла в Linux без графической оболочки используя FastReport FMX

    В комментариях к статье "Создание PDF файла в Windows и Linux" читатели рассказали о использовании для создания документов в формате PDF генератора отчетов FastReport. У меня уже был подобный опыт, и я даже писал об этом 10 лет тому назад. Сейчас я не стал приводить пример с FastReport, так как моя статья была написана еще до выхода FastReport FMX версии 2.8, в которой была добавлена поддержка FmxLinux. Сегодня я сделал несколько первых экспериментов с FastReport FMX под Ubuntu Desktop 20.04. Он действительно работает под Linux! Запускать мой тест экспорта в PDF я решил, как и в прошлой статье, не под Ubuntu Desktop, а под Ubuntu Server.

18 февраля 2021

MS SQL Server. Преобразование из ASCII в HEX и обратно

    Попросили меня написать скрипт, который конвертировал данные из одной таблицы в другую. При этом одно из текстовых полей нужно "привести к верхнему регистру, взять символы в обратном порядке и преобразовать их из ASCII в HEX". Например, строка "XYZ" должна превратиться в "5A5958". Привести к верхнему регистру и взять символы в обратном порядке – это делают встроенные строковые функции UPPER и REVERSE. Но, преобразование из ASCII в HEX поставило меня в тупик. Гугл мне в помощь!

14 февраля 2021

Мир без Delphi. 26-летию Delphi посвящается

    26 лет тому назад, 14 февраля 1995 года, компания Borland выпустила новый продукт для быстрой разработки приложений - Borland Delphi. Я могу писать это предложение каждый год, только менять цифры в его начале. Но для большинства современных программистов это событие ничего не значит. Delphi для них – это то, о чем рассказывал старый, выживший из ума, препод в ВУЗ'е. А упоминание компании Borland давно идет с хештегом "олды помнят".
Borland Delphi Client/Server
    Представим, что 26 лет тому назад компания Borland не выпустила новый продукт для быстрой разработки приложений - Borland Delphi...

08 февраля 2021

Создание PDF файла в Windows и Linux

    Различные операционные системы все больше теснят MS Windows в технических заданиях. Часто все усугубляется пугающим в недалеком прошлом словом "кроссплатформенность". Многие задачи могут потребовать серьезной доработки для портирования под другую операционную систему. Повезет тем, кто изначально заложил в проект использование кроссплатформенных библиотек. Им портирование можно будет реализовать в несколько строк кода или добавлением директив компилятора. Одним из самых востребованных кроссплатформенных форматов электронных документов является формат PDF. Сегодня я рассмотрю несколько вариантов создания файлов в этом формате под Windows и Linux. Но они подойдут и для других операционных систем.

31 января 2021

Быстрое заполнение нового столбца таблицы

    Недавно мне дали скрипт для обновления структуры базы данных на MS SQL Server. В нем было полно блоков, которые добавляли в таблицу столбец, заполняли его в существующих строках одинаковым значением и делали NOT NULL:
alter table MyTable add FIELD1 int null
go
update MyTable set FIELD1 = 1
go
alter table MyTable alter column FIELD1 int not null
go
Что будет, если количество строк в таблице измеряется не сотнями или тысячами, а миллионами или десятками миллионов?

18 января 2021

Clever Internet Suite. Аутентификация на SFTP-сервере с помощью SSH-ключа

    В статье "Передача файлов по SFTP" я подключался к SFTP-серверу используя парольную аутентификацию пользователя. Теперь давайте рассмотрим аутентификацию пользователя с помощью SSH-ключа. Для нее используется пара ключей: открытый (public, публичный) и закрытый (private, приватный). Публичный ключ хранится на сервере и представляет собой цифровой замок, который можно открыть только с помощью закрытого ключа. Считается, что аутентификация с помощью SSH-ключа обеспечивает более надежную проверку подлинности пользователя.

06 января 2021

Встраиваем Microsoft Edge. Дополнение

    В мае 2020-го года я писал про использование TEdgeBrowser для встраивания в приложение на Delphi браузера Microsoft Edge на основе Chromium. В комментариях к статье появились жалобы, что TEdgeBrowser не работает. Я попробовал запустить пример, который скомпилировал при ее написании - действительно не работает. Что случилось?