## GdaPstmt GdaPstmt — Base class for prepared statement's |

## Stability Level

Stable, unless otherwise indicated

## Functions

void | gda_pstmt_set_gda_statement ()
GdaStatement * | gda_pstmt_get_gda_statement ()
void | gda_pstmt_copy_contents ()

## Types and Values

struct | GdaPStmt

## Object Hierarchy

        GObject
        ╰── GdaPStmt

## Includes

    #include <libgda/providers-support/gda-pstmt.h>

## Description

The GdaPStmt represents the association between a GdaStatement statement and a prepared statement which is database dependent and is an in-memory representation of a statement. Using prepared statement has the following advantages:

- the parsing of the SQL has to be done only once, which improves performances if the statement has to be executed more than once

- if a statement has been prepared, then it means it is syntactically correct and has been understood by the database's API

- it is possible to use variables in prepared statement which eliminates the risk of SQL code injection

The GdaPStmt is not intended to be instantiated, but subclassed by database provider's implementation. Once created, the database provider's implementation can decide to associate (for future lookup) to a GdaStatement object in a connection using `gda_connection_add_prepared_statement()`.

The GdaPStmt object can keep a reference to the GdaStatement object (which can be set and get using the `gda_pstmt_set_gda_statement()` and `gda_pstmt_get_gda_statement()`), however that reference if a weak one (which means it will be lost if the GdaStatement object is destroyed).

## Functions

### gda_pstmt_set_gda_statement ()

    void
    gda_pstmt_set_gda_statement (GdaPStmt *pstmt,
                                 GdaStatement *stmt);

Informs `pstmt` that it corresponds to the preparation of the `stmt` statement

#### Parameters

pstmt | a GdaPStmt object |
stmt | a GdaStatement object, or `NULL`. | [allow-none]

### gda_pstmt_get_gda_statement ()

    GdaStatement *
    gda_pstmt_get_gda_statement (GdaPStmt *pstmt);

Get a pointer to the GdaStatement which led to the creation of this prepared statement.

Note: if that statement has been modified since the creation of `pstmt` , then this method will return `NULL`

#### Parameters

pstmt | a GdaPStmt object |

#### Returns

the GdaStatement.

[transfer none]

### gda_pstmt_copy_contents ()

    void
    gda_pstmt_copy_contents (GdaPStmt *src,
                             GdaPStmt *dest);

Copies `src` 's data to `dest`

#### Parameters

src | a GdaPStmt object |
dest | a GdaPStmt object |

## Types and Values

### struct GdaPStmt

    struct GdaPStmt;

#### Members