| GNOME Data Access 4.0 manual | ||||
|---|---|---|---|---|
GdaPModelGdaPModel — Proposed base implementation for data models returned by the execution of a SELECT statement |
#include <providers-support/gda-pmodel.h>
GdaPModel;
GdaPModelClass;
void gda_pmodel_take_row (GdaPModel *model,
GdaPRow *row,
gint rownum);
GdaPRow* gda_pmodel_get_stored_row (GdaPModel *model,
gint rownum);
GdaConnection* gda_pmodel_get_connection (GdaPModel *model);
gboolean gda_pmodel_set_modification_query (GdaPModel *model,
GdaStatement *mod_stmt,
GError **error);
gboolean gda_pmodel_compute_modification_queries
(GdaPModel *model,
const gchar *target,
gboolean use_all_fields_if_no_pk,
GError **error);
This data model implements the GdaDataModel interface and is the proposed base object when database providers implement a data model returned when a SELECT statement has been executed.
Specifically it offers the following features:
See the Virtual methods for recordsets section for more information about how to implement the virtual methods.
typedef struct {
GObject object;
GdaPModelPrivate *priv;
/* read only information */
GdaPStmt *prep_stmt; /* use the "prepared-stmt" property to set this */
gint nb_stored_rows; /* number of GdaPRow objects currently stored */
gint advertized_nrows; /* set when the number of rows becomes known */
} GdaPModel;
GObject object; |
base object |
GdaPModelPrivate *priv; |
private data |
GdaPStmt *prep_stmt; |
SELECT prepared statement for which the execution gave this object |
gint nb_stored_rows; |
|
gint advertized_nrows; |
initially set to -1, set to a value >= 0 when the number of rows in the data model is known |
typedef struct {
GObjectClass parent_class;
/* GDA_DATA_MODEL_ACCESS_RANDOM */
gint (*fetch_nb_rows) (GdaPModel *model);
gboolean (*fetch_random) (GdaPModel *model, GdaPRow **prow, gint rownum, GError **error);
gboolean (*store_all) (GdaPModel *model, GError **error);
/* GDA_STATEMENT_MODEL_CURSOR_* */
gboolean (*fetch_next) (GdaPModel *model, GdaPRow **prow, gint rownum, GError **error);
gboolean (*fetch_prev) (GdaPModel *model, GdaPRow **prow, gint rownum, GError **error);
gboolean (*fetch_at) (GdaPModel *model, GdaPRow **prow, gint rownum, GError **error);
} GdaPModelClass;
GObjectClass parent_class; |
parent object class |
fetch_nb_rows () |
virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_RANDOM |
fetch_random () |
virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_RANDOM |
store_all () |
|
fetch_next () |
virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD |
fetch_prev () |
virtual method which must be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD |
fetch_at () |
virtual method which can be implemented when access method is GDA_DATA_MODEL_ACCESS_CURSOR_FORWARD or GDA_DATA_MODEL_ACCESS_CURSOR_BACKWARD |
void gda_pmodel_take_row (GdaPModel *model, GdaPRow *row, gint rownum);
Stores row into model, externally advertized at row number rownum. The reference to
row is stolen.
GdaPRow* gda_pmodel_get_stored_row (GdaPModel *model, gint rownum);
Get the GdaPRow object stored within model at row rownum
GdaConnection* gda_pmodel_get_connection (GdaPModel *model);
Get a pointer to the GdaConnection object which was used when model was created
(and which may be used internally by model).
model : |
a GdaPModel data model |
| Returns : | a pointer to the GdaConnection, or NULL
|
gboolean gda_pmodel_set_modification_query (GdaPModel *model, GdaStatement *mod_stmt, GError **error);
Forces model to allow data modification using mod_stmt as the statement executed when the corresponding
modification is requested
model : |
a GdaPModel data model |
mod_stmt : |
a GdaStatement (INSERT, UPDATE or DELETE) |
error : |
a place to store errors, or NULL
|
| Returns : | TRUE if no error occurred. |
gboolean gda_pmodel_compute_modification_queries
(GdaPModel *model,
const gchar *target,
gboolean use_all_fields_if_no_pk,
GError **error);
Makes model try to compute INSERT, UPDATE and DELETE statements to be used when modifying model's contents
model : |
a GdaPModel data model |
target : |
the name of the target to modify (a table name or alias) |
use_all_fields_if_no_pk : |
set to TRUE if all fields must be used in the WHERE condition when no primary key exists |
error : |
a place to store errors, or NULL
|
| Returns : | TRUE if no error occurred. |