2011-02-21 15 views
5

के लिए SQLite से रिकॉर्ड को कैसे हटाएं SQLite डेटाबेस से सभी रिकॉर्ड को कैसे हटाएं।आईफोन

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    } 

ये कोड मेरे लिए काम नहीं करते थे।

अग्रिम धन्यवाद।

+0

में उपयोग यह कहाँ असफल क्यों हुआ? मैं आपके द्वारा कॉल किए जाने वाले प्रत्येक फ़ंक्शन से वापसी मूल्यों की जांच करने का सुझाव देता हूं। इसके अलावा, एसक्यूएल प्रश्न आमतौर पर ';' अर्धविराम से समाप्त होते हैं, लेकिन आपका SQL कथन नहीं होता है। क्या यह जानबूझकर है? क्या SQLite3 आपको अर्धविराम छोड़ने देता है? – sarnold

+0

@ सभी चीजों को मैंने सुना है और सभी सही हैं। और iShu पहले से ही मुझे समाधान प्रदान कर चुका था और यह मेरे लिए काम कर रहा है। धन्यवाद –

उत्तर

4

sqlite3_step, इस फ़ंक्शन को संकलन विवरण तैयार करने के बाद आवश्यक है।

इस तरह

+(BOOL)deleteFromtbl { 
     sqlite3 *database; 
     BOOL retValue = YES; 
     if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) { 
      const char *sqlStatement = "Delete from tbl"; 
      sqlite3_stmt *compiledStatement; 
      retValue = sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL); 
if(SQLITE_DONE != sqlite3_step(compiledStatement))//add this line 
    { 
     NSLog(@"Error while inserting data. '%s'", sqlite3_errmsg(database)); 
     return NO; 
    } 
      sqlite3_finalize(compiledStatement); 
     } 
     sqlite3_close(database); 

     return retValue;   
    }