From 14ee71e6654746a87b4f8a0107001e974b96d8d5 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 7 Jun 2012 08:33:08 +0200 Subject: [PATCH] * Added a convenient sql escaping method to TomahawkSqlQuery. It uses the sql drivers internal escaping mechanism. --- src/libtomahawk/database/TomahawkSqlQuery.cpp | 11 ++++++++++- src/libtomahawk/database/TomahawkSqlQuery.h | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/database/TomahawkSqlQuery.cpp b/src/libtomahawk/database/TomahawkSqlQuery.cpp index d62c02351..b57274b6e 100644 --- a/src/libtomahawk/database/TomahawkSqlQuery.cpp +++ b/src/libtomahawk/database/TomahawkSqlQuery.cpp @@ -18,6 +18,8 @@ #include "database/TomahawkSqlQuery.h" +#include "database/Database.h" +#include "database/DatabaseImpl.h" #include "utils/TomahawkUtils.h" #include "utils/Logger.h" @@ -42,6 +44,13 @@ TomahawkSqlQuery::TomahawkSqlQuery( const QSqlDatabase& db ) } +QString +TomahawkSqlQuery::escape( const QString& identifier, QSqlDriver::IdentifierType type ) +{ + return Database::instance()->impl()->database().driver()->escapeIdentifier( identifier, type ); +} + + bool TomahawkSqlQuery::exec( const QString& query ) { @@ -114,7 +123,7 @@ TomahawkSqlQuery::showError() bool -TomahawkSqlQuery::isBusyError( const QSqlError& error ) +TomahawkSqlQuery::isBusyError( const QSqlError& error ) const { const QString text = error.text().toLower(); diff --git a/src/libtomahawk/database/TomahawkSqlQuery.h b/src/libtomahawk/database/TomahawkSqlQuery.h index ad00caa11..a54543a35 100644 --- a/src/libtomahawk/database/TomahawkSqlQuery.h +++ b/src/libtomahawk/database/TomahawkSqlQuery.h @@ -21,6 +21,7 @@ // subclass QSqlQuery so that it prints the error msg if a query fails +#include #include #define TOMAHAWK_QUERY_ANALYZE 1 @@ -32,13 +33,15 @@ public: TomahawkSqlQuery(); TomahawkSqlQuery( const QSqlDatabase& db ); + static QString escape( const QString& identifier, QSqlDriver::IdentifierType type = QSqlDriver::FieldName ); + bool exec( const QString& query ); bool exec(); bool commitTransaction(); private: - bool isBusyError( const QSqlError& error ); + bool isBusyError( const QSqlError& error ) const; void showError();