diff --git a/CosMoS/bdd.cpp b/CosMoS/bdd.cpp index dc51b69..0f7d935 100644 --- a/CosMoS/bdd.cpp +++ b/CosMoS/bdd.cpp @@ -111,13 +111,13 @@ void class_bdd::Importer(const wxString& filename) << "\"" << item[21] << "\", " //Date_cs << "\"" << item[6] << "\"" //Service << ");"; - rc += sqlite3_exec(db, requete, NULL, NULL, NULL); + rc += sqlite3_exec(db, _C(requete), NULL, NULL, NULL); //Insertion dans la table de résultats requete = "INSERT OR IGNORE INTO Result (id) VALUES ("; requete << item[0] << ");"; - rc += sqlite3_exec(db, requete, NULL, NULL, NULL); + rc += sqlite3_exec(db, _C(requete), NULL, NULL, NULL); } is_first_line = false; //Annulation de l'import @@ -151,7 +151,7 @@ void class_bdd::Exporter(const wxString& filename) wxString id = grid_consults->GetCellValue(i,13); line=""; wxString requete = "SELECT service FROM Consult WHERE id=" + id + ";"; - sqlite3_prepare_v2(db, requete, -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C(requete), -1, &stmt, NULL); sqlite3_step(stmt); wxString service = sqlite3_column_text(stmt,0); line << grid_consults->GetCellValue(i,13) << ";" @@ -174,7 +174,7 @@ void class_bdd::Exporter(const wxString& filename) if (list_publi[j].Left(1) == '@') { requete = "SELECT date_publi,revue,lien FROM Publi WHERE id=" + list_publi[j].AfterLast('@') + ";"; - sqlite3_prepare_v2(db, requete, -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C(requete), -1, &stmt, NULL); sqlite3_step(stmt); line << sqlite3_column_text(stmt,0) << ";" << sqlite3_column_text(stmt,1) << ";" << sqlite3_column_text(stmt,2) << ";"; } @@ -215,7 +215,7 @@ void class_bdd::GenerateGrid() { wxString orig = sqlite3_column_text(stmt, i); // corrections - rc = sqlite3_prepare_v2(db, "SELECT dest FROM Correc WHERE orig=\"" + orig + "\";", -1, &stmt_correc, NULL); + rc = sqlite3_prepare_v2(db, _C("SELECT dest FROM Correc WHERE orig=\"" + orig + "\";"), -1, &stmt_correc, NULL); if (sqlite3_step(stmt_correc) == SQLITE_DONE) grid_consults->SetCellValue(line_nb, i+3, orig); @@ -309,7 +309,7 @@ void class_bdd::SetResultPubli(int row, unsigned int bitfield) << ", cs_associe=" << val[2] << " WHERE id=" << id << ";"; - rc = sqlite3_exec(db, requete, NULL, NULL, NULL); + rc = sqlite3_exec(db, _C(requete), NULL, NULL, NULL); if (rc) wxMessageBox("Erreur lors de la mise à jour de la valeur", "Erreur", wxOK | wxICON_ERROR); } @@ -333,7 +333,7 @@ void class_bdd::AddCorrec(const wxString& id, int col, const wxString& dest) { rc = 0; wxString requete = "SELECT * FROM Consult WHERE id=" + id + ";"; - sqlite3_prepare_v2(db, requete, -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C(requete), -1, &stmt, NULL); sqlite3_step(stmt); wxString orig = sqlite3_column_text(stmt, col-3); sqlite3_finalize(stmt); @@ -343,13 +343,13 @@ void class_bdd::AddCorrec(const wxString& id, int col, const wxString& dest) void class_bdd::SetCorrec(const wxString& orig, const wxString& dest) { wxString requete = "INSERT OR REPLACE INTO Correc VALUES (\"" + orig + "\",\"" + dest + "\");"; - sqlite3_exec(db, requete, NULL, NULL, NULL); + sqlite3_exec(db, _C(requete), NULL, NULL, NULL); // Mise à jour de la grille for (int i=0; iGetNumberRows(); i++) { requete = "SELECT * FROM Consult WHERE id=" + grid_consults->GetCellValue(i, 13) + ";"; - sqlite3_prepare_v2(db, requete, -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C(requete), -1, &stmt, NULL); sqlite3_step(stmt); for (int j=5; j<11; j++) { @@ -368,12 +368,12 @@ void class_bdd::SetCorrec(const wxString& orig, const wxString& dest) void class_bdd::DelCorrec(const wxString& orig) { - sqlite3_exec(db, "DELETE FROM Correc WHERE orig=\"" + orig + "\";", NULL, NULL, NULL); + sqlite3_exec(db, _C("DELETE FROM Correc WHERE orig=\"" + orig + "\";"), NULL, NULL, NULL); } int class_bdd::GetNbResults(const wxString& id) { - sqlite3_prepare_v2(db, "SELECT nb_result FROM Result WHERE id=" + id + ";" , -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C("SELECT nb_result FROM Result WHERE id=" + id + ";") , -1, &stmt, NULL); sqlite3_step(stmt); int out = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); @@ -383,12 +383,12 @@ int class_bdd::GetNbResults(const wxString& id) void class_bdd::SetNbResults(const wxString& id, int nb_results) { - sqlite3_exec(db, "UPDATE Result SET nb_result=" + _itoW(nb_results) + " WHERE id=" + id + ";", NULL, NULL, NULL); + sqlite3_exec(db, _C("UPDATE Result SET nb_result=" + _itoW(nb_results) + " WHERE id=" + id + ";"), NULL, NULL, NULL); } wxArrayString class_bdd::GetIdResult(const wxString& id, bool stripped) { - sqlite3_prepare_v2(db, "SELECT id_result FROM Result WHERE id=" + id + ";", -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C("SELECT id_result FROM Result WHERE id=" + id + ";"), -1, &stmt, NULL); sqlite3_step(stmt); wxString list_id = sqlite3_column_text(stmt, 0); sqlite3_finalize(stmt); @@ -417,13 +417,13 @@ void class_bdd::SetIdResult(const wxString& id, wxArrayString id_results) count++; } list_id = list_id.BeforeLast(','); - sqlite3_exec(db, "UPDATE Result SET id_result=\"" + list_id + "\" WHERE id=" + id + ";", NULL, NULL, NULL); + sqlite3_exec(db, _C("UPDATE Result SET id_result=\"" + list_id + "\" WHERE id=" + id + ";"), NULL, NULL, NULL); SetNbResults(id, count); } void class_bdd::AddIdResult(const wxString& id, const wxString& id_result) { - sqlite3_prepare_v2(db, "SELECT id_result FROM Result WHERE id=" + id + ";", -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C("SELECT id_result FROM Result WHERE id=" + id + ";"), -1, &stmt, NULL); sqlite3_step(stmt); wxString list_id = sqlite3_column_text(stmt, 0); sqlite3_finalize(stmt); @@ -432,12 +432,12 @@ void class_bdd::AddIdResult(const wxString& id, const wxString& id_result) else list_id = id_result; - sqlite3_exec(db, "UPDATE Result SET id_result=\"" + list_id + "\" WHERE id=" + id + ";", NULL, NULL, NULL); + sqlite3_exec(db, _C("UPDATE Result SET id_result=\"" + list_id + "\" WHERE id=" + id + ";"), NULL, NULL, NULL); } bool class_bdd::IsPubli(const wxString& id) { - sqlite3_prepare_v2(db, "SELECT * FROM Publi WHERE id=" + id + ";", -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C("SELECT * FROM Publi WHERE id=" + id + ";"), -1, &stmt, NULL); bool out = (sqlite3_step(stmt) == SQLITE_ROW); sqlite3_finalize(stmt); return out; @@ -456,7 +456,7 @@ void class_bdd::AddPubli(wxString id, wxString title, wxString authors, wxString << "\"" << link << "\", " << "\"" << date << "\", " << "\"" << affiliation << "\");"; - rc = sqlite3_exec(db, requete, NULL, NULL, NULL); + rc = sqlite3_exec(db, _C(requete), NULL, NULL, NULL); if (rc) wxMessageBox(_itoW(rc) + "\n" + requete); } @@ -464,7 +464,7 @@ void class_bdd::AddPubli(wxString id, wxString title, wxString authors, wxString wxArrayString class_bdd::GetPublis(wxString id) { wxArrayString out; - sqlite3_prepare_v2(db, "SELECT * FROM Publi WHERE id=" + id + ";", -1, &stmt, NULL); + sqlite3_prepare_v2(db, _C("SELECT * FROM Publi WHERE id=" + id + ";"), -1, &stmt, NULL); sqlite3_step(stmt); out.Add(wxString::FromUTF8((const char*)sqlite3_column_text(stmt, 1))); out.Add(wxString::FromUTF8((const char*)sqlite3_column_text(stmt, 2))); diff --git a/CosMoS/misc.h b/CosMoS/misc.h index 3661d7c..e4e9ee5 100644 --- a/CosMoS/misc.h +++ b/CosMoS/misc.h @@ -9,7 +9,7 @@ #elif defined( __WXMSW__ ) #define slash "\\" #endif -#define _C(string) (const char*) string.c_str() // wxString -> char* +#define _C(string) (const char*) wxString(string).mb_str(wxConvUTF8) // wxString -> char* #define _itoW(integer) wxString::Format("%i",integer) // int -> wxString enum