iphone - sqlite3_prepare_v2 problem -


मुझे निम्न त्रुटि मिल रही है:

* अपूर्ण अपवाद के कारण ऐप रद्द करना * NSInvalidArgumentException ', कारण:' * + [NSString stringWithUTF8String]: NULL cString '

नीचे दिए गए कोड की रेखा पर:

  NSString * aName = [ NSString स्ट्रिंग WithUTF8 स्ट्रिंग (चार *) sqlite3_column_text (संकलित स्थान, 1)];  

मुझे यकीन नहीं है कि यहां क्या हो रहा है, मेरे एसक्यूएल कथन में संदर्भित कॉलम में डेटा शामिल है पूर्ण कोड नीचे।

  // उपयोगकर्ताओं को डेटाबेस से खोलें अगर (sqlite3_open ([databasePath UTF8String], और डेटाबेस) == SQLITE_OK) {// एसक्यूएल स्टेटमेंट सेट करें और इसे संकलित करें तेजी से पहुंच के लिए const char * sqlStatement = "ZROUTE से ZROUTE_NAME चुनें"; Sqlite3_stmt * संकलितStatement; यदि (sqlite3_prepare_v2 (डेटाबेस, sqlStatement, -1, और संकलित स्थान, शून्य) == SQLITE_OK) {// परिणामों के माध्यम से लूप और उन्हें रूट नाम सरणी में जोड़ें (sqlite3_step (संकलित स्टेटमेंट) == SQLITE_ROW) {// read परिणाम पंक्ति से डेटा NSString * aName = [NSString stringWithUTF8String: (चार *) sqlite3_column_text (संकलित स्थान, 1)]; // जानवरों को पशु ऑब्जेक्ट जोड़ें एरे // [सूची addObject: animal]; [सूची addObject: aName]; // [पशु रिलीज]; }} और {NSLog (@ "त्रुटि: संदेश '% s' के साथ डेटाबेस से विवरण का चयन करने में विफल रहा है।), Sqlite3_errmsg (डेटाबेस)); } // मेमोरी sqlite3_finalize (संकलितStatement) से संकलित बयान रिलीज़ करें; } Sqlite3_close (डेटाबेस);  

कथन के लिए शून्य सूचक की स्थिति को संभाल

  यदि ((चार *) sqlite3_column_text (संकलित स्थान, 1)! = नल) {NSString * aName = [NSString stringWithUTF8String (चार *) sqlite3_column_text (संकलित स्थान, 1)]; }  

यह आपकी समस्या का समाधान करेगा।

धन्यवाद,
जिम।


Comments