diff options
author | Denis Loh <denis.loh@gmail.com> | 2009-10-29 16:40:29 +0100 |
---|---|---|
committer | Denis Loh <denis.loh@gmail.com> | 2009-10-29 16:40:29 +0100 |
commit | 5057fe1ea036ba681ee232a19392751633322760 (patch) | |
tree | 9f28323fd073f8518e90df5148c8737b2ee3017e /database/database.cpp | |
parent | a0ea012e9f0a6535695ab1c6efb6cb700d4b57ef (diff) | |
download | vdr-plugin-upnp-5057fe1ea036ba681ee232a19392751633322760.tar.gz vdr-plugin-upnp-5057fe1ea036ba681ee232a19392751633322760.tar.bz2 |
Closed bug with ' and database\nimproved LiveTV receiver
Diffstat (limited to 'database/database.cpp')
-rw-r--r-- | database/database.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/database/database.cpp b/database/database.cpp index fa2e9b8..4355cbd 100644 --- a/database/database.cpp +++ b/database/database.cpp @@ -39,7 +39,7 @@ cSQLiteDatabase* cSQLiteDatabase::getInstance(){ return NULL; } -int cSQLiteDatabase::execStatement(const char* Statement){ +int cSQLiteDatabase::exec(const char* Statement){ char* Error; if(!this->mDatabase){ ERROR("Database not open. Cannot continue"); @@ -52,6 +52,7 @@ int cSQLiteDatabase::execStatement(const char* Statement){ if(sqlite3_exec(this->mDatabase, Statement, cSQLiteDatabase::getResultRow, (cSQLiteDatabase*)this, &Error)!=SQLITE_OK){ ERROR("Database error: %s", Error); ERROR("Statement was: %s", Statement); + delete this->mRows; this->mRows = NULL; sqlite3_free(Error); return -1; } @@ -60,6 +61,24 @@ int cSQLiteDatabase::execStatement(const char* Statement){ return 0; } +const char* cSQLiteDatabase::sprintf(const char* Format, ...){ + va_list vlist; + va_start(vlist, Format); + char* SQLStatement = sqlite3_vmprintf(Format, vlist); + va_end(vlist); + return SQLStatement; +} + +int cSQLiteDatabase::execStatement(const char* Statement, ...){ + va_list vlist; + va_start(vlist, Statement); + char* SQLStatement = sqlite3_vmprintf(Statement, vlist); + va_end(vlist); + int ret = this->exec(SQLStatement); + sqlite3_free(SQLStatement); + return ret; +} + int cSQLiteDatabase::getResultRow(void* DB, int NumCols, char** Values, char** ColNames){ cRow* Row = new cRow; Row->ColCount = NumCols; @@ -135,7 +154,7 @@ bool cRow::fetchColumn(char** Column, char** Value){ #endif *Column = strdup0(this->Columns[currentCol]); if(this->Values[currentCol]){ - *Value = strcasecmp(this->Values[currentCol],"NULL")?strdup0(this->Values[currentCol]):NULL; + *Value = strcasecmp(this->Values[currentCol],"NULL")?strdup(this->Values[currentCol]):NULL; } else { *Value = NULL; |