Yes, thank? I gave you the answer you gave me, obviously I was right. I need you to prove me right again, how about, haaa.... yes! if 2x2 is 4, what is 2x2? Come on! I know you can get it, just try going slowly this time.
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Marcus Grimm Sent: Friday, September 07, 2012 3:39 AM To: General Discussion of SQLite Database Subject: Re: [sqlite] C++ - WHERE clause - 2nd update On 07.09.2012 08:58, Arbol One wrote: > I got this code to work, however, I am getting a segmentation fault on > this code. > > I pass to SQLite only one statement [db->setStmt(apstr);], I read the > first of the 'fname', but I don't know how to get to the second > 'fname' in the database. > I am not very sure as to what do to tell the program to read the next > row until there are no more [ read_str until SQLITE_DONE ] rows to read. well.. you already answered your question: You step thru the result list until you reach SQLITE_DONE. In your example you re prepare the statement all the time and thus you will always get the first hit in your data. The sequence should be: sqlite3_prepare_v2 while( sqlite3_step(mystmt) == SQLITE_ROW ) { /** read the data .. **/ } sqlite3_finalize ... > Help? > > Glib::ustring apstr; > Glib::ustring sName; > int apint; > mySQLite3* db; > try { > db = new mySQLite3(db_name.c_str()); > } catch(somexception& e) { > //do something > } > > // SQL statement > Glib::ustring sName; > apstr = "SELECT fname FROM "; > apstr += this->db_table_name; > apstr += " WHERE title = \'"; > apstr += token; > apstr += "\' "; > > apint = 0; > db->setStmt(apstr); > do{ > try { > sName = db->read_str(apint); > } catch(jme::Exception& e ) { > e.Display(); > } > apex.setException(sName, FILE, METHOD, LINE); > apex.Display(); > }while(sName != "finished"); > > > -------------------------------------------- > const Glib::ustring& mySQLite3::read_str(const int pos) > throw(somexception) { > > rc = sqlite3_prepare_v2(db, this->SQLStatement.c_str(), > -1,&mystmt, NULL); > if(rc != SQLITE_OK) { > // do something > } > rc = sqlite3_step(mystmt); > if(rc == SQLITE_ROW ) { > apstr = (const char*)sqlite3_column_text(mystmt,pos); > }else{ > apstr = "finished"; // a small modification > } > try { > this->finalize(); > } catch(somexception& e) { > throw e; > } > return apstr; > } > > What am I doing wrong? > > _______________________________________________ > sqlite-users mailing list > [email protected] > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

