List:MySQL++« Previous MessageNext Message »
From:Jim Wallace Date:September 20 2007 3:47pm
Subject:Getting errnum() in exception?
View as plain text  
I want to catch a dupe key error in my code using con.errnum().  I use
exceptions for everything and would like to use them, but the errnum()
in the catch is always zero.  I assume this is because when the BadQuery
exception is constructed calls error() which calls mysql_error() but
that clears out the errornum() (mysql_errno()).  To get the error
number, I have to turn off exceptions.  Any tricks to get it to work?
If not, adding an unsigned int to the BadQuery exception class and
having it call errnum() first would fix it, which I'd be willing to do.

Here's a snip that I wanted to work.

...
		query.reset();
		query << "insert into test values (1)"; // one int col,
unique key
		query.execute();
		query.reset();
		query << "insert into test values (1)";
		query.execute();

	}
	catch (const mysqlpp::BadQuery& er) {
		cerr << "Got errnum of " << con.errnum() << endl; ///
<--- always prints zero
...

If I turn off exceptions, con.errnum() returns the correct error number.

		mysqlpp::NoExceptions ne( query );
		query << "insert into test values (1)";
		query.execute();
		unsigned int ret = con.errnum(); <-- get 1062, dupe key
		cerr << con.error() << endl; <-- correct err msg
Thread
RELEASE: v2.3.2Warren Young11 Jul
  • Getting errnum() in exception?Jim Wallace20 Sep
    • Re: Getting errnum() in exception?Warren Young22 Sep
  • Building the head of SVN with MSVC?Jim Wallace25 Sep
    • Re: Building the head of SVN with MSVC?Warren Young26 Sep
  • Error num in BadQuery patchJim Wallace25 Sep
    • RE: Error num in BadQuery patchJim Wallace26 Sep
      • Re: Error num in BadQuery patchWarren Young26 Sep
    • Re: Error num in BadQuery patchWarren Young26 Sep
  • v2.3.2 and execute?Jim Wallace5 Oct
    • Re: v2.3.2 and execute?Warren Young5 Oct
  • Building svn tip on WindowsJim Wallace24 Oct
    • Re: Building svn tip on WindowsWarren Young25 Oct
  • Patch for better exception use -- BadQuery w/Errnum patch part 1Jim Wallace24 Oct
  • Better exception usage -- BadQuery w/Errnum patch part 2Jim Wallace24 Oct
  • Expose errnum() in query -- BadQuery w/Errnum patch part 3Jim Wallace24 Oct
    • Re: Expose errnum() in query -- BadQuery w/Errnum patch part 3Warren Young25 Oct
      • RE: Expose errnum() in query -- BadQuery w/Errnum patch part 3Jim Wallace25 Oct
  • BadQuery w/Errnum patch part 4Jim Wallace24 Oct
    • Re: BadQuery w/Errnum patch part 4Warren Young25 Oct
      • RE: BadQuery w/Errnum patch part 4Jim Wallace25 Oct
  • Sample files -- BadQuery w/Errnum patch part 4Jim Wallace24 Oct
    • Re: Sample files -- BadQuery w/Errnum patch part 4Warren Young25 Oct
      • RE: Sample files -- BadQuery w/Errnum patch part 4Jim Wallace25 Oct
        • Re: Sample files -- BadQuery w/Errnum patch part 4Warren Young25 Oct
          • RE: Sample files -- BadQuery w/Errnum patch part 4Jim Wallace25 Oct
          • RE: Sample files -- BadQuery w/Errnum patch part 4Jim Wallace25 Oct
            • Re: Sample files -- BadQuery w/Errnum patch part 4Warren Young25 Oct
              • RE: Sample files -- BadQuery w/Errnum patch part 4Jim Wallace25 Oct
      • RE: Sample files -- BadQuery w/Errnum patch part 4Jim Wallace25 Oct