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

前端 未结 3 1027
自闭症患者
自闭症患者 2020-12-30 07:50

I am trying to create a database in c++ using sqlite3 lib.. I am getting error sqlite3_prepare_v2\'
was not declared in this scope
as shown in logcat.<

3条回答
  •  别那么骄傲
    2020-12-30 07:54

     #include 
    

    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 
    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

提交回复
热议问题