Опыт с интерфейсом IBPP для базы данных Firebird

Я хотел бы спросить парням с опытом в Firebird и IBPP (особенно последний). Я нашел много положительных сообщений о Firebird, но у меня есть проблема для решения о IBPP. Сам интерфейс является чистым и простым, но кажется, что проект не имеет большой части продолжения действия (возможно, потому что это очень стабильно).

  • Вы рекомендовали бы IBPP для продуктивной среды?
  • Действительно ли это ориентировано на многопотоковое исполнение?
  • Какие-либо известные ошибки?

Спасибо.

5
задан jackhab 20 January 2010 в 12:58
поделиться

3 ответа

В дополнение к пунктам Милан упомянул:

  • В настоящее время нет способа использовать более одной клиентской библиотеки при подключении к разным базам данных или даже указать, что будет использоваться клиентская библиотека. Существует определенная жестко закодированная последовательность местных местоположений клиентских библиотек, и первая, которую найден, будет использоваться для соединений всех . Изменение версии IBPP, это было намерено в течение очень долгого времени, но еще не прибыла. SVN Багажник содержит какой-то код, чтобы иметь дело с этим, но я бы сказал, что это альфа-качество.
    И все это верно для Windows только, так как на всех других платформах клиентская библиотека Firebird не загружается во время выполнения.

  • Библиотека не безопасна. Это не имеет значения для большей части, поскольку вы должны позволить каждому потоку иметь собственное подключение, транзакцию и другие разные объекты. Но IBPP использует собственную интеллектуальную реализацию указателя, которая не является ни полностью исключением - безопасным, ни потоком. Тем не менее, до тех пор, пока вы инициализируете библиотеку из основного потока (до того, как любой другой поток создан), и создать и уничтожить объекты IBPP в том же потоке (так что абсолютно не обменивается объектами с другими потоками!) Использование IBPP в нескольких потоках должна работать отлично.

  • Если вы можете жить с точками выше (они могут даже не иметь значения для вас, вообще) он, безусловно, готов к производству. Вы всегда можете изменить вещи, которые вы столкнулись, как и для Фламеробина тоже.

3
ответ дан 14 December 2019 в 08:51
поделиться

IBPP очень стабильна, и я бы порекомендовал его для производства. То есть, если вы собираетесь использовать его для регулярных приложений.

Если вы хотите построить инструмент администратора или что-то подобное, то будьте готовы войти внутрь и получить свои руки грязными, как некоторые из более новых функций (то есть Firebird 2.5 материал), которые не являются SQL, но улучшения API не поддерживаются. Например, не хватает слоя, который подвергается бы новую API трассировки.

В любом случае, продолжайте, и я использую его. У меня есть куча приложений IBPP в производстве в течение многих лет, и, как писал Дуглас, Фламеробин использует IBPP, и он работает безупречно (по крайней мере, насколько связан с ним).

Единственное, что нужно осторожно, это числовые поля, которые внутренне хранятся как целое число + масштаб в Firebird. IBPP выставляет те, которые через C / C ++ «двойной», но и через 16/32/64-битное целое число. Так что будьте очень осторожны при получении таких ценностей, как вы не получите предупреждения. Например, если у вас есть десятичное (18,2) поле со значением 254,00 в нем, и вы случайно прочитаете это в целое число, вы получите 25400, а не 254. Убедитесь, что вы либо читаете, как двойные или масштабируют себя позже. Это полезно, потому что вы можете безопасно конвертировать 25400 в строку, а затем добавить десятичную точку, поэтому вы не теряете точность с двойным (все зависит от такого типа вашего приложения, и какие цифры подсчитать, конечно).

3
ответ дан 14 December 2019 в 08:51
поделиться

Я не могу действительно рассказать от опыта, потому что я никогда не использовал IBPP.
Но, по-видимому, он используется проектом Фламеробина, поэтому я доверяю ему «достаточно стабильно».

1
ответ дан 14 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: