summaryrefslogtreecommitdiff
path: root/database/database.cpp
diff options
context:
space:
mode:
authorDenis Loh <denis.loh@gmail.com>2009-10-29 16:40:29 +0100
committerDenis Loh <denis.loh@gmail.com>2009-10-29 16:40:29 +0100
commit5057fe1ea036ba681ee232a19392751633322760 (patch)
tree9f28323fd073f8518e90df5148c8737b2ee3017e /database/database.cpp
parenta0ea012e9f0a6535695ab1c6efb6cb700d4b57ef (diff)
downloadvdr-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.cpp23
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;