[libgda] New GdaSqlBuilder example



commit bd7b2b4e161d47f9c8b9c6d9e3e65abcf979b51c
Author: Vivien Malerba <malerba gnome-db org>
Date:   Mon Dec 7 22:01:48 2009 +0100

    New GdaSqlBuilder example

 samples/SqlBuilder/example.c |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/samples/SqlBuilder/example.c b/samples/SqlBuilder/example.c
index 78171b5..feea7d9 100644
--- a/samples/SqlBuilder/example.c
+++ b/samples/SqlBuilder/example.c
@@ -167,6 +167,31 @@ main (int argc, char *argv[])
 	gda_sql_builder_set_where (b, 3);
 	render_as_sql (b);
 	g_object_unref (b);
+
+	/* SELECT id, name, (SELECT MAX (ts) FROM documents AS d WHERE t.id = d.topic) FROM topics AS t */
+	b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
+	gda_sql_builder_select_add_target (b, 0,
+					   gda_sql_builder_add_id (b, 0, "documents"), "d");
+	gda_sql_builder_add_field_id (b,
+				      gda_sql_builder_add_function (b, 0, "MAX",
+								    gda_sql_builder_add_id (b, 0, "ts"),
+								    0), 0);
+	gda_sql_builder_set_where (b,
+				   gda_sql_builder_add_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
+							     gda_sql_builder_add_id (b, 0, "t.id"),
+							     gda_sql_builder_add_id (b, 0, "d.topic"), 0));
+	sub = gda_sql_builder_get_sql_statement (b, FALSE);
+	g_object_unref (b);
+
+	b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
+	gda_sql_builder_select_add_target (b, 0,
+					   gda_sql_builder_add_id (b, 0, "topics"), "t");
+	gda_sql_builder_add_field_id (b, gda_sql_builder_add_id (b, 0, "id"), 0);
+	gda_sql_builder_add_field_id (b, gda_sql_builder_add_id (b, 0, "name"), 0);
+	gda_sql_builder_add_field_id (b, gda_sql_builder_add_sub_select (b, 0, sub, TRUE), 0);
+
+	render_as_sql (b);
+	g_object_unref (b);
 	
 	/* Subselect in INSERT: INSERT INTO customers (e, f, g) SELECT id, name, location FROM subdate */
 	b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]