Ok, thanks for the responses. --Ulrik >I think it stops right here, because you've got fname twice. That >induces an error.
You are correct, I'm not sure when I introduced that error, but thanks for pointing it out. Its not in my running code so it was either C/P error or something else dumb. -- Dr. H & Ted Ok, I see what you guys are saying. I split my code up so I create and populate the database with another set of sqlite3_exec() statements. I confirmed the database is populated with the following results: $ ./sqlite3 test.db SQLite version 3.2.1 Enter ".help" for instructions sqlite> select * from People; fname|lname John|Fullman Mike|Fullman Mike|Smith My select code is as follows: sqlite3_open( "test.db", &database ); size = sprintf( buf, "SELECT * FROM People WHERE lname = '?'" ); iPrep = sqlite3_prepare( database, buf, size, &statement, 0 ); sqlite3_bind_text(statement, 1, "Fullman", 7, SQLITE_STATIC ); rc = sqlite3_step(statement); std::cout << rc << " " << SQLITE_DONE; I would expect rc to be SQLITE_ROW, but it is SQLITE_DONE. I undertand with getting multiple row back I will need to loop the sqlite3_step function later. -- Kiel W. [EMAIL PROTECTED] ---------------------------------- >> time is swift <<