Michael Lausch

Rodrigo Moya

Sean Allen

GDP compliance, FDL, added mark-up, English and syntax  

Xabier Rodriguez Calvar

How to begin and migration formulae  

Jose Dapena Paz

Some examples  

Bas Driessen

libgda, gda-postgres, gda-mysql  

Daniel Espinosa Ortiz

libgda, gda-postgres, gda-mysql  

Vivien Malerba

Current maintainer  

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, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found in the appendix.

Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps.

Abstract

GNOME Data Access (GDA) is an architecture whose purpose is to provide universal access to many different kinds and types of data sources. This goes from traditional relational database systems, to any imaginable kind of data source such as a mail server, a LDAP directory...

This universality is obtained through the use of an easily extensible plug-in system as the mechanism for communication between the different components in the architecture.


I. Getting started
Introduction
Features
Architecture
Installation
Getting the library
Installing from the sources
Compiling with the library
Configuring
Configuration for development
Configuration for accessing a database
Provider's specific information
Code examples
Initialising
Connecting
Executing queries
Managing data models
Example using random access
Example using an iterator
Freeing data models
Managing transactions
Managing connection's events and errors
Full example
DDL example
Other examples
Migration from 1.X versions
GdaValue and GdaDataModel changes
GdaClient, GdaConnection and GdaError
Various API changes
Migration from 3.X versions
Overview
New unique parser
GdaQuery and GdaCommand merge into GdaStatement
Dictionary changes
Other changes
API changes
List of removed objects and interfaces
List of removed functions
Limitations
For MySQL
For Oracle
For PostgreSQL
BLOB handling
For SQLite
II. Client API Reference
Object Hierarchy
Initialization and configuration
Libgda initialization — Library initialization
Configuration — Access/Management of libgda configuration
Configuring libgda with environment variables
Connections & commands
Convenient functions — Do quickly some actions
GdaConnection — Management of connections to data sources
GdaSqlParser — SQL parser
GdaStatement — Single SQL statement
GdaBatch — Multiple SQL statements goupped
GdaHolder — Container for a single GValue
GdaSet — Container for several values
GdaSqlStatement — Structure which decomposes an SQL statement
GdaConnectionEvent — Any event which has occurred on a GdaConnection
GdaTransactionStatus — Keeps track of the transactional status of a connection
Description of the data model returned by gda_connection_get_meta_store_data()
GDA_CONNECTION_META_NAMESPACES
GDA_CONNECTION_META_TYPES
GDA_CONNECTION_META_TABLES
GDA_CONNECTION_META_VIEWS
GDA_CONNECTION_META_FIELDS
Virtual connections
GdaVirtualProvider — Base class for all virtual providers
GdaVproviderDataModel — Virtual provider for connections based on a list of GdaDataModel
GdaVproviderHub — Virtual provider for connections based on other connection
GdaVirtualConnection — Base class for all virtual connection objects
GdaVconnectionDataModel — Virtual connection based on a list of GdaDataModel
GdaVconnectionHub — Virtual connection which bind together connections
Data handling
Gda Value — Single value stored in a GdaDataModel
Blobs — Binary data and BLOBs handling
GdaDataModel — Basic data model class
GdaDataModel columns — Management of GdaDataModel column attributes
GdaDataModelIter — Data model iterator
GdaDataModelImport — Importing data from a string or a file
GdaDataAccessWrapper — Offers a random access on top of a cursor-only access data model
GdaDataModelArray — An implementation of GdaDataModel based on a GArray.
GdaDataModelBdb — GdaDataModel to access Berkeley DB database contents
GdaDataModelDir — GdaDataModel to list files in filesystem
GdaDataModelQuery — An implementation of GdaDataModel based on a SELECT query
GdaDataProxy — Proxy to hold modifications for any GdaDataModel, and provides the GdaDataModel interface itself
GdaDataModelIndex — Management of GdaDataModel indexes
GdaDataModel column indexes — Management of GdaDataModel column index attributes
Data conversions
GdaDataHandler — Interface which provides data handling capabilities
GdaHandlerString — Default handler for strings
GdaHandlerBoolean — Default handler for booleans
GdaHandlerTime — Default handler for time, date and timestamp
GdaHandlerNumerical — Default handler for numeric values
GdaHandlerBin — Default handler for binary values
GdaHandlerType — Default handler for GType values
Dictionary - metadata
GdaMetaStore — Dictionary object
GdaMetaStruct — In memory representation of some database objects
Data definition (DDL) queries
GdaServerOperation — Handles any DDL query in an abstract way
Miscellaneous
Utility functions
Logging — Log functions
Quark lists — Quark lists (lists of KEY=VALUE's)
GdaDataModelRow — Base implementation for other objects to implement the GdaDataModel interface based on the usage of
GdaThreader
III. GDA Tools
Introduction
gda-sql-4.0
gda-list-config-4.0
gda-test-connection-4.0
gda-list-server-op-4.0
IV. Reports
Introduction
API reference
GdaReportEngine — Low level report generator based on XML
GdaReportDocument
GdaReportDocbookDocument — Report document based on the DocBook dialect
GdaReportRmlDocument — Report document based on the RML dialect
V. Databases providers for developers
Providers' support API
GdaServerProvider — Base class for all the DBMS providers
GdaPModel — Proposed base implementation for data models returned by the execution of a SELECT statement
GdaPRow — A row within the GdaPModel data model
GdaPStmt — Prepared statement base class
Misc API — Methods dedicated to implementing providers
Virtual methods for providers
Synchronous / asynchronous mode
Methods - provider's information
get_name() - mandatory
get_version() - mandatory
get_server_version() - mandatory
supports_feature()
Methods - connection management
open_connection() - mandatory
close_connection() - mandatory
get_database()
Methods - DDL queries
supports_operation()
create_operation()
render_operation()
perform_operation()
Methods - transactions management
begin_transaction()
commit_transaction()
rollback_transaction()
add_savepoint()
rollback_savepoint()
delete_savepoint()
Methods - DML queries
create_parser()
statement_to_sql()
statement_prepare()
statement_execute() - mandatory
Methods - data representation
get_data_handler()
get_def_dbms_type()
escape_string()
unescape_string()
Methods - metadata
_info()
_btypes()
schemata() and _schemata()
tables_views() and _tables_views()
columns() and _columns()
constraints_tab() and _constraints_tab()
constraints_ref() and _constraints_ref()
key_columns() and _key_columns()
Methods - misc.
cancel()
create_connection()
is_busy()
Virtual methods for recordsets
Virtual methods for Blob operations
Assembling all the parts
libmain.c
plugin_init()
plugin_get_name()
plugin_get_description()
plugin_get_dsn_spec()
plugin_get_auth_spec()
plugin_create_provider()
A. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
Addendum
Index