|
|
@@ -21,7 +21,7 @@ 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 AUTOINCREMENT, 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 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 Correc(orig TEXT PRIMARY KEY, dest TEXT);", NULL, NULL, NULL); |
|
|
|
if (rc) |
|
|
@@ -35,12 +35,58 @@ void class_bdd::createEmpty() |
|
|
|
|
|
|
|
void class_bdd::import(const wxString& filename) |
|
|
|
{ |
|
|
|
wxTextFile importfile; |
|
|
|
if (!importfile.Open(filename)) |
|
|
|
wxMessageBox("Erreur lors du chargement du fichier", "Erreur", wxICON_ERROR | wxOK); |
|
|
|
else |
|
|
|
FILE * importfile = fopen(_C(filename), "r"); |
|
|
|
char c; |
|
|
|
bool inquote = false; |
|
|
|
bool firstline = true; |
|
|
|
wxString item[23]; |
|
|
|
do |
|
|
|
{ |
|
|
|
wxMessageBox(wxString::Format("%i",importfile.GetLineCount()), "Nb lignes", wxOK); |
|
|
|
importfile.Close(); |
|
|
|
} |
|
|
|
for (int i=0; i<22; i++) |
|
|
|
{ |
|
|
|
item[i]=""; |
|
|
|
do |
|
|
|
{ |
|
|
|
c = fgetc(importfile); |
|
|
|
if (c == '"') |
|
|
|
{ |
|
|
|
if (!inquote) |
|
|
|
inquote = true; |
|
|
|
else |
|
|
|
inquote = false; |
|
|
|
} |
|
|
|
if (c != '"') |
|
|
|
item[i] << c; |
|
|
|
}while (((c != ';') && (!inquote)) || inquote); |
|
|
|
item[i] = item[i].BeforeLast(wxUniChar(';')); |
|
|
|
} |
|
|
|
item[21]=""; |
|
|
|
do |
|
|
|
{ |
|
|
|
c = fgetc(importfile); |
|
|
|
if ((c != '\n') && (c != EOF)) |
|
|
|
item[21] << 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] + ", "; |
|
|
|
requete << ");"; |
|
|
|
rc = sqlite3_exec(db, requete, NULL, NULL, NULL); |
|
|
|
} |
|
|
|
firstline = false; |
|
|
|
|
|
|
|
}while (c != EOF); |
|
|
|
fclose(importfile); |
|
|
|
} |