c++ : Create database using SQLite for Insert & update c++ : Create database using SQLite for Insert & update sqlite sqlite

c++ : Create database using SQLite for Insert & update


 #include <sqlite3.h>

should contain sqlite3_prepare_v2 and struct sqlite3. Make sure you're including the right sqlite3.h file.

Also in sqlite3_prepare_v2 the 3rd arg can be (and should be in your case) -1 so the sql is read to the first null terminator.

Working bare-metal sample using sqlite 3.7.11:

#include <sqlite3.h>int test(){    sqlite3* pDb = NULL;    sqlite3_stmt* query = NULL;    int ret = 0;    do // avoid nested if's    {        // initialize engine        if (SQLITE_OK != (ret = sqlite3_initialize()))        {            printf("Failed to initialize library: %d\n", ret);            break;        }        // open connection to a DB        if (SQLITE_OK != (ret = sqlite3_open_v2("test.db", &pDb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)))        {            printf("Failed to open conn: %d\n", ret);            break;        }        // prepare the statement        if (SQLITE_OK != (ret = sqlite3_prepare_v2(pDb, "SELECT 2012", -1, &query, NULL)))        {            printf("Failed to prepare insert: %d, %s\n", ret, sqlite3_errmsg(pDb));            break;        }        // step to 1st row of data        if (SQLITE_ROW != (ret = sqlite3_step(query))) // see documentation, this can return more values as success        {            printf("Failed to step: %d, %s\n", ret, sqlite3_errmsg(pDb));            break;        }        // ... and print the value of column 0 (expect 2012 here)        printf("Value from sqlite: %s", sqlite3_column_text(query, 0));         } while (false);    // cleanup    if (NULL != query) sqlite3_finalize(query);    if (NULL != pDb) sqlite3_close(pDb);    sqlite3_shutdown();    return ret;}

Hope this helps


Guys , creating database using sqlite3 in c/c++, here I'm using follwing steps...

1) Firstly you include MinGw file .2) Add header file sqlite3.h, sqlite3.c in your src folder.3) Add libr folder , in libr here include these file    mysqlite.h, shell.c, sqlite3.c, sqlite3.h, sqlite3ext.h

After then start your coding...

     #include <iostream> using namespace std; #include "sqlite3.h" int main (int argc, const char * argv[]) {    sqlite3 *db;    sqlite3_open("test1.db", & db);  string createQuery = "CREATE TABLE IF NOT EXISTS items (userid INTEGER PRIMARY KEY, ipaddr      TEXT,username TEXT,useradd TEXT,userphone INTEGER,age INTEGER, "                                                    "time TEXT NOT NULL DEFAULT                                                                              (NOW()));";    sqlite3_stmt *createStmt;    cout << "Creating Table Statement" << endl;    sqlite3_prepare(db, createQuery.c_str(), createQuery.size(), &createStmt, NULL);    cout << "Stepping Table Statement" << endl;    if (sqlite3_step(createStmt) != SQLITE_DONE) cout << "Didn't Create Table!" << endl;    string insertQuery = "INSERT INTO items (time, ipaddr,username,useradd,userphone,age)         VALUES ('7:30', '192.187.27.55','vivekanand','kolkatta','04456823948',74);"; // WORKS!    sqlite3_stmt *insertStmt;    cout << "Creating Insert Statement" << endl;    sqlite3_prepare(db, insertQuery.c_str(), insertQuery.size(), &insertStmt, NULL);    cout << "Stepping Insert Statement" << endl;    if (sqlite3_step(insertStmt) != SQLITE_DONE) cout << "Didn't Insert Item!" << endl;           return 0;     }


go through this link. I am not sure. It might help you out.

I think their is no sqlite3_prepare_v2 in sqlite3.h lib, so try this.. sqlite3_prepare_v2 can be replaced by sqlite3_prepare, but more care is needed, because it changes the semantics of subsequent calls slightly.