Archive for 'IBProvider'

Вести с полей

Всех с бодрым началом лета. В IBProvider проведена очередная серия обновлений исходного кода. Устранил вещи, об которые начал спотыкаться мозг. Основная суть — зачистка и переработка интерфейсов принимающих строковые значения. Если совсем просто, то вместо «const char*» и «const std::string&» теперь используется structure::t_const_str_box (аналог std::string_view). В процессе переработки чуть было не наступил на грабли. Так […]

Вести с полей

Привет всем. Никак не получается притормозить изменения в IBP и перейти к финализации версии 5.17. Ну очень увлекательное занятие. 0. Сначала о стороннем. Судя по субъективным наблюдениям — если гонять тесты в четыре потока, то FB3 (Win/SS/x64) вроде как работает без проблем. Если в десять потоков, то рано или поздно к нему приходит северный пушистый […]

64-битные счетчики ссылок

В новой тестовой сборке IBProvider (v5.17.0.34920) осуществлен переезд на 64-битные unsigned счетчики ссылок COM-объектов. Как в 64-битных, так и в 32-битных сборках. IUnknown::AddRef теперь всегда возвращает 1, а IUnknown::Release или 1 или 0. — Внутренние объекты тоже переведены на 64-битные счетчики ссылок. — Для инкремента и декремента используются Interlocked-функции Win32 API. На древней 32-битной WinXP […]

Вести с полей

В заканчивающимся апреле в IBProvider произошла пара сдвигов, которые планировались очень давно, но до них все никак «не доходили руки». 1. Получение плана запроса. Летом 2019-го один коварный клиент убедительно попросил добавить возможность получать через провайдер план запроса. Я об этом думал уже давно. А тут еще и совесть начала про это напоминать. В общем, […]

Вести с полей

В одной популярной книге по программированию для домохозяек советуют каждый день что-нибудь выкидывать из вещей. Этот ценный совет применим и для сопровождения программных систем. Решил выкинуть из IBProvider сомнительный метод чтения с I4-колонок с приведением NULL к нулевому значению. Он используется, в том числе, для чтения значения колонок rdb$procedure_inputs и rdb$procedure_outputs (таблица rdb$procedures). Хотя бы […]

Вести с полей. C++17

Текущие тестовые сборки IBProvider (v5.14.0.33732) откомпилированы с указанием режима совместимости с C++17. Пока в коде IBP ничего из C++17 не используется. Но вот STL таки да — уже из C++17. Хотя нет. Я же «if constexpr» задействовал во встроенном zlib1, чтобы изничтожить часть предупреждений компилятора… Из вещей, которые уже очень хочется начать использовать в самом […]

Нагрузочное тестирование IBP v5 (vc15)

Обычно, нагрузочное тестирование IBProvider выполняется с использованием сборок, созданных компилятором последней Visual Studio. В настоящий момент времени это VS2019 (сигнатура сборок — vc16). В личных кабинетах доступны еще сборки, собранные в VS2017. На днях один очень старый и любимый клиент продлил лицензию. И выбрал сборки VS2017 (сигнатура vc15). Все бы ничего, но тут на rsdn […]

[winsock][BUG CHECK] Чтение из закрытого порта подключения. Ошибка WinSock: 0

Вчера замутил инструкцию по загрузке данных из FireBird в Excel. Многократно нарывался на %subj%. Проблему давил OK-еем. Она не сильно мешала достижения финиша. Позже сообразил, что она уже вылазила. Причем совсем недавно. В том случае, проблема лечилась указанием имени пользователя в верхнем регистре (GAMER) — это (насколько я понимаю) задействовало SRP-аутентификацию. А с нижним регистром […]

IBProvider v5.12 и NetProvider v1.16

На сайт и в личные кабинеты загружены очередные обновления OLE DB и ADO.NET провайдеров. IBProvider v5.12 В IBProvider, как я тут раньше писал, появилась поддержка колонок с автоинкрементом. А если конкретнее, то во множестве с описанием колонок, получаемом через интерфейс IColumnsRowset, появилась колонка DBCOLUMN_ISAUTOINCREMENT с BOOL-значением. В ней будет True для колонок с автоинкрементом и […]

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

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

« Older Entries