powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Книга отзывов и предложений по OOAPI libfbclient
15 сообщений из 15, страница 1 из 1
Книга отзывов и предложений по OOAPI libfbclient
    #40057499
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под одной темой, чтоб не мучиться. :)

Удручает отсутствие метода clone или корректно реализованного оператора копирования у интерфейса IXpbBuilder. К примеру, имеем кейс: создаётся некий первоначальный DPB (IXpbBuilder), который перед подключением к базе должен копироваться в другой с последующим добавлением isc_dpb_user_name, isc_dpb_password и isc_dpb_sql_role_name. Чтобы реализовать подобное существующими средствами, придётся собирать unsigned char массив DPB из буферов двух IXpbBuilder, что не очень неудобно.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057500
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вопросик возник - у вас файл <firebird/IdlInterfaces.h> генерируется с помощью какой-то утилиты или же пишется вручную? Есть ли смысл делать копию этого файла и фигачить туда документацию в формате doxygen?
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057513
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по первому пункту - для этого есть трекер. По второму - достаточно посмотреть на первую строчку оного файла.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057531
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devЧтобы реализовать подобное существующими средствами, придётся собирать unsigned char
массив DPB из буферов двух IXpbBuilder, что не очень неудобно.

А, может, всё же стоит почитать документацию (пусть и скудную) повнимательнее? Новые тэги
можно добавлять либо прямо в старый билдер (с заменой существующих), либо из старого
получить буфер, которым и инициализировать новый.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057574
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, я не нашёл документацию с подробным описанием методов интерфейса IXpbBuilde, а список его методов я и так в IDE вижу. Да, выгрузка в буфер, а потом загрузка этого буфера, как исходного для нового IXpbBuilder, работает. Ночью меня при отладке смутило, что новые кламплеты при выгрузке попадают в начало буфера, а не в конец и решил, что затираются предыдущие. Сейчас повнимательней посмотрел, не затираются - сдвигаются. Но всё равно приходится выгружать в буфер, а потом загружать и было бы удобней делать это через clone.

Также мне показалось странным, что в обёртке только один вариант вызова attachDatabase - с передачей указателя на начало байтового буфера DPB и его размера (точнее, сначала размера, потом указателя), но нет варианта с передачей указателя на IXpbBuilder.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057578
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что это API делалось тяп-ляп, простой группировкой функций старого API в методы
класса по типу первого хэндла. С сохранением сигнатур (в большинстве случаев) и без
попыток улучшения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057581
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, понятно.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40057592
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr, увидел! :)
Код: plaintext
// This file was autogenerated by cloop - Cross Language Object Oriented Programming
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060778
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, интерфейсу IMessageMetadata не хватает таких же методов, как у IXpbBuilder - getBuffer() и getBufferLength() для доступа к XSQLDA как есть. Иногда это и удобнее и быстрее, чем дёргать методы.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060783
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот класс не обёртка над старым API, у него нет XSQLDA внутри. В отличии от.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060926
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, иными словами, внутренняя структура XSQLDA в IMessageMetadata не совпадает со структурой ISC API?
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060930
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

иными словами никакой внутренней XSQLDA в IMessageMetadata не существует
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060935
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

видимо ты не очень разобрался с новым API. В IMessageMetadata нет никакого буфера, это только описание самих метаданных для работы с буфером. И таки getMessageLength будет аналогом getBufferLength.

Чтобы уменьшить накладные расходы на дёргание методов. Ты можешь сам создать массив структур, который можно заполнить из IMessageMetadata единожды, а потом тупо обращаться к этой структуре по индексу.

Посмотри примеры 03.select.cpp и 04.print_table.cpp
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060939
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, я не разбирался в внутренним устройством клиентской библиотеки, а OO API, это лишь набор классов с методами, полностью скрывающими реализацию, включая внутренние структуры данных. Если IMessageMetadata не использует у себя в реализации структуру XSQLDA, ну чтож... На нет и суда нет! Значит вытащить буфер с XSQLDA невозможно в принципе. Спасибо за информацию!

P.S. Примеры видел.
...
Рейтинг: 0 / 0
Книга отзывов и предложений по OOAPI libfbclient
    #40060942
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

новый API предполагает что такие структуры будут создавать сами разработчики компонентов доступа. Зато это снимает все ограничения по длине идентификаторов например. В старую XSQLDA ты идентификаторы длиннее 31 байта не засунешь.
Теоретически можно самому сделать XSQLDA2 и функции для работы с ней.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Книга отзывов и предложений по OOAPI libfbclient
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]