En el código siguiente, pathToNonDatabase
es la ruta a un archivo de texto simple, no a una base de datos sqlite real. Esperaba sqlite3_open
para detectar eso, pero no (db
no es NULL
, y result
es SQLITE_OK
). Entonces, ¿cómo detectar que un archivo no es una base de datos SQLite válida?Cómo saber si el archivo de base de datos sqlite es válido o no
sqlite3 *db = NULL;
int result = sqlite3_open(pathToNonDatabase, &db);
if((NULL==db) || (result!=SQLITE_OK)) {
// invalid database
}
"pragma schema_version;" lanza el error "la base de datos está bloqueada" a veces. Le daré el "pragma quick_check"; una prueba –
Si su base de datos está bloqueada, está bloqueada. Todo fallará Inténtalo de nuevo cuando no esté bloqueado. :) –
Tienes razón. Todo falla cuando la base de datos está bloqueada. Incluso selecciona. En mi caso, quería determinar si el archivo era una base de datos Sqlite3. Si obtengo el error "la base de datos está bloqueada", creo que es seguro suponer que el archivo es una base de datos Sqlite3. –