2010-09-16 6 views
1

Cette ligne de codeTrop peu d'arguments à sqlite3_open dans XCode

if (sqlite3_open(([databasePath UTF8String], &database) == SQLITE_OK) 

génère une erreur en disant qu'il ya trop peu d'arguments à sqlite3_open. Combien d'arguments sont requis? Comment cela peut-il être réparé?

+0

awakeFromNib: S'il vous plaît marquer vos questions plus précisément. Voir mes modifications à vos deux dernières questions. –

Répondre

3

Vous avez vos parenthèses pas tout à fait au bon endroit - donc vous appelez sqlite3_open() avec juste un argument, le résultat du test 'is-equal'.

Ceci est probablement plus proche:

if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 

Voir aussi la docs for sqlite3_open() - il y a trois signatures alternatives, accepter 2 ou 4 args:

int sqlite3_open(
    const char *filename, /* Database filename (UTF-8) */ 
    sqlite3 **ppDb   /* OUT: SQLite db handle */ 
); 
int sqlite3_open16(
    const void *filename, /* Database filename (UTF-16) */ 
    sqlite3 **ppDb   /* OUT: SQLite db handle */ 
); 
int sqlite3_open_v2(
    const char *filename, /* Database filename (UTF-8) */ 
    sqlite3 **ppDb,   /* OUT: SQLite db handle */ 
    int flags,    /* Flags */ 
    const char *zVfs  /* Name of VFS module to use */ 
); 
Questions connexes