我有一個表格,它有兩列作爲組合(文本),標誌(數字)。我試圖檢索標誌的值取決於組合值使用選擇查詢中的where子句。從數據庫中提取特定數據時遇到困難
問題是,當組合值從1開始時,例如,在組合='1001'的情況下,它從表中檢索標誌的正確值,但是當它從0開始時例如如果組合='0010',則不會從數據庫中檢索到任何內容。我調試了代碼,但沒有得到原因。以下是數據庫映像。
-(void)fetchfromDatabase
{
sqlite3 *database;
NSString *strPath = [[NSBundle mainBundle]pathForResource:@"ken" ofType:@"db"];
NSLog(@"DBPath : %@",strPath);
const char *dbPath = [strPath UTF8String];
if(sqlite3_open(dbPath, &database)==SQLITE_OK)
{
NSLog(@"Database is Ok");
// const char *cConcate = [concate UTF8String];
NSString *query = [NSString stringWithFormat:@"select * from kentable where combination =%@",concate];
NSLog(@"final concate in database:%@",concate);
NSLog(@"Query:%@",query);
const char *sqlQuery =[query cStringUsingEncoding:NSASCIIStringEncoding];
NSLog(@"char query %s", sqlQuery);
sqlite3_stmt *queryStatement;
if(sqlite3_prepare_v2(database, sqlQuery,-1,&queryStatement, NULL)==SQLITE_OK)
{
NSLog(@"Conversion is Ok");
while (sqlite3_step(queryStatement)==SQLITE_ROW)
{
NSLog(@"in While Statement of row");
int flag=sqlite3_column_int(queryStatement, 1);
NSLog(@"question 5:%d",flag);
}
sqlite3_reset(queryStatement);
}
else
{
NSLog(@"ERROR");
}
sqlite3_close(database);
}
}
我想你可能想在你的查詢中加引號。儘管我更喜歡使用CoreData的sqlite。 – govi 2012-03-13 11:07:12
使用核心數據!速度更快,您將擁有更少的代碼進行管理。你不會寫選擇語句 – 2012-03-13 11:08:26
@govi你是對的。非常感謝。它運行良好。 – 2012-03-14 10:12:10