Iphone 如果我没有从SQLite获得任何记录,我的应用程序就会崩溃

Iphone 如果我没有从SQLite获得任何记录,我的应用程序就会崩溃,iphone,sqlite,select,Iphone,Sqlite,Select,我第一次使用SQlite。。。。 我在DB中查找折扣,一切正常,直到我选择“无”。如果数量(adNumbers)高于或低于DB中指定的数量,则会发生这种情况 然后,当尝试从DB列检索折扣值时,我得到一个错误,应用程序崩溃。我试过做一个空检查,但似乎没有用 我试着用 while(sqlite3\u步骤(compiledStatement)=SQLITE\u行){ 但是我没有得到任何回报 请给我指出正确的方向-我如何检查数据库是否返回任何记录(ADNumber在数据库中的值之间) 这是我的方法 -

我第一次使用SQlite。。。。 我在DB中查找折扣,一切正常,直到我选择“无”。如果数量(adNumbers)高于或低于DB中指定的数量,则会发生这种情况

然后,当尝试从DB列检索折扣值时,我得到一个错误,应用程序崩溃。我试过做一个空检查,但似乎没有用

我试着用
while(sqlite3\u步骤(compiledStatement)=SQLITE\u行){

但是我没有得到任何回报

请给我指出正确的方向-我如何检查数据库是否返回任何记录(ADNumber在数据库中的值之间)

这是我的方法


-(NSString*)adDisq:(NSString*)strDISQ:(NSInteger)adNumbers{

NSString *strDiscount;
strDiscount = @"00";

if(adSTMT == nil) {
    const char *sql = "SELECT ID, DISCOUNT_TYPE, DESCRIPTION, AD_FROM, AD_TO, AD_DISQ FROM DISCOUNT "
                      "WHERE (((DISCOUNT_TYPE)=?) AND ((?) Between AD_FROM And AD_TO))";

    if(sqlite3_prepare_v2(database, sql, -1, &adSTMT, NULL) != SQLITE_OK)
        NSAssert1(0, @"Error while creating detail view statement. '%s'", sqlite3_errmsg(database));
}

sqlite3_bind_text(adSTMT, 1, [strDISQ UTF8String], -1, SQLITE_STATIC);
sqlite3_bind_int(adSTMT, 2, adNumbers);   

if(SQLITE_DONE != sqlite3_step(adSTMT)) {
    NSLog(@"SELECT went OK, getting rows");
    const char *columnText = (const char *)sqlite3_column_text(adSTMT, 5);
    if(columnText != NULL){
        strDiscount = [NSString stringWithUTF8String:(char *)sqlite3_column_text(adSTMT, 5)];
        NSLog(@"Discount: %@", strDiscount);
    }
    else {
        strDiscount = @"00";
    }
}
else{
    NSAssert1(0, @"Error while getting the discount'%s'", sqlite3_errmsg(database));
}

//Reset the detail statement.
sqlite3_reset(adSTMT);
return strDiscount;
}

问题已解决

NSAssert1(0,@“获取折扣“%s”时出错,sqlite3_errmsg(数据库))


当数据不存在或数据不在指定范围内时,您的应用程序崩溃了??