Commit 507d50ce authored by Vinogradov Aleksei's avatar Vinogradov Aleksei Committed by Pavel Vainerman

PostgreSQLInterface: Добавил возможность прервать запрос

parent d12ebb58
...@@ -129,6 +129,7 @@ bool PostgreSQLInterface::insert( const string& q ) ...@@ -129,6 +129,7 @@ bool PostgreSQLInterface::insert( const string& q )
try try
{ {
work w( *(db.get()) ); work w( *(db.get()) );
lastQ = q;
w.exec(q); w.exec(q);
w.commit(); w.commit();
return true; return true;
...@@ -155,6 +156,7 @@ bool PostgreSQLInterface::insertAndSaveRowid( const string& q ) ...@@ -155,6 +156,7 @@ bool PostgreSQLInterface::insertAndSaveRowid( const string& q )
try try
{ {
work w( *(db.get()) ); work w( *(db.get()) );
lastQ = q;
pqxx::result res = w.exec(qplus); pqxx::result res = w.exec(qplus);
w.commit(); w.commit();
save_inserted_id(res); save_inserted_id(res);
...@@ -176,8 +178,9 @@ DBResult PostgreSQLInterface::query( const string& q ) ...@@ -176,8 +178,9 @@ DBResult PostgreSQLInterface::query( const string& q )
try try
{ {
nontransaction n(*(db.get()));
nontransaction n(*(db.get()));
lastQ = q;
/* Execute SQL query */ /* Execute SQL query */
result res( n.exec(q) ); result res( n.exec(q) );
return makeResult(res); return makeResult(res);
...@@ -190,6 +193,13 @@ DBResult PostgreSQLInterface::query( const string& q ) ...@@ -190,6 +193,13 @@ DBResult PostgreSQLInterface::query( const string& q )
return DBResult(); return DBResult();
} }
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
void PostgreSQLInterface::cancel()
{
if( !db )
return;
db->cancel_query();
}
// -----------------------------------------------------------------------------------------
const string PostgreSQLInterface::error() const string PostgreSQLInterface::error()
{ {
return lastE; return lastE;
......
...@@ -45,6 +45,7 @@ namespace uniset ...@@ -45,6 +45,7 @@ namespace uniset
virtual bool ping() const override; virtual bool ping() const override;
virtual DBResult query( const std::string& q ) override; virtual DBResult query( const std::string& q ) override;
virtual void cancel() override;
virtual const std::string lastQuery() override; virtual const std::string lastQuery() override;
virtual bool insert( const std::string& q ) override; virtual bool insert( const std::string& q ) override;
......
...@@ -26,6 +26,7 @@ namespace uniset ...@@ -26,6 +26,7 @@ namespace uniset
virtual bool ping() const = 0; // проверка доступности БД virtual bool ping() const = 0; // проверка доступности БД
virtual DBResult query( const std::string& q ) = 0; virtual DBResult query( const std::string& q ) = 0;
virtual void cancel(){}; // попытка отменить текущий запрос
virtual const std::string lastQuery() = 0; virtual const std::string lastQuery() = 0;
virtual bool insert( const std::string& q ) = 0; virtual bool insert( const std::string& q ) = 0;
virtual double insert_id() = 0; virtual double insert_id() = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment