|
|
@@ -21,8 +21,9 @@ void class_bdd::createEmpty() |
|
|
|
{ |
|
|
|
rc = 0; |
|
|
|
rc += sqlite3_open_v2(_C(path), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Consult(id INTEGER PRIMARY KEY ASC, n_dossier INTEGER UNIQUE, nom VARCHAR(50), prenom VARCHAR(50), responsable VARCHAR(100), consultant VARCHAR(50), theme TEXT, etablissement VARCHAR(100), travail VARCHAR(50), date_cs DATE, publi_prevue BOOLEAN, publi BOOLEAN, cs_associe BOOLEAN, publi_CHU BOOLEAN, nb_result INT, id_results TEXT);", NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Result(id INTEGER PRIMARY KEY, titre TEXT, auteurs TEXT, lien VARCHAR(50), date_publi DATE);", NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Consult(id INTEGER PRIMARY KEY ASC, n_dossier INTEGER, nom VARCHAR(50), prenom VARCHAR(50), responsable VARCHAR(100), consultant VARCHAR(50), theme TEXT, etablissement VARCHAR(100), travail VARCHAR(50), date_cs DATE, publi_prevue BOOLEAN);", NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Result(id INTEGER PRIMARY KEY ASC, publi BOOLEAN DEFAULT 0, cs_associe BOOLEAN DEFAULT 0, publi_CHU BOOLEAN DEFAULT 0, nb_result INTEGER DEFAULT 0, id_result TEXT DEFAULT \"\");", NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Publi(id INTEGER PRIMARY KEY, titre TEXT, auteurs TEXT, lien VARCHAR(50), date_publi DATE);", NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, "CREATE TABLE Correc(orig TEXT PRIMARY KEY, dest TEXT);", NULL, NULL, NULL); |
|
|
|
if (rc) |
|
|
|
{ |
|
|
@@ -35,7 +36,16 @@ void class_bdd::createEmpty() |
|
|
|
|
|
|
|
void class_bdd::import(const wxString& filename) |
|
|
|
{ |
|
|
|
rc = 0; |
|
|
|
int size = 0; |
|
|
|
int progress = 0; |
|
|
|
|
|
|
|
FILE * importfile = fopen(_C(filename), "r"); |
|
|
|
fseek(importfile, 0, SEEK_END); |
|
|
|
size = ftell(importfile); |
|
|
|
rewind(importfile); |
|
|
|
|
|
|
|
wxProgressDialog progress_dialog("Import", "Import de la base...", size); |
|
|
|
char c; |
|
|
|
bool inquote = false; |
|
|
|
bool firstline = true; |
|
|
@@ -48,6 +58,7 @@ void class_bdd::import(const wxString& filename) |
|
|
|
do |
|
|
|
{ |
|
|
|
c = fgetc(importfile); |
|
|
|
progress++; |
|
|
|
if (c == '"') |
|
|
|
{ |
|
|
|
if (!inquote) |
|
|
@@ -60,33 +71,47 @@ void class_bdd::import(const wxString& filename) |
|
|
|
}while (((c != ';') && (!inquote)) || inquote); |
|
|
|
item[i] = item[i].BeforeLast(wxUniChar(';')); |
|
|
|
} |
|
|
|
item[21]=""; |
|
|
|
item[22]=""; |
|
|
|
do |
|
|
|
{ |
|
|
|
c = fgetc(importfile); |
|
|
|
progress++; |
|
|
|
if ((c != '\n') && (c != EOF)) |
|
|
|
item[21] << c; |
|
|
|
item[22] << c; |
|
|
|
}while ((c != '\n') && (c != EOF)); |
|
|
|
|
|
|
|
if (!firstline) |
|
|
|
{ |
|
|
|
wxString requete = "INSERT OR REPLACE INTO Consult (id, n_dossier, nom, prenom, responsable, consultant, theme, etablissement, travail, date_cs, publi_prevue) VALUES ("; |
|
|
|
requete << item[0] + ", "; |
|
|
|
requete << item[1] + ", "; |
|
|
|
requete << item[3] + ", "; |
|
|
|
requete << item[4] + ", "; |
|
|
|
requete << item[19] + ", "; |
|
|
|
requete << item[20] + ", "; |
|
|
|
requete << item[13] + ", "; |
|
|
|
requete << item[7] + ", "; |
|
|
|
requete << item[12] + ", "; |
|
|
|
requete << item[21] + ", "; |
|
|
|
requete << item[18] + ", "; |
|
|
|
if (item[1].IsSameAs("")) |
|
|
|
requete << "NULL, "; |
|
|
|
else |
|
|
|
requete << item[1] + ", "; |
|
|
|
requete << "\"" + item[3] + "\", "; |
|
|
|
requete << "\"" + item[4] + "\", "; |
|
|
|
requete << "\"" + item[19] + "\", "; |
|
|
|
requete << "\"" + item[20] + "\", "; |
|
|
|
requete << "\"" + item[13] + "\", "; |
|
|
|
requete << "\"" + item[7] + "\", "; |
|
|
|
requete << "\"" + item[12] + "\", "; |
|
|
|
requete << "\"" + item[21] + "\", "; |
|
|
|
if (item[18].IsSameAs("VRAI", false)) |
|
|
|
requete << "1"; |
|
|
|
else |
|
|
|
requete << "0"; |
|
|
|
requete << ");"; |
|
|
|
rc = sqlite3_exec(db, requete, NULL, NULL, NULL); |
|
|
|
rc += sqlite3_exec(db, requete, NULL, NULL, NULL); |
|
|
|
requete = "INSERT OR IGNORE INTO Result (id) VALUES ("; |
|
|
|
requete << item[0] + ");"; |
|
|
|
rc += sqlite3_exec(db, requete, NULL, NULL, NULL); |
|
|
|
} |
|
|
|
firstline = false; |
|
|
|
progress_dialog.Update(progress); |
|
|
|
|
|
|
|
}while (c != EOF); |
|
|
|
fclose(importfile); |
|
|
|
progress_dialog.Update(size); |
|
|
|
if (rc) |
|
|
|
wxMessageBox("Erreur lors de l'import", "Erreur", wxOK | wxICON_ERROR); |
|
|
|
} |