Я новичок в разработке для iPhone.
Я хотел бы получить записи из базы данных, используя процедуру, указанную ниже.
Но когда я передал искомое значение searchDbAuthorId1 or searchDbQuoteId
методу, он показал сообщение BAD ACCESS
.
if(sqlite3_open([self.databasePath UTF8String], &database) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat:@"select distinct(qot.id), key.Authorid, key.Keyword, qot.Quotes from Keywords key inner JOIN Quotes qot on key.Authorid=qot.AuthorID where key.Keyword like \'%@\'",dataSearch];
sqlite3_stmt *compiledStatement;
const char *query_stmt = [querySQL UTF8String];
if(sqlite3_prepare_v2(database, query_stmt, -1, &compiledStatement, NULL) == SQLITE_OK)
{
while (sqlite3_step(compiledStatement)==SQLITE_ROW)
{
NSString *searchDbAuthorId1 = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 1)];
NSString *searchDbQuoteId1 = [[NSString alloc]initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 0)];
NSString *searchDbKeyword1 = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 2)];
NSString *searchDbQuote1 = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(compiledStatement, 3)];
terms *Objterm = [[terms alloc] init];
Objterm->searchDbQuoteId = searchDbQuoteId1;
Objterm->searchDbAuthorId = searchDbAuthorId1;
Objterm->searchDbKeyword = searchDbKeyword1;
Objterm->searchDbQuote = searchDbQuote1;
NSLog(@"searchDbQuoteId = %@",Objterm->searchDbQuoteId);
NSLog(@"searchDbAuthorId = %@",Objterm->searchDbAuthorId);
NSLog(@"searchDbKeyword= %@",Objterm->searchDbKeyword);
NSLog(@"searchDbQuote= %@",Objterm->searchDbQuote);
NSLog(@"searchDbQuoteId = %d",Objterm->searchDbQuoteId);
NSLog(@"searchDbAuthorId = %d",Objterm->searchDbAuthorId);
Я использовал NSLOG
, чтобы узнать фактические значения.
Ниже приведены значения с %@
Это правильные значения, которые мне нужны
2011-12-12 23:03:50.612 Quotes[1039:207] searchDbQuoteId = 15
2011-12-12 23:03:50.988 Quotes[1039:207] searchDbAuthorId = 6
и значения с %d
, и я получаю эти значения
2011-12-12 23:03:52.332 Quotes[1039:207] searchDbQuoteId = 109590272
2011-12-12 23:03:53.580 Quotes[1039:207] searchDbAuthorId = 109607456
Заранее спасибо.