GdaServerProvider

## GdaServerProvider GdaServerProvider — Base class for implementing new providers |

## Synopsis

                GdaServerProviderPrivate;
    const gchar* gda_server_provider_get_version
                                                (GdaServerProvider *provider);
    gboolean    gda_server_provider_open_connection
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaQuarkList *params,
                                                 const gchar *username,
                                                 const gchar *password);
    gboolean    gda_server_provider_close_connection
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);
    const gchar* gda_server_provider_get_server_version
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);
    const gchar* gda_server_provider_get_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);
    gboolean    gda_server_provider_change_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);
    gboolean    gda_server_provider_create_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);
    gboolean    gda_server_provider_drop_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);
    gboolean    gda_server_provider_create_table
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *table_name,
                                                 const GdaFieldAttributes *attributes[]);
    gboolean    gda_server_provider_drop_table  (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *table_name);
    GList*      gda_server_provider_execute_command
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaCommand *cmd,
                                                 GdaParameterList *params);
    gchar*      gda_server_provider_get_last_insert_id
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaDataModel *recset);
    gboolean    gda_server_provider_begin_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);
    gboolean    gda_server_provider_commit_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);
    gboolean    gda_server_provider_rollback_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);
    gboolean    gda_server_provider_supports    (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaConnectionFeature feature);
    GdaDataModel* gda_server_provider_get_schema
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaConnectionSchema schema,
                                                 GdaParameterList *params);
    gboolean    gda_server_provider_create_blob (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaBlob *blob);

## Description

## Details

### GdaServerProviderPrivate

    typedef struct _GdaServerProviderPrivate GdaServerProviderPrivate;

### gda_server_provider_get_version ()

    const gchar* gda_server_provider_get_version
                                                (GdaServerProvider *provider);

Get the version of the given provider.

`provider` : | a GdaServerProvider object.
Returns : | a string containing the version identification.

### gda_server_provider_open_connection ()

    gboolean    gda_server_provider_open_connection
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaQuarkList *params,
                                                 const gchar *username,
                                                 const gchar *password);

Tries to open a new connection on the given GdaServerProvider object.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`params` : |
`username` : | user name for logging in.
`password` : | password for authentication.
Returns : | a newly-allocated GdaServerConnection object, or NULL if it fails.

### gda_server_provider_close_connection ()

    gboolean    gda_server_provider_close_connection
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);

`provider` : |
`cnc` : |
Returns : |

### gda_server_provider_get_server_version ()

    const gchar* gda_server_provider_get_server_version
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);

`provider` : |
`cnc` : |
Returns : |

### gda_server_provider_get_database ()

    const gchar* gda_server_provider_get_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc);

Proxy the call to the get_database method on the GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
Returns : | the name of the current database.

### gda_server_provider_change_database ()

    gboolean    gda_server_provider_change_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);

Proxy the call to the change_database method on the " GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`name` : | database name.
Returns : | `TRUE` if successful, `FALSE` otherwise.

### gda_server_provider_create_database ()

    gboolean    gda_server_provider_create_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);

Proxy the call to the create_database method on the GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`name` : | database name.
Returns : | `TRUE` if successful, `FALSE` otherwise.

### gda_server_provider_drop_database ()

    gboolean    gda_server_provider_drop_database
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *name);

Proxy the call to the drop_database method on the GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`name` : | database name.
Returns : | `TRUE` if successful, `FALSE` otherwise.

### gda_server_provider_create_table ()

    gboolean    gda_server_provider_create_table
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *table_name,
                                                 const GdaFieldAttributes *attributes[]);

Proxy the call to the create_table method on the GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`table_name` : | name of the table to create.
`attributes` : | list of attributes for all fields in the table.
Returns : | `TRUE` if successful, `FALSE` otherwise.

### gda_server_provider_drop_table ()

    gboolean    gda_server_provider_drop_table  (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 const gchar *table_name);

Proxy the call to the drop_table method on the GdaServerProvider class to the corresponding provider.

`provider` : | a GdaServerProvider object.
`cnc` : | a GdaConnection object.
`table_name` : | name of the table to remove.
Returns : | `TRUE` if successful, `FALSE` otherwise.

### gda_server_provider_execute_command ()

    GList*      gda_server_provider_execute_command
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaCommand *cmd,
                                                 GdaParameterList *params);

`provider` : |
`cnc` : |
`cmd` : |
`params` : |
Returns : |

### gda_server_provider_get_last_insert_id ()

    gchar*      gda_server_provider_get_last_insert_id
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaDataModel *recset);

Retrieve from the given GdaServerProvider the ID of the last inserted row. A connection must be specified, and, optionally, a result set. If not NULL, the provider should try to get the last insert ID for the given result set.

`provider` : | a GdaServerProvider object.
`cnc` : | connection to act upon.
`recset` : | resultset to get the last insert ID from.
Returns : | a string representing the ID of the last inserted row, or NULL if an error occurred or no row has been inserted. It is the caller's reponsibility to free the returned string.

### gda_server_provider_begin_transaction ()

    gboolean    gda_server_provider_begin_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);

`provider` : |
`cnc` : |
`xaction` : |
Returns : |

### gda_server_provider_commit_transaction ()

    gboolean    gda_server_provider_commit_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);

`provider` : |
`cnc` : |
`xaction` : |
Returns : |

### gda_server_provider_rollback_transaction ()

    gboolean    gda_server_provider_rollback_transaction
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaTransaction *xaction);

`provider` : |
`cnc` : |
`xaction` : |
Returns : |

### gda_server_provider_supports ()

    gboolean    gda_server_provider_supports    (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaConnectionFeature feature);

`provider` : |
`cnc` : |
`feature` : |
Returns : |

### gda_server_provider_get_schema ()

    GdaDataModel* gda_server_provider_get_schema
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaConnectionSchema schema,
                                                 GdaParameterList *params);

`provider` : |
`cnc` : |
`schema` : |
`params` : |
Returns : |

### gda_server_provider_create_blob ()

    gboolean    gda_server_provider_create_blob (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaBlob *blob);

Creates a BLOB (Binary Large OBject) with read/write access.

`provider` : | a server provider.
`cnc` : | a GdaConnection object.
`blob` : | a user-allocated GdaBlob structure.
Returns : | `FALSE` if the database does not support BLOBs. `TRUE` otherwise and the GdaBlob is created and ready to be used.