balabit / libdbi Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Lesser General Public License v2.1
License: GNU Lesser General Public License v2.1
libdbi - Database Independent Abstraction Layer for C Copyright (C) 2001-2007, David Parker, Mark Tobenkin, Markus Hoenicka. http://libdbi.sourceforge.net INTRODUCTION: ------------- 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 flexbile licensing. See the libdbi-drivers project (http://libdbi-drivers.sourceforge.net) for the drivers officially supported by libdbi. *** The libdbi sources do not contain any drivers *** The framework and the drivers have to use the same internal API version. Starting from libdbi version 0.8.0, the major version number (in this case 0.8) denotes the API version. Any libdbi release 0.8.x will work with any libdbi-drivers release 0.8.x. 'x' will be incremented independently and denotes bugfix or upgrade releases that do not change the internal API. INSTALLATION: ------------- Perform the regular ./configure, make, make install. See INSTALL for the generic details of each step. See ./configure --help for more libdbi configuration options. If you are building libdbi on Win32, see README.win32. If you are building libdbi on OSX, see README.osx. 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); * Plugin 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. SUPPORTED PLATFORMS: -------------------- libdbi has been written with cross-platform availability in mind. To date, it has been successfully tested with: Linux: Debian, RedHat/Fedora Core, Slackware, Gentoo Windows: 98, NT4, 2000, XP FreeBSD: 4.3 through 6.2 SunOS: 2.8 Solaris: 7, 10 AIX: 4.2, 4.3 and 5.1 OS X: 10.2-10.4.9 If you are using libdbi on a platform not listed here, please notify the mailing list! (see below) MODIFICATIONS AND REDISTRIBUTION (LGPL): ---------------------------------------- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. See the file COPYING or http://www.gnu.org for more details. DOCUMENTATION: -------------- If you want to write programs that use libdbi to access database engines, please see the Libdbi Programmer's Guide in the doc/ directory. It is provided in PDF and HTML formats. This API reference also includes example source code and a quickstart guide to using libdbi. If you want to write a driver for a database engine not yet supported by libdbi, please see the Driver's Guide in the doc/ directory. MAILING LISTS: -------------- http://libdbi.sourceforge.net/maillists.php * libdbi-users: [email protected] Go here if you have any general questions, ideas, or problems with using libdbi in your program. * libdbi-devel: [email protected] Discussion about development of the core library and DBD interface. * libdbi-cvs: [email protected] Automated CVS diffs and log entries are sent to this address. Subscribe here if you want to track libdbi's progress at the source-code level. CONTACT INFO: ------------- http://libdbi.sourceforge.net Markus Hoenicka <[email protected]> David A. Parker <[email protected]> Mark M. Tobenkin <[email protected]> $Id$
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.