List:MySQL++« Previous MessageNext Message »
From:Paul Martin Date:November 10 2007 2:31am
Subject:Re: Issues with multi-queries
View as plain text  
The store_next() change did it.  The queries seem to take the time they 
should now and everything is hunky dory for the next call.  I read through 
the comments in query.h as well and that restated it.  Thanks a mil... next 
time I'll RTFM a little more closely.

With that in mind, if I am calling query.execute() instead of store() how do 
I consume the rest of the results?

Paul


----- Original Message ----- 
From: "Warren Young" <mysqlpp@stripped>
To: "MySQL++ Mailing List" <plusplus@stripped>
Sent: Friday, November 09, 2007 6:03 PM
Subject: Re: Issues with multi-queries


> Paul Martin wrote:
>> 1. Comment out 4 lines starting with 'print_result' in the 
>> 'print_multiple_results' function (to kill screen printing)
>
> You also commented out the Query::more_results() call.  That's why it dies 
> the second time around: you must consume all results on a MySQL DB 
> connection before you make another one.  Hard limit of the underlying C 
> API, no option to change it.  You must consume the results.
>
> I made my own changes to multiquery.cpp, and it works here on both Linux 
> and Windows, built against MySQL 5.0 and MySQL++ svn.
>
> Index: examples/multiquery.cpp
> ===================================================================
> --- examples/multiquery.cpp (revision 1814)
> +++ examples/multiquery.cpp (working copy)
> @@ -123,10 +123,10 @@
>     try {
>         // Execute query and print all result sets
>         Result res = query.store();
> -       print_result(res, 0);
> -       for (int i = 1; query.more_results(); ++i) {
> +       cout << '.' << flush;
> +       while (query.more_results()) {
>             res = query.store_next();
> -           print_result(res, i);
> +           cout << '.' << flush;
>         }
>     }
>     catch (Exception& err) {
> @@ -163,16 +163,18 @@
>
>         // Set up query with multiple queries.
>         Query query = con.query();
> -       query << "DROP TABLE IF EXISTS test_table;" << endl <<
> -               "CREATE TABLE test_table(id INT);" << endl <<
> -               "INSERT INTO test_table VALUES(10);" << endl <<
> -               "UPDATE test_table SET id=20 WHERE id=10;" << endl <<
> -               "SELECT * FROM test_table;" << endl <<
> -               "DROP TABLE test_table" << endl;
> -       cout << "Multi-query: " << endl << query.preview() <<
> endl;
> +       while (1) {
> +           query.reset();
> +           query << "DROP TABLE IF EXISTS test_table; " <<
> +                   "CREATE TABLE test_table(id INT); " <<
> +                   "INSERT INTO test_table VALUES(10); " <<
> +                   "UPDATE test_table SET id=20 WHERE id=10; " <<
> +                   "SELECT * FROM test_table; " <<
> +                   "DROP TABLE test_table";
>
> -       // Execute statement and display all result sets.
> -       print_multiple_results(query);
> +           // Execute statement and display all result sets.
> +           print_multiple_results(query);
> +       }
>
>  #if MYSQL_VERSION_ID >= 50000
>         // If it's MySQL v5.0 or higher, also test stored procedures, 
> which
>
>
> It'll sit there spitting dots out at you until you get quite bored.
>
> -- 
> MySQL++ Mailing List
> For list archives: http://lists.mysql.com/plusplus
> To unsubscribe: 
> http://lists.mysql.com/plusplus?unsub=1
>
> 

Thread
Issues with multi-queriesPaul Martin7 Nov
  • Re: Issues with multi-queriesWarren Young7 Nov
  • Re: Issues with multi-queriesPaul Martin7 Nov
    • Re: Issues with multi-queriesWarren Young7 Nov
  • Re: Issues with multi-queriesPaul Martin8 Nov
    • Re: Issues with multi-queriesWarren Young8 Nov
      • Re: Issues with multi-queriesMaarten Schrijvers8 Nov
  • Re: Issues with multi-queriesPaul Martin8 Nov
    • Re: Issues with multi-queriesWarren Young10 Nov
  • Re: Issues with multi-queriesPaul Martin10 Nov
    • Re: Issues with multi-queriesWarren Young10 Nov
  • RE: Issues with multi-queriesIan Daysh12 Nov
    • Re: Issues with multi-queriesWarren Young13 Nov