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

Reply via email to