Archive for 'Программирование'

Как выглядят костыли в коде (#2)

Привет. По свежим следам, добавлю сюда заметку про недавнее изменение в коде FB3. Вдогонку Вкратце о проблеме. 1. Есть объект со счетчиком ссылок (класс rem_port). 2. Этот объект управляется через смарт указатель. И, по идее, проблем быть не должно. 3. Тем не менее у него проблема с управлением времени жизни. Дважды удаляется в многопоточной среде. […]

… и в продакшн

%subj% был первой мыслью с утра. Да, походу оно как-то так у нормальных людей и организовано 🙂

Лучше день потерять…

…потом за пять минут долететь. В рамках тестирования следующей версии IBProvider v5.12 была создана пара UBER таблиц c 4096-ю колонок в каждой, которые добили прямолинейные алгоритмы тестирования схем метаданных «schema.002.*» основной тестовой системы. Их там три штуки. Тот, который грузит схемы без кэширования, до последнего времени работал 6 часов. После появления вышеобозначенной сладкой парочки — […]

Вести с полей

Решил сам для себя изложить суть текущей проблемы 🙂 С начала недели на отстое стоит незакоммиченный код c поддержкой IDENTITY-колонок FB3. Задача простая — для всех колонок результирующего множества, напрямую отображаемых на таблицы базы данных, нужно выполнить запрос: select from rdb$relation_fields where rdb$relation_name=’‘ and rdb$field_name=’‘ and rdb$identity_type is NOT NULL Казалось бы, что тут может […]

Отладчик

До последнего момента отлаживал PHP «методом пристального взгляда». На самом деле это не сложно, если код нормально структурирован. Но сегодня что-то я устал и решил изучить тему нормальной отладки. Через 15 минут отладчик был прикручен (Win7, Apache x64, PHP5.6, xDebug, VS Code). И осторожно подумалось — наверное же и для Firebird/InterBase такое можно сделать. Один […]

Сломался просмотр данных в VS2019+FW4.8

В последней VS2019 (16.2.5), после установки .NET FW4.8, перестал работать просмотр данных таблиц через наш ADO.NET провайдер. Server Explorer -> любая таблица -> контекстное меню -> загрузить данные -> пустое окно. До установки FW4.8 (на FW4.7.2) проблем не было. Это плохая новость. Хорошая новость — через стандартный провайдер (System.Data.OleDb) просмотр данных тоже перестал работать. Нужно […]

Interlocked функции для Int64 и WinXP

В детстве меня покусал Джеф Рихтер, поэтому я свято верил в то, что Interlocked-функции экспортируются системной DLL-ю. В сгенерированный машинный код для вызова этих функций я не заглядывал. Как следствие, я считал что версии для 64-битных чисел на старой WinXP не поддерживаются и использовать их нельзя… Этому способствовало и описание этих функций. Например, InterlockedExchange64: Minimum […]

Проклятый Intellisense

В процессе реорганизации кода получил 4 ошибки компиляции: Ошибка C2065 ibp_task_controller_state__cancelled: необъявленный идентификатор Ну, думаю, приплыли. Смотрю первый случай:

Вести с полей

Выложены обновления IBProvider v5.5.1 и «LCPI OLE DB Services» v1.9. Предмет гордости — «LCPI OLE DB Services» собирается с нулевым количеством предупреждений 4-го уровня. Четвертого, Карл! Аналогичный подвиг в отношении IBProvider не осилил. Нужно будет думать. Зато изничтожил все предупреждения третьего уровня. Из «интересностей» — устранение предупреждений в коде вида: Заменил 0 на structure::zero — […]

VS2019 (C++) и Windows XP SP2

Некоторые виды проверок IBProvider осуществляются на виртуальной машине с древней Windows XP SP2. Ставлю я туда сборки vc12xp (VS2013, XP Mode). А сегодня что-то в голове щелкнуло и решил попробовать туда поставить сборки vc16 (VS2019). Работают! Я так удивился, что тут же попробовал туда поставить сборки vc15 (VS2017) — не работают. Вылазит ошибка, связанная с […]

« Older Entries