IBPP очень стабильный, и я бы рекомендовал его для производства. То есть, если вы собираетесь использовать его для обычных приложений.
Если вы хотите создать инструмент администратора или что-то подобное, будьте готовы пойти внутрь и запачкать руки, так как некоторые из более новых функций (например, Firebird 2.5), которые не являются SQL, но улучшения API не поддерживаются. Например, отсутствует слой, который предоставит новый API-интерфейс трассировки.
Во всяком случае, давай, и я использую это. У меня есть куча приложений IBPP в производстве в течение многих лет, и, как писал Дуглас, FlameRobin использует IBPP, и он работает безупречно (по крайней мере, в отношении уровня DB).
Единственное, о чем следует быть осторожным, - это ЧИСЛОВЫЕ поля, которые внутренне хранятся как целочисленные + масштабные в Firebird. IBPP выставляет их через C / C ++ «double», но также через 16/32/64-битное целое число. Поэтому будьте очень осторожны при получении таких значений, так как вы не получите предупреждения. Например, если у вас есть поле DECIMAL (18,2) со значением 254,00, и вы случайно прочитали его в целое число, вы получите 25400, а не 254. Убедитесь, что вы либо прочитали их как двойные, либо масштабировали себя позже. Это полезно, потому что вы можете безопасно преобразовать 25400 в строку, а затем добавить десятичную точку, чтобы не потерять точность с двойной точностью (все зависит от типа вашего приложения и количества цифр, конечно).