SQLITE的C++调用示例

#include <Windows.h>
#include <stdio.h>
#include "sqlite3.h"
 
void test_sql_open()
{
    int nret = 0;
    sqlite3* db = 0;
    nret = sqlite3_open("test.db", &db);
    if(nret==SQLITE_OK)
        printf("test_sql_open: success! sqlite3*:%u /n", db);
    else
        printf("test_sql_open: failed! sqlite3*:%u /n", db);
 
    sqlite3_close(db);
}
void test_sql_open_create_table()
{
    int nret = 0;
    sqlite3* db = 0;
    nret = sqlite3_open("test.db", &db);
    if(nret==SQLITE_OK)
        printf("test_sql_open: success! sqlite3*:%u /n", db);
    else
        printf("test_sql_open: failed! sqlite3*:%u /n", db);
 
    char* errmsg = 0;
    nret = sqlite3_exec(db, "create table Table1 (id int, comments varchar(128))", 0, 0, &errmsg);
    if(nret==SQLITE_OK)
        printf("sqlite3_exec: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_exec: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    sqlite3_close(db);
}
void test_sql_open_insert_data()
{
    int nret = 0;
    sqlite3* db = 0;
    nret = sqlite3_open("test.db", &db);
    if(nret==SQLITE_OK)
        printf("test_sql_open: success! sqlite3*:%u /n", db);
    else
        printf("test_sql_open: failed! sqlite3*:%u /n", db);
 
    char* errmsg = 0;
    nret = sqlite3_exec(db, "insert into Table1 (id, comments) values (1, 'Hello, how are you?')", 0, 0, &errmsg);
    if(nret==SQLITE_OK)
        printf("sqlite3_exec: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_exec: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    sqlite3_close(db);
}
void test_sql_open_insert_data_using_prepare()
{
    int nret = 0;
    sqlite3* db = 0;
    nret = sqlite3_open("test.db", &db);
    if(nret==SQLITE_OK)
        printf("test_sql_open: success! sqlite3*:%u /n", db);
    else
        printf("test_sql_open: failed! sqlite3*:%u /n", db);
 
    sqlite3_stmt *stmt=0;
    char* errmsg = 0;
    nret = sqlite3_prepare(db, "insert into Table1 (id,comments) values (99,?)", -1, &stmt, 0);
    if(nret==SQLITE_OK)
        printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    char str[] = "How do you do?";
    nret = sqlite3_bind_text(stmt, 1, str, -1, 0);
    if(nret==SQLITE_OK)
        printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    //int id = 888;
    //nret = sqlite3_bind_int(stmt, 1, id);
    //if(nret==SQLITE_OK)
    //    printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    //else
    //    printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    nret = sqlite3_step(stmt);
    nret = sqlite3_finalize(stmt);
 
    sqlite3_close(db);
}
 
void test_sql_open_insert_data_using_prepare2()
{
    int nret = 0;
    sqlite3* db = 0;
    nret = sqlite3_open("test.db", &db);
    if(nret==SQLITE_OK)
        printf("test_sql_open: success! sqlite3*:%u /n", db);
    else
        printf("test_sql_open: failed! sqlite3*:%u /n", db);
 
    sqlite3_stmt *stmt=0;
    char* errmsg = 0;
    nret = sqlite3_prepare(db, "insert into Table1 (id,comments) values (?,?)", -1, &stmt, 0);
    if(nret==SQLITE_OK)
        printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    char str[] = "How do you do?";
    nret = sqlite3_bind_text(stmt, 2, str, -1, 0);
    if(nret==SQLITE_OK)
        printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    int id = 888;
    nret = sqlite3_bind_int(stmt, 1, id);
    if(nret==SQLITE_OK)
        printf("sqlite3_prepare: success! sqlite3*:%u, error message: %s /n", db, errmsg);
    else
        printf("sqlite3_prepare: failed! sqlite3*:%u, error message: %s /n", db, errmsg);
 
    nret = sqlite3_step(stmt);
    nret = sqlite3_finalize(stmt);
 
    sqlite3_close(db);
}
 
int main(__in int _Argc, __in char ** _Argv)
{
    printf("Hello db!/n");
 
    //test_sql_open();
 
    //test_sql_open_create_table();
 
    //test_sql_open_insert_data();
 
    test_sql_open_insert_data_using_prepare();
 
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值