From f6c8443c5d723722dca7e7dab967269d76237b80 Mon Sep 17 00:00:00 2001 From: marcelb Date: Thu, 22 Jun 2023 18:46:08 +0200 Subject: [PATCH] Add callback response string clear, and throw string --- lib/sql3.hpp | 1 - src/sql3.cpp | 13 +++++++------ test/test.o | Bin 100840 -> 101288 bytes 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/sql3.hpp b/lib/sql3.hpp index 9f83063..37762d4 100644 --- a/lib/sql3.hpp +++ b/lib/sql3.hpp @@ -22,7 +22,6 @@ class sql3 { sqlite3* db; string path; bool keepOpen; - // map> model; string Answer; map> parsed; diff --git a/src/sql3.cpp b/src/sql3.cpp index c31f27c..7e29b20 100644 --- a/src/sql3.cpp +++ b/src/sql3.cpp @@ -6,7 +6,7 @@ sql3::sql3(const string _path, bool _keepOpen) { if (keepOpen) { if (open()) { - throw "[ERROR] Unable to open database "; + throw string("[ERROR] Unable to open database "); } } @@ -27,7 +27,7 @@ bool sql3::run(const string sql_command) { if (!keepOpen) { if (open()) { - throw "[ERROR] Unable to open database "; + throw string("[ERROR] Unable to open database "); } } @@ -47,7 +47,7 @@ bool sql3::run(const string sql_command) { if (!keepOpen) { if(close()) { - throw "[ERROR] Unable to close database "; + throw string("[ERROR] Unable to close database "); } } @@ -62,7 +62,7 @@ string sql3::answer() { string sql3::ask(const string sql_command) { if (!run(sql_command)) { - throw "[ERROR] Unable to read database "; + throw string("[ERROR] Unable to read database "); //return {}; } else { @@ -72,7 +72,7 @@ string sql3::ask(const string sql_command) { map> sql3::query(const string sql_command) { if (!run(sql_command)) { - throw "[ERROR] Unable to read database "; + throw string("[ERROR] Unable to read database "); //return {}; } else { @@ -104,7 +104,7 @@ void sql3::mapit() { sql3::~sql3() { if(close()) { - throw "[ERROR] Unable to close database "; + throw string("[ERROR] Unable to close database "); } } @@ -117,6 +117,7 @@ static int callback(void* data, int argc, char** argv, char** azColName) { int i; fprintf(stderr, "%s: ", (const char*)data); char res[1000]; + responseDatabase.clear(); for (i = 0; i < argc; i++) { sprintf(res, "%s = %s", azColName[i], argv[i] ? argv[i] : "NULL"); responseDatabase += res; diff --git a/test/test.o b/test/test.o index b364b557f5a8868329cc3fcaeb273505fefd786e..17505afc1815b88931e052e7c7e5289dc27de57b 100755 GIT binary patch delta 22340 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 bA4Qo%Tk=+BsU7M?E)jiwQO)bSL=F0X{%ncr delta 21162 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