--- parser3/src/include/pa_sql_connection.h 2008/06/26 09:41:43 1.41 +++ parser3/src/include/pa_sql_connection.h 2026/04/25 13:38:46 1.50 @@ -1,14 +1,14 @@ /** @file Parser: sql fconnection decl. - Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian */ #ifndef PA_SQL_CONNECTION_H #define PA_SQL_CONNECTION_H -static const char * const IDENT_SQL_CONNECTION_H="$Date: 2008/06/26 09:41:43 $"; +#define IDENT_PA_SQL_CONNECTION_H "$Id: pa_sql_connection.h,v 1.50 2026/04/25 13:38:46 moko Exp $" #include "pa_sql_driver.h" @@ -64,7 +64,7 @@ public: one can simply 'throw' from dynamic library. [sad story: one can not longjump/throw due to some bug in gcc as of 3.2.1 version] */ - override void _throw(const SQL_Error& aexception) { + override void _throw(const SQL_Error& aexception) { // converting SQL_exception to parser Exception // hiding passwords and addresses from accidental show [imagine user forgot @exception] #ifdef PA_WITH_SJLJ_EXCEPTIONS @@ -72,14 +72,13 @@ public: #else fexception= #endif - Exception(aexception.type(), - &url_without_login(), - aexception.comment()); + Exception(aexception.type() ? aexception.type() : "sql.connect", &url_without_login(), aexception.comment()); #ifndef PA_WITH_SJLJ_EXCEPTIONS longjmp(mark, 1); #endif } + virtual void propagate_exception() { #ifndef PA_WITH_SJLJ_EXCEPTIONS throw fexception; @@ -133,11 +132,13 @@ public: SQL_CONNECTION_SERVICED_FUNC_GUARDED( return fdriver.ping(fconnection) ); + return false; // never reached, warning war } const char* quote(const char* str, unsigned int length) { SQL_CONNECTION_SERVICED_FUNC_GUARDED( return fdriver.quote(fconnection, str, length) ); + return NULL; // never reached, warning war } void query( @@ -148,18 +149,12 @@ public: const String& source) { try { SQL_CONNECTION_SERVICED_FUNC_GUARDED( - fdriver.query(fconnection, - statement, - placeholders_count, placeholders, - offset, limit, - handlers) - ); + fdriver.query(fconnection, statement, placeholders_count, placeholders, offset, limit, handlers) + ); } catch(const Exception& e) { // query problem if(strcmp(e.type(), "sql.connect")==0) { // if it is _throw exception, - // give more specific source [were url] - throw Exception("sql.execute", - &source, - "%s", e.comment()); + // show query instead of connect string + throw Exception("sql.execute", &source, "%s", e.comment()); } else rethrow; }