Table of Contents
IBPP, a C++ Client Interface to Firebird Server
On this web site, you will find resources and reference documentation about IBPP, a C++ Client Interface to Firebird Server (and InterBase®).
The current released code is at version 2.5.3.1 and the documentation on this site applies to that version. Firebird 2.0 is of course supported.
Work is in progress toward a 3.0 codebase which will bring new extensions. You may peek at some very preliminary (and very subject to significant changes) information about the version 3.0.
What is Firebird?
Firebird is an open source relational database server offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, powerful language support for stored procedures and triggers. It has been used in many production systems within a large number of commercial companies since 1981.
Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License v.1.0 on 25 July, 2000.
What is IBPP?
IBPP, where the 'PP' stands for '++', is a C++ client interface for Firebird versions 1.0, 1.5 and further. It also works with InterBase® 6.0, though it is expected it might only support Firebird in the future. It is a class library, free of any specific development tool dependancies. It is not tied to any 'visual' or 'RAD' tool. It was indeed developed to add Firebird access in any C++ application. Those applications using IBPP can be non-visual (CORBA/COM objects, other libraries of classes and functions, procedural 'legacy' code, for instance). But it can of course also be used in visual or RAD environments. IBPP is indeed purely a dynamic SQL interface to Firebird. In some easy to use C++ classes, you will find nearly all what is needed to access a Firebird database, and manipulate the data. IBPP also offers access to most of the administrations tasks: creating a database, modifying its structure, performing online backups, administering user accounts on the server and so on.
Who is the IBPP Team?
All the persons and organizations who directly contribute either to the development or the support of IBPP. The initial contributor to the project was T.I.P. Group S.A., known today as Integral Software S.A.
Licensing
IBPP is an open-source free software project. Here is the IBPP License document.
Where can I get IBPP?
Jump to our development pages on SourceForge where IBPP development is hosted. There you can download the latest released code, and often, the latest beta too. Sourceforge is also the home of our code repository, see the Subversion tab. You can browse the code online.
Where/How to get support?
Well, first, read the reference guide.
Then please use the ibpp-discuss users mailing list for general assistance. We ask you to first subscribe to the list, then post your questions to the list.
(Due to the anti-spam techniques on this list, posts by non list members are held for review by administrators, and depending when those find time to look for held messages, your question might experience delays of multiple hours before being delivered to the group of users. Also if you're not subscribed to the list, you won't get the answers to your questions.)
You are welcome to report bugs through the bug database system available on the project page at SourceForge. It may be a good idea to first discuss the issue on the list.
Where does IBPP come from?
IBPP comes from IInterface
, an internal proprietary and experimental project of T.I.P. Group S.A., now 'Integral Software S.A.' back in 1999 (that's in Belgium, Europe). In august 2000, IInterface
was re-worked and got released. The motivation was to allow further collaborative open-source, open-minded development of the class library and port it to Linux too. Yes, the primary and original development environment was Win32.