rieccomi...utilizzando il programma su windows ci siamo accorti che appena salviamo crasha...abbiamo scoperto che praticamente il file che contiene le query non è stato creato e non ci spieghiamo il perché il codice sembra giusto adesso vi posto le funzioni che creano e leggono dal file:
codice:FILE* create_tmp_file(const char* path){ FILE* tmp; tmp=fopen(path,"wb"); return tmp; } ... int write_query(const char* query){ FILE* f; if(file_exists("tmp.sql")){ f=fopen("tmp.sql","ab"); }else{ f=create_tmp_file("tmp.sql"); } fprintf(f,"%s\n",query); fclose(f); return 0; } ... void save_tmp_file(const char* path,sqlite3* sql){ FILE* f; long size; char* buf; char* mex=0; sqlite3_open("DBLocale.db", &sql); if (!sql) { printf("Puntatore a sqlite3 nullo!\n"); return; } f=fopen(path,"rb"); if(f==NULL){ perror("file non esiste"); return; } fseek(f,0,SEEK_END);/*qui da problemi a quanto pare f è NULL*/ size=ftell(f); rewind(f); buf=(char*)malloc(sizeof(char)*(size+1)); fread(buf,1,size,f); buf[size] = '\0'; //printf("%s",buf); if(!sqlite3_exec(sql,buf,0,0,&mex)){ printf("%s",mex); } fclose(f); free(buf); sqlite3_free(mex); }![]()

Rispondi quotando