# GdaServerProvider

## Name

GdaServerProvider -- Base class for implementing new providers

## Synopsis

    struct      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);
    GList*      gda_server_provider_execute_command
                                                (GdaServerProvider *provider,
                                                 GdaConnection *cnc,
                                                 GdaCommand *cmd,
                                                 GdaParameterList *params);
    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);

## Description

## Details

### struct GdaServerProviderPrivate

    struct 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_execute_command ()

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

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

### 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 : |