libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. Writing one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework. The plugin architecture allows for new database drivers to be easily added by a third party with flexible licensing.
re: what about GString in glib?
I haven't used the gstring in glib, but the benefit of this GString is more for ex-windows programmers who want to easily port code (like me :). It's source compatible with MFC's CString so you just need to s/CString/GString/gi in your code.