--- parser3/src/include/pa_sql_connection.h 2001/04/05 11:01:55 1.2 +++ parser3/src/include/pa_sql_connection.h 2001/05/17 12:51:05 1.8 @@ -5,50 +5,53 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_sql_connection.h,v 1.2 2001/04/05 11:01:55 paf Exp $ + $Id: pa_sql_connection.h,v 1.8 2001/05/17 12:51:05 parser Exp $ */ #ifndef PA_SQL_CONNECTION_H #define PA_SQL_CONNECTION_H +#include "pa_config_includes.h" #include "pa_pool.h" #include "pa_sql_driver.h" -#include "pa_exception.h" +#include "pa_sql_driver_manager.h" -/// sql connection +/// SQL connection. handy wrapper around low level SQL_Driver class SQL_Connection : public Pooled { public: - void set_services(Services_for_SQL_driver *services) { + void set_services(SQL_Driver_services *services) { fdriver.set_services(services); } SQL_Connection(Pool& pool, const String& aurl, - SQL_Driver& adriver, Services_for_SQL_driver& services, - char *url_cstr) : Pooled(pool), + SQL_Driver& adriver, + char *used_only_in_constructor_url_cstr) : Pooled(pool), furl(aurl), fdriver(adriver) { - - set_services(&services); // associate with services[request] - fdriver.connect(url_cstr, &connection); + fdriver.connect(used_only_in_constructor_url_cstr, &connection); } - void close() { - set_services(0); // deassociate from services[request] - SQL_driver_manager->close_connection(furl, *this); + void close(Pool& pool) { + SQL_driver_manager->close_connection(furl, *this, pool); } void disconnect() { fdriver.disconnect(connection); } void commit() { fdriver.commit(connection); } void rollback() { fdriver.rollback(connection); } + bool ping() { return fdriver.ping(connection); } + uint quote(char *to, const char *from, unsigned int length) { + return fdriver.quote(connection, to, from, length); + } + void query( - const char *statement, + const char *statement, unsigned long offset, unsigned long limit, unsigned int *column_count, SQL_Driver::Cell **columns, unsigned long *row_count, SQL_Driver::Cell ***rows) { fdriver.query(connection, - statement, + statement, offset, limit, column_count, columns, row_count, rows); }