In keeping with your example what you want to do is add a "done" flag to your
write class. So you tell it when your SQL can be executed.
Something like this:
void someClass::write2tblName() {
stmtName = "INSERT INTO name (n_id, title, fname, mname, lname) VALUES
(?, ?, ?, ?, ?)";
int data1 = 1;
Glib::ustring data2, data3, data4, data5;
data2 = "Mr";
data3 = "Dennis";
data4 = "Father Of C And UNIX";
data5 = "Ritchie";
int pos = 1;
try {
db->write(stmtName,pos, data1,0);
db->write(stmtName,++pos, data2,0);
db->write(stmtName,++pos,data3,0);
db->write(stmtName,++pos,data4,0);
db->write(stmtName,++pos,data5,1);
} catch(someException){.}
}
void mySQLite3Class::write(const Glib::ustring& sql_stmt, int pos, int data,
int done)
)
throw(someException) {
if (pos == 1) { // prepare statement on 1st field
rc = sqlite3_prepare_v2(db, sql_stmt.c_str(), -1, &stmt, NULL);
if(rc != SQLITE_OK) { throw(someException) }
}
rc = sqlite3_bind_int(stmt, pos, data);
if(rc != SQLITE_OK) { throw(someException) }
if (!done) return; // still have more to do so return now
rc = sqlite3_step(stmt);
if(rc != SQLITE_DONE) { throw(someException) }
sqlite3_finalize(stmt);
}
Michael D. Black
Senior Scientist
Advanced Analytics Directorate
Advanced GEOINT Solutions Operating Unit
Northrop Grumman Information Systems
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users