<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Database Independent Abstraction Layer for C</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="NEXT" TITLE="Introduction" HREF="intro.html"></HEAD ><BODY CLASS="BOOK" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="BOOK" ><A NAME="DRIVER-GUIDE" ></A ><DIV CLASS="TITLEPAGE" ><H1 CLASS="TITLE" ><A NAME="AEN2" >Database Independent Abstraction Layer for C</A ></H1 ><H2 CLASS="SUBTITLE" >libdbi Driver Author's Guide</H2 ><H3 CLASS="AUTHOR" ><A NAME="AEN5" ></A >David A. Parker</H3 ><DIV CLASS="AFFILIATION" ><SPAN CLASS="ORGNAME" >Neon Goat Productions<BR></SPAN ><DIV CLASS="ADDRESS" ><P CLASS="ADDRESS" ><CODE CLASS="EMAIL" ><<A HREF="mailto:david@neongoat.com" >david@neongoat.com</A >></CODE ></P ></DIV ></DIV ><H3 CLASS="AUTHOR" ><A NAME="AEN13" ></A >Markus Hoenicka</H3 ><DIV CLASS="AFFILIATION" ><DIV CLASS="ADDRESS" ><P CLASS="ADDRESS" ><CODE CLASS="EMAIL" ><<A HREF="mailto:mhoenicka@users.sourceforge.net" >mhoenicka@users.sourceforge.net</A >></CODE ></P ></DIV ></DIV ><P CLASS="COPYRIGHT" >Copyright © 2001-2005 David Parker, Neon Goat Productions</P ><DIV ><DIV CLASS="ABSTRACT" ><P ></P ><A NAME="AEN29" ></A ><P > 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. </P ><P > This guide explains the internal DBD interface for libdbi drivers, and provides a reference for all available driver helper functions. </P ><P ></P ></DIV ></DIV ><DIV CLASS="LEGALNOTICE" ><P ></P ><A NAME="AEN24" ></A ><P > Permission is granted to copy, distribute and/or modify this document under the terms of the <A HREF="copying-fdl.html" > <I CLASS="CITETITLE" >GNU Free Documentation License</I ></A >, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in <A HREF="copying-fdl.html" >Appendix A</A >. </P ><P ></P ></DIV ><HR></DIV ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >1. <A HREF="intro.html" >Introduction</A ></DT ><DD ><DL ><DT >1.1. <A HREF="description.html" >Description</A ></DT ><DT >1.2. <A HREF="terminology.html" >libdbi Concepts and Terminology</A ></DT ><DT >1.3. <A HREF="gnugpl.html" >Modifications and redistribution of libdbi</A ></DT ><DT >1.4. <A HREF="contact.html" >Contact Info</A ></DT ></DL ></DD ><DT >2. <A HREF="drivercaps.html" >Driver Capabilities</A ></DT ><DD ><DL ><DT >2.1. <A HREF="settingdrivercaps.html" >Setting driver capabilities</A ></DT ><DT >2.2. <A HREF="requireddrivercaps.html" >Required driver capabilities</A ></DT ></DL ></DD ><DT >3. <A HREF="driverfuncs.html" >Driver Functions</A ></DT ><DD ><DL ><DT >3.1. <A HREF="driverfuncs-infrastructure.html" >Driver Infrastructure Functions</A ></DT ><DD ><DL ><DT >3.1.1. <A HREF="driverfuncs-infrastructure.html#DBD-REGISTER-DRIVER" >dbd_register_driver</A ></DT ><DT >3.1.2. <A HREF="driverfuncs-infrastructure.html#DBD-INITIALIZE" >dbd_initialize</A ></DT ><DT >3.1.3. <A HREF="driverfuncs-infrastructure.html#DBD-CONNECT" >dbd_connect</A ></DT ><DT >3.1.4. <A HREF="driverfuncs-infrastructure.html#DBD-DISCONNECT" >dbd_disconnect</A ></DT ><DT >3.1.5. <A HREF="driverfuncs-infrastructure.html#DBD-GETERROR" >dbd_geterror</A ></DT ><DT >3.1.6. <A HREF="driverfuncs-infrastructure.html#DBD-GET-SOCKET" >dbd_get_socket</A ></DT ></DL ></DD ><DT >3.2. <A HREF="driverfuncs-dbquery.html" >Internal Database Query Functions</A ></DT ><DD ><DL ><DT >3.2.1. <A HREF="driverfuncs-dbquery.html#DBD-GOTO-ROW" >dbd_goto_row</A ></DT ><DT >3.2.2. <A HREF="driverfuncs-dbquery.html#DBD-FETCH-ROW" >dbd_fetch_row</A ></DT ><DT >3.2.3. <A HREF="driverfuncs-dbquery.html#DBD-FREE-QUERY" >dbd_free_query</A ></DT ></DL ></DD ><DT >3.3. <A HREF="driverfuncs-publicdbquery.html" >Public Database Query Functions</A ></DT ><DD ><DL ><DT >3.3.1. <A HREF="driverfuncs-publicdbquery.html#DBD-GET-ENCODING" >dbd_get_encoding</A ></DT ><DT >3.3.2. <A HREF="driverfuncs-publicdbquery.html#DBD-ENCODING-TO-IANA" >dbd_encoding_to_iana</A ></DT ><DT >3.3.3. <A HREF="driverfuncs-publicdbquery.html#DBD-ENCODING-FROM-IANA" >dbd_encoding_from_iana</A ></DT ><DT >3.3.4. <A HREF="driverfuncs-publicdbquery.html#DBD-GET-ENGINE-VERSION" >dbd_get_engine_version</A ></DT ><DT >3.3.5. <A HREF="driverfuncs-publicdbquery.html#DBD-LIST-DBS" >dbd_list_dbs</A ></DT ><DT >3.3.6. <A HREF="driverfuncs-publicdbquery.html#DBD-LIST-TABLES" >dbd_list_tables</A ></DT ><DT >3.3.7. <A HREF="driverfuncs-publicdbquery.html#DBD-QUOTE-STRING" >dbd_quote_string</A ></DT ><DT >3.3.8. <A HREF="driverfuncs-publicdbquery.html#DBD-CONN-QUOTE-STRING" >dbd_conn_quote_string</A ></DT ><DT >3.3.9. <A HREF="driverfuncs-publicdbquery.html#DBD-QUOTE-BINARY" >dbd_quote_binary</A ></DT ><DT >3.3.10. <A HREF="driverfuncs-publicdbquery.html#DBD-QUERY" >dbd_query</A ></DT ><DT >3.3.11. <A HREF="driverfuncs-publicdbquery.html#DBD-QUERY-NULL" >dbd_query_null</A ></DT ><DT >3.3.12. <A HREF="driverfuncs-publicdbquery.html#DBD-SELECT-DB" >dbd_select_db</A ></DT ><DT >3.3.13. <A HREF="driverfuncs-publicdbquery.html#DBD-GET-SEQ-LAST" >dbd_get_seq_last</A ></DT ><DT >3.3.14. <A HREF="driverfuncs-publicdbquery.html#DBD-GET-SEQ-NEXT" >dbd_get_seq_next</A ></DT ><DT >3.3.15. <A HREF="driverfuncs-publicdbquery.html#DBD-PING" >dbd_ping</A ></DT ></DL ></DD ><DT >3.4. <A HREF="helperfuncs.html" >DBD Helper Functions</A ></DT ><DD ><DL ><DT >3.4.1. <A HREF="helperfuncs.html#INTERNAL-DBD-RESULT-CREATE" >_dbd_result_create</A ></DT ><DT >3.4.2. <A HREF="helperfuncs.html#INTERNAL-DBD-RESULT-SET-NUMFIELDS" >_dbd_result_set_numfields</A ></DT ><DT >3.4.3. <A HREF="helperfuncs.html#INTERNAL-DBD-RESULT-ADD-FIELD" >_dbd_result_add_field</A ></DT ><DT >3.4.4. <A HREF="helperfuncs.html#INTERNAL-DBD-ROW-ALLOCATE" >_dbd_row_allocate</A ></DT ><DT >3.4.5. <A HREF="helperfuncs.html#INTERNAL-DBD-ROW-FINALIZE" >_dbd_row_finalize</A ></DT ><DT >3.4.6. <A HREF="helperfuncs.html#INTERNAL-DBD-INTERNAL-ERROR-HANDLER" >_dbd_internal_error_handler</A ></DT ><DT >3.4.7. <A HREF="helperfuncs.html#INTERNAL-DBD-RESULT-CREATE-FROM-STRINGARRAY" >_dbd_result_create_from_stringarray</A ></DT ><DT >3.4.8. <A HREF="helperfuncs.html#INTERNAL-DBD-REGISTER-DRIVER-CAP" >_dbd_register_driver_cap</A ></DT ><DT >3.4.9. <A HREF="helperfuncs.html#INTERNAL-DBD-REGISTER-CONN-CAP" >_dbd_register_conn_cap</A ></DT ><DT >3.4.10. <A HREF="helperfuncs.html#INTERNAL-DBD-PARSE-DATETIME" >_dbd_parse_datetime</A ></DT ><DT >3.4.11. <A HREF="helperfuncs.html#INTERNAL-DBD-ESCAPE-CHARS" >_dbd_escape_chars</A ></DT ><DT >3.4.12. <A HREF="helperfuncs.html#INTERNAL-DBD-ENCODE-BINARY" >_dbd_encode_binary</A ></DT ><DT >3.4.13. <A HREF="helperfuncs.html#INTERNAL-DBD-DECODE-BINARY" >_dbd_decode_binary</A ></DT ></DL ></DD ></DL ></DD ><DT >A. <A HREF="copying-fdl.html" >GNU Free Documentation License</A ></DT ></DL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="intro.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" > </TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Introduction</TD ></TR ></TABLE ></DIV ></BODY ></HTML >