2012-06-08 14 views
5

में मैं iphone app के लिए sqlite डेटाबेस का उपयोग कर रहा हूं। लेकिन कभी-कभी डेटाबेस से डेटा पुनर्प्राप्त करते समय "लूप" लाइन पर इसकी दुर्घटना होती है।EXC_BAD_ACCESS sqlite_step (कथन)

-(void)GetMethod 
{ 

    NSString *query = [[NSString alloc] initWithFormat:@"SELECT * FROM errorlogs"]; 
    sqlite3_stmt *statement;  
    if (sqlite3_prepare_v2(database, [query UTF8String],-1, &statement, nil) == SQLITE_OK) 
    { 
     while (sqlite3_step(statement) == SQLITE_ROW) **// EXC_BAD_ACCESS ON THIS LINE** 
     { 
      char *uid1 = (char *)sqlite3_column_text(statement, 0); 
      NSString *uid = [NSString stringWithFormat:@"%s",uid1]; 
     } 
    } 
    sqlite3_finalize(statement); 
} 

मुझे लूप के दौरान यह EXC_BAD_ACCESS क्यों मिल रहा है।

enter image description here धन्यवाद।

उत्तर

2

या तो sqlite3_step(statement) या SQLITE_ROW आरंभ नहीं किया है, या पहले से ही जारी की गई है https://github.com/ccgus/fmdb
यह एक दृश्य प्रदान करें, तो आप कर सकते हैं:
यहाँ लिंक है। जब यह nonxistent ऑब्जेक्ट पर समानता जांच चलाता है, तो यह EXE_BAD_ACCESS फेंकता है।

क्या आप कोई पंक्तियां लौट रहे हैं?

+0

उत्तर के लिए धन्यवाद। मैं बस अपने प्रश्न में उल्लिखित उपरोक्त कोड का उपयोग कर रहा हूं। इसलिए sqlite3_step (कथन) प्रारंभ किया गया है और sqlite_row स्थिर है। और वे अभी तक जारी नहीं हैं। – iDilip

+0

क्या 'चुनें * त्रुटि से' किसी भी पंक्तियों को वापस करें? अगर त्रुटि लॉग खाली है, तो आप कुछ भी नहीं कर सकते हैं, जो एक त्रुटि फेंक देगा। –

3

एफएमडीबी ढांचे का उपयोग करने का प्रयास करें, इससे मुझे मेरी परियोजना में बहुत मदद मिली। ;)

+0

क्या यह अलग डेटाबेस है? यदि हां, तो मैं इस त्रुटि के लिए एक डेटाबेस से दूसरे डेटाबेस में माइग्रेट नहीं कर सकता। – iDilip

+0

नहीं, कोडिंग को सरल बनाने के लिए यह सिर्फ एक रैपर है, यह काफी है। इसके अलावा इसका उपयोग करने में बहुत आसान है। एक चीज आपकी त्रुटि को ट्रैक करने के लिए nszombies को सक्षम करने का प्रयास करें, बस Alt + cmd + r दबाएं और "एक ज़ोंबी ऑब्जेक्ट सक्षम करें" कहकर एक चेकबॉक्स है। –

+0

एनएसजेम्बी मेरी परियोजना पर सक्षम है। लेकिन फिर भी वह उस लाइन पर EXC_BAD_ACCESS फेंक रहा है। – iDilip

संबंधित मुद्दे