sql >> Databasteknik >  >> RDS >> SQLite

SQLite returnerade en felkod på 14

Det här kan vara lite sent, men hoppas att det här hjälper för den som får det här problemet (eftersom jag inte kan hitta en definitiv lösning).

Jag tror att jag vet orsaken till denna orsak (åtminstone för mitt fall). Titta i DDMS --> Filutforskaren , skulle du inse att Databasmappen (/data/data//databases/) existerar inte, varför programmet inte kan skapa databasfilen i den icke-existerande mappen. Om du kan skapa en databasmapp på något sätt kan du undvika det här problemet.

Eftersom jag är lat använde jag bara /data/data//files/ mappen när jag är i emulatorläge. Du kan hämta filerna dir med detta:

context.getFilesDir().getPath()

Detta fungerade utmärkt för mig i emulatorn.

Hoppas detta hjälper någon.

Om du vill se kod:

String dbFilename = "example.db";
try
{       
    File databaseFile = getDatabasePath(dbFilename);        
        SQLiteDatabase _db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
} catch (Exception e)
{
    String databasePath =  getFilesDir().getPath() +  "/" + dbFilename;
    File databaseFile = new File(databasePath); 
    _db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
}

EDIT:Jag försökte logga in på Facebook (min app har FB-integration) på emulatorn och mappen /databases dök upp efter det (och fortsatte). Inte säker på vad som hände, men det är möjligt att skapa den mappen på något sätt. Något för en annan expert här att belysa.



  1. Skapa trigger för att logga SQL som påverkade tabellen?

  2. Hur konverterar jag från BLOB till TEXT i MySQL?

  3. Är det nödvändigt att kassera DbCommand efter användning?

  4. Vilka är de olika sätten att infoga data i SQL Server Table - SQL Server / TSQL Tutorial Del 100