sqlite3在我的iphone应用程序中不起作用
我想在iphone应用程序中使用sqlite3。但它不起作用。场景是:-单击按钮事件时,应该运行一个方法并从数据库中检索数据。但我的节目顺序没有进入sqlite3在我的iphone应用程序中不起作用,iphone,objective-c,sqlite,Iphone,Objective C,Sqlite,我想在iphone应用程序中使用sqlite3。但它不起作用。场景是:-单击按钮事件时,应该运行一个方法并从数据库中检索数据。但我的节目顺序没有进入 if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { const char *sqlStatement = "select * from records"; sqlite3_stmt *compiledStatement; 0NSL
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
const char *sqlStatement = "select * from records";
sqlite3_stmt *compiledStatement;
0NSLog(@"%s", sqlite3_errmsg(database)); // Results - no error
-
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
//here NSLog statement does not work.
打开数据库没有问题。原因应该是什么?任何值得注意的解决方案。
谢谢你试试这个:
NSLog(@“%s”,sqlite3_errmsg(数据库))代码>并查看您的查询中是否有错误。以下是我自己代码的修改示例:
NSString *file = @"youdatabase.db"
sqlite3 *db;
if(sqlite3_open([file UTF8String], &db) == SQLITE_OK)
{
NSString *req = @"SELECT * FROM totoTable";
sqlite3_stmt *returnReq;
if(sqlite3_prepare(db, [req cStringUsingEncoding:NSUTF8StringEncoding], -1, &returnReq, NULL) == SQLITE_OK)
{
while (sqlite3_step(returnReq) == SQLITE_ROW)
{
//Printf first returned value
NSLog(@"%s", (char*)sqlite3_column_text(returnReq, 0));
}
}
sqlite3_close(db);
}
希望它能帮助你;-) 没有错误。。。我编辑了我的问题,你可以有更好的理解。正如我从你的代码中看到的,你的if语句没有返回SQLITE_OK。我使用sqlite3并将其分为两个块,首先我做准备,不使用if,然后我使用while(sqlite3\u步骤(compiledStatement)==SQLITE\u行)
循环遍历结果。试试看它是否有任何变化。@alis:您的NSLog放错地方了。您想查看来自prepare的错误消息是什么。把它放在if的else部分。是的,你需要在准备之后有NSLog,你不需要在if@Simon,@JeremyP:我按照你的指示做了,我得到了一个错误:没有这样的表:记录(我的表名)。但是我的数据库有一个名为records的表,它也不是空的。那么,这背后的原因是什么?