Thanks for the prompt response. As I stated in my previous email, I used SQLight Designer to view the database, which application would you recommend to view my database? Please keep in mind that I am not able to purchase a program, so it needs to be a free trial or a freeware. On the other hand, as far as you can see, should the code I have shown open a database, create a table and then add data to the table?
Thanks! ----- Original Message ----- From: Pavel Ivanov Sent: 06/21/12 01:08 PM To: General Discussion of SQLite Database Subject: Re: [sqlite] C++ programming - int sqlite3_prepare_v2() question > Also, I have downloaded and installed 'SQLight Designer' and when opening > the database file, I have just created, all that I can see is the words: > SQLite format 3. Apparently you open your database file in some plain text > editor instead of in something that understands what SQLite database is. > Pavel On Thu, Jun 21, 2012 at 12:22 PM, Arbol One <arbol...@programmer.net> > wrote: > namespace jme { > class Runner : public Gtk::Window { > private: > > jme::Exception* e; // Exception handler > sqlite3 *db; // Data Base > > sqlite3_stmt* stmt; // SQL statement > Glib::ustring dbName; // db name > > Glib::ustring sName; // my name > Glib::ustring sAddress; // my address > > Glib::ustring vfs; // MSWIN Identifier > int rc; // return code > int age; > // my age > // SQL statement > Glib::ustring dbdata; > Glib::ustring > create_table; > public: > Runner(); > ~Runner(); > void OpenDB(); > void > CreateTable(); > void AddData(); > }; > } > void jme::Runner::CreateTable(){ > > rc = sqlite3_prepare_v2( > db, /* Database handle */ > create_table.c_str() , /* SQL statement, UTF-8 encoded */ > create_table.length(), /* Maximum length of zSql in bytes. */ > &stmt, /* OUT: Statement handle */ > NULL /* OUT: Pointer to unused portion of zSql */ > ); > if(rc != SQLITE_OK) { > sqlite3_close(db); > std::cout << "error prepare_v2: " << rc << std::endl; > exit(-2); > } > rc = sqlite3_step(stmt); > if(rc != SQLITE_DONE) { > sqlite3_close(db); > std::cout << "error sqlite3_step: " << rc << std::endl; > exit(-3); > } > sqlite3_finalize(stmt); > } > void jme::Runner::AddData(){ > rc = sqlite3_prepare_v2( > db, /* Database handle */ > dbdata.c_str() , /* SQL statement, UTF-8 encoded */ > dbdata.length(), /* Maximum length of zSql in bytes. */ > &stmt, /* OUT: Statement handle */ > NULL /* OUT: Pointer to unused portion of zSql */ > ); > if(rc != SQLITE_OK) { > .... > } > rc = sqlite3_step(stmt); > if(rc != SQLITE_DONE) { > .... > } > sqlite3_finalize(stmt); > } > void jme::Runner::OpenDB() { > rc = sqlite3_open_v2(dbName.c_str(), > &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, > NULL); > if(rc != SQLITE_OK) { > .... > } > jme::Runner::Runner() { > dbName = "sqliteTest.sql"; > sName = "ArbolOne"; > sAddress = "1 Parkway Rd"; > vfs = "win32"; > age = 22; > dbdata = "INSERT INTO friend VALUES('Jamiil', '49 New Bridge', '49')"; > create_table = "CREATE TABLE friend (name TEXT, address TEXT, age INT)"; > try { > jme::gnu_io f; > f.deleteFile(dbName); > } catch(jme::Exception e) { > std::cout << e.what() << std::endl; > } > OpenDB(); > CreateTable(); > AddData(); > > } > jme::Runner::~Runner(){ > sqlite3_close(db); > cout << "Good bye!" << endl; > } > int main(int argc, char *argv[]) { > try { > Gtk::Main kit(argc, argv); > jme::Runner dbtest; > Gtk::Main::run(dbtest); > } catch(jme::Exception& x) { > x.Display(); > } > return 0; > } > This is what I have done so far, and following your advice I hade added 'sqlite3_finalize(stmt)' each time I am done with it. Al so, I have downloaded and installed 'SQLight Designer' and when opening the database file, I have just created, all that I can see is the words: SQLite format 3. > Come on you folk, you have more experience than me using SQLite, pich in!. What else do I need to do? > > TIA > > void jme::Runner::CreateTable(){ > rc = sqlite3_prepare_v2( > db, /* Database handle */ > create_table.c_str() , /* SQL statement, UTF-8 encoded */ > create_table.length(), /* Maximum length of zSql in bytes. */ > &stmt, /* OUT: Statement handle */ > NULL /* OUT: Pointer to unused portion of zSql */ > ); > if(rc != SQLITE_OK) { > sqlite3_close(db); > std::cout << "error prepare_v2: " << rc << std::endl; > exit(-2); > } > rc = sqlite3_step(stmt); > if(rc != SQLITE_DONE) { > sqlite3_close(db); > std::cout << "error sqlite3_step: " << rc << std::endl; > exit(-3); > } > sqlite3_finalize(stmt); > } > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http ://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users