2010-05-07 4 views
1

J'ai un tas de SQL dans un fichier, qui crée les tables et ainsi de suite. Le problème est que la commande .read renvoie simplement "ne peut pas ouvrir xxx" lorsque j'essaie de l'exécuter. J'ai mis les autorisations à tout le monde en lecture/écriture, mais cela n'a pas aidé. Je peux chatter le fichier depuis la ligne de commande et le voir correctement.Pourquoi SQLite dit qu'il ne peut pas lire SQL à partir d'un fichier?

Ceci est sous Mac OS 10.6.3.

Quelqu'un a-t-il une idée ici? Merci!

+0

http://www.ubuntu.com/getubuntu/download –

+1

Pouvez-vous publier une transcription à partir de la ligne de commande? Commencez par modifier le répertoire et faites 'ls -l' pour afficher le fichier .sql dans un répertoire avec ses permissions. Ensuite, exécutez 'sqlite'. Ensuite, exécutez 'fichier .read' La seule fois que j'ai jamais vu" ne peut pas ouvrir xxx "est quand je spécifie le mauvais chemin ou je n'ai pas de permission, donc je ne suis pas sûr de la main. Essayez d'indiquer le nom de fichier dans la commande .read. Essayez un nom de fichier plus simple si vous avez des caractères non-ASCII. Vous pouvez modifier ce post pour ajouter les informations une fois que vous l'avez. – indiv

Répondre

3

Voici le code source dans shell.c, où l'utilitaire sqlite3 exécute le .read et essaie de lire le fichier sql:

if(c=='r' && strncmp(azArg[0], "read", n)==0 && nArg==2){ 
    FILE *alt = fopen(azArg[1], "rb"); 
    if(alt==0){ 
     fprintf(stderr,"can't open \"%s\"\n", azArg[1]); 
    }else{ 
     process_input(p, alt); 
     fclose(alt); 
    } 
    }else 

Vous pouvez voir que l'utilitaire imprime « ne peut pas ouvrir xxx » seulement lorsque l'appel à fopen échoue. Dommage qu'ils n'impriment pas d'erreur pour vous, mais cette information devrait vraiment vous aider à affiner le problème car pas spécifique à sqlite. Vous spécifiez le chemin erroné (essayez de le citer), vous n'avez pas la permission ou le fichier n'existe pas réellement (ce qui signifie qu'il y a quelque chose de différent dans la façon dont vous utilisez cat et .read, comme le répertoire courant est différent).

1

Attention à la; à la fin. .read n'aime pas;

Questions connexes