XCode中sqlite3_open的参数太少

时间:2010-09-16 22:35:46

标签: macos sqlite

这行代码

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

生成错误,指出sqlite3_open的参数太少。需要多少参数?如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

你的括号不在正确的位置 - 所以你只用一个参数调用sqlite3_open(),这是'is-equal'测试的结果。

这可能更接近:

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

另见docs for sqlite3_open( ) - 有三个备选签名,接受2或4个参数:

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 */
);