sqlite3不能在我的iphone应用程序中工作
问题描述:
我想为我的iPhone应用程序使用sqlite3。但它不起作用。方案是: - 在按钮的单击事件上,方法应该运行并从数据库检索数据。但我的程序序列不会进入sqlite3不能在我的iphone应用程序中工作
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.
打开数据库没有问题。应该是什么原因?任何可观的解决方案。 谢谢
答
下面是我自己的代码修改例如:
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);
}
希望它会帮助你;-)
答
试试这个:NSLog(@"%s", sqlite3_errmsg(database));
,看看你的查询是否有一些错误。
没有错误......我编辑我的问题,你可以有一个更好的认识。 – user12345 2010-08-18 13:03:13
正如我从你的代码可以看出,你的if语句不返回SQLITE_OK。 我使用sqlite3,我已经把它分成两个块,首先我做了准备,没有if,然后我使用'while(sqlite3_step(compiledStatement)== SQLITE_ROW)'循环遍历结果。试着看看它是否做出任何改变。 – Simon 2010-08-18 13:26:14
@alis:你的NSLog在错误的地方。你想看看准备中的错误信息是什么。把它放在你的if的其他部分。 – JeremyP 2010-08-18 15:58:24