Database Independent Abstraction Layer for C

libdbi Programmer's Guide (OUTDATED SEE README!)

David A. Parker

Neon Goat Productions

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.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, 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 Appendix A.


Table of Contents
1. Introduction
1.1. Description
1.2. libdbi Concepts and Terminology
1.3. Modifications and redistribution of libdbi
1.4. Contact Info
2. libdbi in a Nutshell (Quickstart Guide)
2.1. Quick Overview
2.2. Generic Example Program
3. libdbi API Reference
3.1. Core Library Functions
3.1.1. dbi_initialize
3.1.2. dbi_shutdown
3.1.3. dbi_version
3.2. Driver Infrastructure
3.2.1. dbi_driver_list
3.2.2. dbi_driver_open
3.2.3. dbi_driver_is_reserved_word
3.2.4. dbi_driver_specific_function
3.2.5. dbi_driver_quote_string
3.2.6. Driver Information
3.2.6.1. dbi_driver_get_name
3.2.6.2. dbi_driver_get_filename
3.2.6.3. dbi_driver_get_description
3.2.6.4. dbi_driver_get_maintainer
3.2.6.5. dbi_driver_get_url
3.2.6.6. dbi_driver_get_version
3.2.6.7. dbi_driver_get_date_compiled
3.3. Connection Infrastructure
3.3.1. dbi_conn_new
3.3.2. dbi_conn_open
3.3.3. dbi_conn_get_driver
3.3.4. dbi_conn_set_option
3.3.5. dbi_conn_set_option_numeric
3.3.6. dbi_conn_get_option
3.3.7. dbi_conn_get_option_numeric
3.3.8. dbi_conn_get_option_list
3.3.9. dbi_conn_clear_option
3.3.10. dbi_conn_clear_options
3.3.11. dbi_conn_get_socket
3.3.12. dbi_conn_close
3.3.13. Error Handling
3.3.13.1. dbi_conn_error
3.3.13.2. dbi_conn_error_handler
3.4. SQL and Database Infrastructure
3.4.1. dbi_conn_connect
3.4.2. dbi_conn_get_db_list
3.4.3. dbi_conn_get_table_list
3.4.4. dbi_conn_query
3.4.5. dbi_conn_query_null
3.4.6. dbi_conn_select_db
3.4.7. dbi_result_get_conn
3.4.8. dbi_result_free
3.4.9. dbi_result_seek_row
3.4.10. dbi_result_first_row
3.4.11. dbi_result_last_row
3.4.12. dbi_result_prev_row
3.4.13. dbi_result_next_row
3.4.14. dbi_result_get_numrows
3.4.15. dbi_result_get_numrows_affected
3.5. Retrieving field data
3.5.1. dbi_result_get_field_size
3.5.2. dbi_result_get_field_size_idx
3.5.3. dbi_result_get_field_length
3.5.4. dbi_result_get_field_length_idx
3.5.5. dbi_result_get_field_idx
3.5.6. dbi_result_get_field_name
3.5.7. dbi_result_get_numfields
3.5.8. dbi_result_get_field_type
3.5.9. dbi_result_get_field_type_idx
3.5.10. dbi_result_get_field_attrib
3.5.11. dbi_result_get_field_attrib_idx
3.5.12. dbi_result_get_field_attribs
3.5.13. dbi_result_get_field_attribs_idx
3.5.14. dbi_result_get_fields
3.5.15. dbi_result_bind_fields
3.5.16. dbi_result_get_char
3.5.17. dbi_result_get_uchar
3.5.18. dbi_result_get_short
3.5.19. dbi_result_get_ushort
3.5.20. dbi_result_get_long
3.5.21. dbi_result_get_ulong
3.5.22. dbi_result_get_longlong
3.5.23. dbi_result_get_ulonglong
3.5.24. dbi_result_get_float
3.5.25. dbi_result_get_double
3.5.26. dbi_result_get_string
3.5.27. dbi_result_get_binary
3.5.28. dbi_result_get_string_copy
3.5.29. dbi_result_get_binary_copy
3.5.30. dbi_result_get_datetime
3.5.31. dbi_result_bind_char
3.5.32. dbi_result_bind_uchar
3.5.33. dbi_result_bind_short
3.5.34. dbi_result_bind_ushort
3.5.35. dbi_result_bind_long
3.5.36. dbi_result_bind_ulong
3.5.37. dbi_result_bind_longlong
3.5.38. dbi_result_bind_ulonglong
3.5.39. dbi_result_bind_float
3.5.40. dbi_result_bind_double
3.5.41. dbi_result_bind_string
3.5.42. dbi_result_bind_binary
3.5.43. dbi_result_bind_string_copy
3.5.44. dbi_result_bind_binary_copy
3.5.45. dbi_result_bind_datetime
3.5.46. dbi_result_get_char_idx
3.5.47. dbi_result_get_uchar_idx
3.5.48. dbi_result_get_short_idx
3.5.49. dbi_result_get_ushort_idx
3.5.50. dbi_result_get_long_idx
3.5.51. dbi_result_get_ulong_idx
3.5.52. dbi_result_get_longlong_idx
3.5.53. dbi_result_get_ulonglong_idx
3.5.54. dbi_result_get_float_idx
3.5.55. dbi_result_get_double_idx
3.5.56. dbi_result_get_string_idx
3.5.57. dbi_result_get_binary_idx
3.5.58. dbi_result_get_string_copy_idx
3.5.59. dbi_result_get_binary_copy_idx
3.5.60. dbi_result_get_datetime_idx
A. GNU Free Documentation License