J'utilise GTK + et SQLite en tant que frontal pour un petit programme de base de données, et SQLite ne peut pas détecter correctement le type de fichier en mode ouvert. Peu importe ce qui est ouvert, il retourne SQLITE_OK. J'ai essayé sqlite3_open
et sqlite3_open_v2
, le problème persiste toujours. La sortie est toujours le même, quel que soit le type de fichier est ouvert:Problèmes de fichiers ouverts SQLite3
/home/shawn/Programming/languagedb/lang.db
0 6304656
good
/home/shawn/Programming/languagedb/Makefile
0 6304656
good
Et voici le code connexe:
void OpenDialog()
{
GtkWidget *WinOpen;
WinOpen = gtk_file_chooser_dialog_new("Open Database",GTK_WINDOW(WinOpen),GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL);
if(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(WinOpen)))
{
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(WinOpen));
printf("%s\n",filename);
db = NULL;
rc = sqlite3_open_v2(filename,&db,SQLITE_OPEN_READONLY,NULL);
printf("%i %i\n",rc,&db);
if(SQLITE_OK == rc && NULL != db)
{
printf("good\n");
}
sqlite3_close(db);
}
gtk_widget_destroy(WinOpen);
}
Merci. Je n'étais pas sûr de ce que cela signifiait, alors je ferai d'autres recherches. –