Вчера Марко Канту опубликовал новость о том, что компания Embarcadero получила патент "Tracking change data in a database", который связан с реализацией Change Views в InterBase. А какие еще патенты есть у Embarcadero Technologies Inc и какие она хочет получить?
Язык программирования самого высокого уровня содержит всего несколько команд для управления программистами
31 октября 2019
28 октября 2019
Delphi & PostgreSQL. Фиксим "character with byte sequence 0xcc 0x81 in encoding "UTF8" has no equivalent in encoding "WIN1251""
В логах моей программы появилась странная ошибка:
Враг назначен, т.е. найден, теперь будем решать, что с ним делать.
25.10.2019 10:01:24.523 Thread #5: character with byte sequence 0xcc 0x81 in encoding "UTF8" has no equivalent in encoding "WIN1251"Первой мыслью было, что Elasticsearch не принял данные, которые я ему передал REST-запросом. Но запустив программу под отладкой я получил эту ошибку при открытии запроса к БД PostgreSQL:
Project XYZ.exe raised exception class EPgError with message 'character with byte sequence 0xcc 0x81 in encoding "UTF8" has no equivalent in encoding "WIN1251"'Посмотрев в БД данные, я сначала из-за у-умлаут грешил на слово "Zürich". Но сохранив текст в двух вариантах в файл (UTF8 и ANSI) и сравнив их, я увидел, что разница была в "Дадаи́зм" и "Дадаи?зм". Таким образом врагом WIN1251 объявляю букву "и" с ударением!
Враг назначен, т.е. найден, теперь будем решать, что с ним делать.
24 октября 2019
PostgreSQL и часовой пояс
Заметил, что у меня в базе данных на PostgreSQL, все поля, которые заполняются по умолчанию текущим временем (DEFAULT LOCALTIMESTAMP), отстают от реального времени на 10 часов. В 19:45 запрос
вернулselect localtimestamp, current_timestamp
"11.10.2019 9:45:56" "2019-10-11 09:45:56.884309-07"
20 октября 2019
"ё"... "е"... какая мне разница? Программа должна найти!
Буква "ё" совсем не важна... Завтра похолодает и мы все передохнем от жары... |
Иногда я завидую англоязычным программистам. Например, на клавиатуре им не надо переключать раскладку. А ещё у них нет буквы "Ё"! Буква "Ё" - это очень своенравная особа. Она обязательна только в собственных именах, а в остальных случаях употребление "Ё" или "Е" определяется выбором автора текста. Но при этом пользователя, который ищет по тексту, не заботит, что написал автор - "Ё" или "Е". А какая ему разница? Программа должна найти!
15 октября 2019
Получение в программе значения первичного ключа после INSERT
Часто бывает, что после добавления строки в таблицу необходимо получить сгенерированное в СУБД значение первичного ключа. Например, это необходимо для последующей вставки detail-данных. Самый "оригинальный" способ, что я видел: стартуем транзакцию, вызываем INSERT, делаем запрос "select MAX(ID) from table", вставляем detail-данные, коммитим... Но мы пойдем другим путем – без дополнительных запросов к базе данных. Мы воспользуемся вызовом оператора INSERT с модификатором RETURNING. Вопрос только в том, как получить в программе значение из RETURNING?
11 октября 2019
09 октября 2019
Работа с файлами формата MS Excel в программе под Linux
Продолжая тему обработки файлов формата MS Excel в программах на Delphi, поговорим об их обработке в программе под Linux. Такую возможность программистам на Delphi предоставляет библиотека TMS FlexCel. Она позволяет работать с файлами формата MS Excel под всеми операционными системами, под которые Delphi умеет создавать исполняемый файл: Windows, Linux, Android и iOS.
04 октября 2019
Правильный обход матрицы
В статье Романа Кунина "Оптимизация кода: память" рассмотрены две функции на C++, которые суммируют элементы матрицы. Они практически одинаковы, только первая функция обходит элементы матрицы по строкам, а вторая по столбцам. Проведем подобный тест на Delphi 7 и Delphi 10.3.2.
В отличии от оригинального теста, в котором суммируют элементы матрицы я предлагаю еще измерить скорость заполнения матрицы.
В отличии от оригинального теста, в котором суммируют элементы матрицы я предлагаю еще измерить скорость заполнения матрицы.
Подписаться на:
Сообщения (Atom)