Exemplo n.º 1
0
static void
gda_postgres_pstmt_dispose (GObject *object)
{
	GdaPostgresPStmt *pstmt = (GdaPostgresPStmt *) object;

	g_return_if_fail (GDA_IS_PSTMT (pstmt));
  GdaPostgresPStmtPrivate *priv = gda_postgres_pstmt_get_instance_private (pstmt);

  if (!priv->deallocated) {
    GdaConnection *cnc = NULL;

    cnc = g_weak_ref_get (&priv->cnc);
    if (cnc != NULL) {
      /* deallocate statement */
	    gchar *sql;
	    PGresult *pg_res;

	    sql = g_strdup_printf ("DEALLOCATE %s", priv->prep_name);
	    pg_res = _gda_postgres_PQexec_wrap (cnc, priv->pconn, sql);
	    g_free (sql);
	    if (pg_res)
		    PQclear (pg_res);
      g_object_unref (cnc);
    }
    priv->deallocated = TRUE;
  }
	/* free memory */
	g_clear_pointer (&priv->prep_name, g_free);

	/* chain to parent class */
	G_OBJECT_CLASS (gda_postgres_pstmt_parent_class)->dispose (object);
}
Exemplo n.º 2
0
static void
gda_postgres_pstmt_finalize (GObject *object)
{
	GdaPostgresPStmt *pstmt = (GdaPostgresPStmt *) object;

	g_return_if_fail (GDA_IS_PSTMT (pstmt));

	/* deallocate statement */
	gchar *sql;
	PGresult *pg_res;

	sql = g_strdup_printf ("DEALLOCATE %s", pstmt->prep_name);
	pg_res = _gda_postgres_PQexec_wrap (pstmt->cnc, pstmt->pconn, sql);
	g_free (sql);
	if (pg_res) 
		PQclear (pg_res);
	
	/* free memory */
	g_free (pstmt->prep_name);

	/* chain to parent class */
	parent_class->finalize (object);
}