List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:September 26 2007 5:22pm
Subject:Re: query does not affect database
View as plain text  
Jack Monflower wrote:
> 
> Connection goes fine (I check if connect returns false, and it does not).

You can't mix the return-code and exception error handling mechanisms in 
this way.

I don't mean to suggest that the connection could be failing.  If it 
were, your program would be crashing because you aren't (apparently) 
catching the exception you'd get if that were happening.  It is 
something you need to address to make this code production-ready, however.

If you must mix the two error handling mechanisms, you need to use a 
NoExceptions object to temporarily turn off exceptions for a given block 
of code.

> if (!conn.connect("mydb", "localhost", "root", ""))

[snip]

>         Transaction trans(Configuration::conn());

You're referring to the connection in two different ways here.  Are you 
certain that these are the same connection?

And I hope Configuration::conn() returns by reference?  If not, that's 
probably the problem.

> Everything goes well, compilation as well execution, and the program exits
> with the message "user added". Still, when I check if anything was added to
> the database, I see no new rows.

Not all of the storage engines MySQL offers support transactions.  Are 
you using one of them?

Transactions are also relatively recent additions to MySQL.  Are you 
using a version of MySQL that even supports transaction-aware storage 
engines?

Does it work if you type the SQL for this insertion sequence into the 
mysql command line client?
Thread
query does not affect databaseJack Monflower26 Sep
  • RE: query does not affect databaseJim Wallace26 Sep
  • Re: query does not affect databaseWarren Young26 Sep
    • Re: query does not affect databaseJack Monflower27 Sep