--- parser3/src/include/pa_sql_connection.h 2003/12/22 11:44:35 1.37 +++ parser3/src/include/pa_sql_connection.h 2015/10/26 01:21:56 1.43 @@ -1,14 +1,14 @@ /** @file Parser: sql fconnection decl. - Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_SQL_CONNECTION_H #define PA_SQL_CONNECTION_H -static const char * const IDENT_SQL_CONNECTION_H="$Date: 2003/12/22 11:44:35 $"; +#define IDENT_PA_SQL_CONNECTION_H "$Id: pa_sql_connection.h,v 1.43 2015/10/26 01:21:56 moko Exp $" #include "pa_sql_driver.h" @@ -35,8 +35,9 @@ class SQL_Driver_services_impl: public S const String* furl; Exception fexception; const char* frequest_charset; + const char* fdocument_root; public: - SQL_Driver_services_impl(const char* arequest_charset): furl(0), frequest_charset(arequest_charset) {} + SQL_Driver_services_impl(const char* arequest_charset, const char* adocument_root): furl(0), frequest_charset(arequest_charset), fdocument_root(adocument_root) {} void set_url(const String& aurl) { furl=&aurl;} const String& url_without_login() const; @@ -45,6 +46,8 @@ public: override void* realloc(void *ptr, size_t size) { return pa_realloc(ptr, size); } override const char* request_charset() { return frequest_charset; } + override const char* request_document_root() { return fdocument_root; } + override void transcode(const char* src, size_t src_length, const char*& dst, size_t& dst_length, const char* charset_from_name, @@ -94,10 +97,10 @@ class SQL_Connection: public PA_Object { public: - SQL_Connection(const String& aurl, SQL_Driver& adriver, const char* arequest_charset): + SQL_Connection(const String& aurl, SQL_Driver& adriver, const char* arequest_charset, const char* adocument_root): furl(aurl), fdriver(adriver), - fservices(arequest_charset), + fservices(arequest_charset, adocument_root), fconnection(0), time_used(0) { } @@ -138,13 +141,17 @@ public: } void query( - const char* statement, unsigned long offset, unsigned long limit, + const char* statement, + size_t placeholders_count, SQL_Driver::Placeholder* placeholders, + unsigned long offset, unsigned long limit, SQL_Driver_query_event_handlers& handlers, const String& source) { try { SQL_CONNECTION_SERVICED_FUNC_GUARDED( fdriver.query(fconnection, - statement, offset, limit, + statement, + placeholders_count, placeholders, + offset, limit, handlers) ); } catch(const Exception& e) { // query problem