选择“查询未准备中”



我在这里实现一个选择查询从表中获取数据,但没有任何行是由我的查询返回。

下面是我使用的代码:
if ((sqlite3_open([[self dataFilePath] UTF8String], &database))==SQLITE_OK)
{
    NSLog(@"DataBase OpeneD..!!");
    imageId=[[NSMutableArray alloc] init];
    const char *slectImageIdQuery="SELECT * from ts_Gallary;";
    sqlite3_stmt *statement;
    if (sqlite3_prepare_v2(database, slectImageIdQuery, -1, &statement, nil)==SQLITE_OK)
    {
        NSLog(@"Query CREATED..!!");
        while (sqlite3_step(statement)==SQLITE_ROW)
        {
            int iId=sqlite3_column_int(statement, 0);
            NSString *imgTtl=[NSString stringWithFormat:@"%d",iId];
            NSLog(@"image id in while=%d",iId);
            [imageId addObject:[NSString stringWithFormat:@"%@",imgTtl]];           
        }
    }
    else 
    {
        NSLog(@"query could not be prepared");
    }
    sqlite3_finalize(statement);        
}
sqlite3_close(database);

控制台显示:

2011-04-06 17:44:33.381 Tuscany[468:207]数据库打开…2011-04-06 17:44:33.382 Tuscany[468:207]查询无法准备

注意:这里dataFilePath是返回数据库路径的方法,数据库是sqlite3 object

我的应用程序没有抛出错误或异常。

会有什么问题,我如何发现问题并解决问题?

谢谢。

没有抛出错误或异常

嗯,是的,有。调用sqlite3_prepare_v2()失败;它不返回SQLITE_OK。

当您在数据库的sqlite提示符下运行此语句时会发生什么?

SELECT * from ts_Gallary;

尝试替换这一行

NSLog(@"query could not be prepared");

用一些能给你更多错误信息的东西。包含对sqlite3_errmsg()的调用

const char *slectImageIdQuery="SELECT * from ts_gallery;"中删除分号(;)

like const char *slectImageIdQuery="SELECT * from ts_gallery "

最新更新