Usage
Features
-
Database-level abstraction
Your programs don't need to deal with the arbitrary interfaces and oddities of each database library. libdbi handles all the details for you, you just tell it what you want the database to do.
Modularity:
Since database code written with libdbi is not tied to one specific database server, you can effortlessly switch databases or give your users the option to specify their own database settings.
-
Clean interface
With ample documentation describing libdbi and its well thought out object-oriented design, programming with libdbi should be less painful than programming with native database libraries. And you only need to learn it once instead of learning each database library's syntax.
-
Accommodates coder apathy
libdbi is written to do The Right Thing(tm), not just some quick hack that does the job in a half-assed fashion. This saves tons of your $100/hour time from debugging, so that you can mess around having fun during the hours that clients are paying you to debug. It also strives to reduce the worldwide crisis of carpal tunnel syndrome, so it uses constructs such as this one to pack multiple function calls into one line, saving you the bother of typing more than you have to:
dbi_result_get_fields(result, "id.%i firstname.%s lastname.%s fractional_value.%f", &id, &firstname, &lastname, &floatval);
-
Driver interface
The dynamic linking used by libdbi allows for driver authors to license their drivers however they please - they are not restricted to the GPL or LGPL. Drivers are easy to write, and require no special installation.
-
Error handling
Instead of checking every single database call for errors, libdbi gives programmers the option of registering an error handler callback, similar to a signal handler. Because we know you'll "forget" to check for errors otherwise :)
-
Convenience
Spend your time writing clever code, not reinventing the wheel with your own single-use, #define-abusing, less featureful database interface.
Users
Some of the various projects that use libdbi:
- Aranha: a web application development platform
- Bacula: a network based backup program
- chessd: a free internet chess server
- dbixx is a C++ wrapper for libdbi
- DWI: an environment for quickly creating data-driven applications
- Evergreen: a library catalogue system
- ferite: a scripting language implemented in C
- Frog War: a multiplayer gaming platform developed by Kayak Interactive which drives wildly popular games such as Slingo-2-Go, Hangman 2, Amoebas, Mastermind, and Poker Superstars Invitational Tournament
- io: a prototype-based programming language
- MDO Framework: a software for Multi-disciplinary Design Optimization.
- OxDBI: a database independent abstraction layer for Ox, an object-oriented matrix programming language used in Econometrics
- RefDB: a refererence database and bibliography tool
- rsyslog: an enhanced syslogd supporting direct writes to databases.
- SellaNMS: a network management system developed by Digital Genesis Technologies.
- tcldbi: a database abstraction layer for TCL
Send us a mail if you want to see your project listed here