Just as a sanity check your code does work OK. I made it a standalone program.
#include <iostream>
#include "sqlite3.h"
using namespace std;
class mySQLite3Class {
private:
//SQLite3
sqlite3* db; //SQLite3
string dbName; // Database name
string apstr; // All Purpose String
string sql_param_tblName; // Databese table Name parameters
string stmtName; // SQL statement name
public:
void createDB();
void create_tblName();
void createDatabase(const string& s);
void createTable(const string& s);
mySQLite3Class(const string& s) {
createDatabase(s);
}
};
void mySQLite3Class::createDatabase(const string& s) {
int rc = sqlite3_open_v2(s.c_str(),
&db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
NULL);
if(rc != SQLITE_OK) {
std::cout << rc << std::endl;
}
}
void mySQLite3Class::createTable(const string& s) {
sqlite3_stmt *stmt;
int rc = sqlite3_prepare_v2(db, s.c_str(), s.length(), &stmt, NULL );
if(rc != SQLITE_OK) {
std::cout << rc << std::endl;// error = 1
std::cout << sqlite3_errmsg(db)
<< std::endl; // er-msg = library routine called out of sequence
}
rc = sqlite3_step(stmt);
if(rc != SQLITE_DONE) {
std::cout << rc << endl;
}
sqlite3_finalize(stmt);
}
int main(int argc,char *argv[])
{
string dbName = "001Database.sql";
string sql_param_tblName = "CREATE TABLE name(n_id INTEGER PRIMARY KEY, title
TEXT, fname TEXT, mname TEXT, lname TEXT)";
mySQLite3Class *myDB = new mySQLite3Class(dbName);
myDB->createTable(sql_param_tblName);
return 0;
}
Michael D. Black
Senior Scientist
Advanced Analytics Directorate
Advanced GEOINT Solutions Operating Unit
Northrop Grumman Information Systems
From: [email protected] [[email protected]] on
behalf of Arbol One [[email protected]]
Sent: Monday, July 23, 2012 1:54 PM
To: SqLite
Subject: EXT :[sqlite] C++ - Creating Table
Using SQLite version 3.7.8 amalgamation, under Win7 with MinGW, I compile
the bellow program, but for some strange reason I am getting a runtime error
when creating the table. I hope that one of you would be able to tell me
what I am doing wrong.
TIA
===
class mySQLite3Class {
private:
//SQLite3
sqlite3* db; //SQLite3
Glib::ustring dbName; // Database name
Glib::ustring apstr; // All Purpose String
Glib::ustring sql_param_tblName; // Databese table Name parameters
Glib::ustring stmtName; // SQL statement name
public:
void createDB();
void create_tblName();
mySQLite3Class(const Glib::ustring& s){ createDatabase(s);}
};
void mySQLite3Class::createDatabase(const Glib::ustring& s) {
rc = sqlite3_open_v2(s.c_str(),
&db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE,
NULL);
if(rc != SQLITE_OK) {
std::cout << rc << std::endl;
}
}
void mySQLite3Class::createTable(const Glib::ustring& s){
rc = sqlite3_prepare_v2(db, s.c_str(), s.length(), &stmt, NULL );
if(rc != SQLITE_OK) {
std::cout << rc << std::endl;// error = 1
std::cout << sqlite3_errmsg(db)
<< std::endl; // er-msg = library routine called out
of sequence
}
rc = sqlite3_step(stmt);
if(rc != SQLITE_DONE) {
std::cout << rc << stdl;
}
sqlite3_finalize(stmt);
}
myClass{
private:
mySQLite3Class* myDB;
Glib::ustring sql_param_tblName;
Glib::ustring dbName;
public:
myClass();
}
myClass::myClass(){
dbName = "001Database.sql";
sql_param_tblName = "CREATE TABLE name(n_id INTEGER PRIMARY KEY, title
TEXT, fname TEXT, mname TEXT, lname TEXT)";
myDB = new mySQLite3Class(dbName);
myDB->createTable(sql_param_tblName); ==> // problem
}
_______________________________________________
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