From 8c61a32a6fa05d9355a8350479c0e2e4d1f0e252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sat, 12 May 2012 10:28:16 +0200 Subject: [PATCH] Fix problems with quote and apostrophe --- src/controller/KissCount.hpp | 6 ++++-- src/model/Database.cpp | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/controller/KissCount.hpp b/src/controller/KissCount.hpp index 03d8c38..7bec035 100644 --- a/src/controller/KissCount.hpp +++ b/src/controller/KissCount.hpp @@ -32,7 +32,8 @@ #define APP_VERSION "0.3" -#define ESCAPE_CHARS(s) s = s.replace("\"", "\\\""); s = s.replace("\'", "\\\'"); +#define ESCAPE_CHARS(s) s = s.replace("\"", " "); +// #define ESCAPE_CHARS(s) s = s.replace("\"", "\\\""); s = s.replace("\'", "\\\'"); /*{ \ if (s.Find(wxT("\\\"")) == wxNOT_FOUND) \ s.Replace(wxT("\""), wxT("\\\""), true); \ @@ -40,7 +41,8 @@ s.Replace(wxT("\'"), wxT("\\\'"), true); \ } */ -#define UNESCAPE_CHARS(s) s = s.replace("\\\"", "\""); s = s.replace("\\\'", "\'"); +#define UNESCAPE_CHARS(s) s = s.replace("\\\"", " "); +// #define UNESCAPE_CHARS(s) s = s.replace("\\\"", "\""); s = s.replace("\\\'", "\'"); /*{ \ s.Replace(wxT("\\\""), wxT("\""), true); \ s.Replace(wxT("\\\'"), wxT("\'"), true); \ diff --git a/src/model/Database.cpp b/src/model/Database.cpp index 441db21..0a3218c 100644 --- a/src/model/Database.cpp +++ b/src/model/Database.cpp @@ -585,7 +585,7 @@ int Database::AddOperation(User* user, Operation& op, bool checkTransfert) ESCAPE_CHARS(op.description); - req = "INSERT INTO operation ('user', 'parent', 'account', 'year', 'month', 'day', 'amount', 'description', 'category', 'fix_cost', 'formula', 'transfert', 'meta', 'virtual', 'checked') VALUES ('%1', '%2', '%3', '%4', '%5', '%6', '%7', '%8'" ; + req = "INSERT INTO operation ('user', 'parent', 'account', 'year', 'month', 'day', 'amount', 'description', 'category', 'fix_cost', 'formula', 'transfert', 'meta', 'virtual', 'checked') VALUES ('%1', '%2', '%3', '%4', '%5', '%6', '%7', \"%8\"" ; req = req.arg(QString::number(user->_id), (op.parent) ? QString::number(op.parent): "", QString::number(op.account), QString::number(op.year), QString::number(op.month), QString::number(op.day), v.sprintf("%d", op.amount), op.description); req += ", '%1', '%2', '%3', '%4', '%5', '%6', '%7')"; @@ -1280,7 +1280,7 @@ std::vector* Database::Search(User* user, QString* description, QDate ESCAPE_CHARS(desc); if (wildcards) - req += "UPPER(description) LIKE UPPER('%" + desc + "%')"; + req += "UPPER(description) LIKE UPPER(\"%" + desc + "%\")"; else req += "description=\"" + desc + "\""; firstCond = true;