12
votes

C ++: créer une base de données à l'aide de SQLite pour insertion et mise à jour

J'essaie de créer une base de données en C ++ en utilisant SQLITE3 LIB .. je reçois une erreur sqlite3_prepare_v2 '
n'a pas été déclaré dans cette portée comme indiqué dans logcat.

fichier journal xxx

voici mon code xxx

S'il vous plaît aidez-moi à sortir. merci .....


0 commentaires

3 Réponses :


1
votes

passer par Ce lien . Je ne suis pas sûr. Cela pourrait vous aider.

Je pense que leur est no sqlite3_prepare_v2 dans sqlite3.h lib, alors essayez ceci .. sqlite3_prepare_v2 peut être remplacé par sqlite3_prepare, mais plus de soin est nécessaire, car il change légèrement la sémantique des appels ultérieurs.


0 commentaires

18
votes
#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;
}

2 commentaires

Ici. la base de données ouverte ... mais j'ai besoin de créer une base de données


Vijay, SQLite est différent d'un serveur DB. En fait, c'est un moteur DB intégré qui utilise un fichier pour stocker votre DB. Un DB par fichier ouvrant essentiellement un DB signifie "utiliser existant ou créer de nouveaux dB".



6
votes

gars, création de la base de données à l'aide de SQLite3 en C / C ++, j'utilise ici les étapes suivantes ... xxx

après la démarrage de votre codage ... xxx


3 commentaires

Réponses incroyable. Merci beaucoup mon pote! :-)


Au lieu de garder la pièce des valeurs de la requête d'insertion en tant que texte statique, cela peut être agréable si vous mettez à jour l'exemple possible, après la préparation de la déclaration, comment modifier la partie Valeurs de manière dynamique ..


Phoad, vous faites cela en utilisant "?" ou? 1? 2, etc à l'intérieur de la requête, puis des paramètres de liaison à un relevé.see SQLite.org/ c3ref / bind_blob.html