В комментариях к статье "Создание PDF файла в Windows и Linux" читатели рассказали о использовании для создания документов в формате PDF генератора отчетов FastReport. У меня уже был подобный опыт, и я даже писал об этом 10 лет тому назад. Сейчас я не стал приводить пример с FastReport, так как моя статья была написана еще до выхода FastReport FMX версии 2.8, в которой была добавлена поддержка FmxLinux. Сегодня я сделал несколько первых экспериментов с FastReport FMX под Ubuntu Desktop 20.04. Он действительно работает под Linux! Запускать мой тест экспорта в PDF я решил, как и в прошлой статье, не под Ubuntu Desktop, а под Ubuntu Server.
Язык программирования самого высокого уровня содержит всего несколько команд для управления программистами
22 февраля 2021
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 давно идет с хештегом "олды помнят".
Представим, что 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 не работает. Я попробовал запустить пример, который скомпилировал при ее написании - действительно не работает. Что случилось?
Подписаться на:
Сообщения (Atom)
