Re: [gnome-db] GdaSqlQuery: sub-queries
Murray Cumming <[email protected]>
| Newsgroups | gmane.comp.gnome.db |
|---|---|
| Message-ID | <1274107110.26397.5.camel@murrayc-desktop> |
On Wed, 2010-05-12 at 18:36 +0200, Vivien Malerba wrote: > On 12 May 2010 12:36, Vivien Malerba <[email protected]> wrote: > > On 12 May 2010 12:25, Murray Cumming <[email protected]> wrote: > >> In Glom I have a generic function like so: > >> int count_rows_returned_by(const std::string& sql_query) > >> { > >> std::string query_count = > >> "SELECT COUNT (*) FROM (" > >> + sql_query > >> + ") AS glomarbitraryalias"; > >> ... > >> } > >> > >> So with GdaSqlBuilder, is there any way to use a sub-query as the > >> target? gda_sql_builder_select_add_target_id() seems to be only for > >> specifying tables as targets: > >> http://library.gnome.org/devel/libgda/unstable/GdaSqlBuilder.html#gda-sql-builder-select-add-target-id > >> > > > > It's possible using gda_sql_builder_select_add_target_id() with a > minor correction I've made, > see http://git.gnome.org/browse/libgda/commit/?id=9b8778a08ffad208d8da159643b38d0f61482c6b Thanks. Should it work like this? GdaSqlBuilder* builder = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT); const guint target_id = gda_sql_builder_add_sub_select(builder, 0, inner_builder->get_sql_statement()); gda_sql_builder_select_add_target_id(builder, target_id); gda_sql_builder_add_function(builder, "COUNT", gda_sql_builder_add_id(builder, "*")); I'm getting these errors from that, though I haven't tried a simple C test case yet: "SELECT does not contain any expression" -- [email protected] www.murrayc.com www.openismus.com