sqlite学习总结

来源:互联网 发布:淘宝发货物流单号修改 编辑:程序博客网 时间:2024/06/05 14:46
////  main.cpp//  sqlite////  Created by yuer on 14-9-13.//  Copyright (c) 2014年 yuer. All rights reserved.//#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;#include "sql/sqlite3.h"int loadMyInfo(void * param,int column, char** columnValue, char** columnName);int main(int argc, const char * argv[]){    sqlite3*    hSqlite = nullptr;    char*       errmsg  = nullptr;// 错误信息        // 打开数据库,没有则创建test.db    int ret = sqlite3_open("test.db", &hSqlite);    if (ret != SQLITE_OK)    {        cout<<"Open sqlite is failed!"<<endl;    }        // 删除表    ret = sqlite3_exec(hSqlite, "DROP table mytables;", nullptr, nullptr, &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }        // 创建表    ret = sqlite3_exec(hSqlite,"create table mytables (id integer primary key, value text, name text);",nullptr, nullptr, &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }        // 插入数据    ret = sqlite3_exec(hSqlite,"insert into mytables values(1, 'des1', 'name1');",nullptr,                 nullptr, &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }    ret = sqlite3_exec(hSqlite,"insert into mytables values(2, 'des2', 'name2');",nullptr,                       nullptr, &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }    ret = sqlite3_exec(hSqlite,"insert into mytables values(3, 'des3', 'name3');",nullptr,                       nullptr, &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }        // 二进制写入    sqlite3_stmt* write;    sqlite3_prepare_v2(hSqlite,"insert into ? values(18, 'test', 'test');", -1, &write,0);    std::string value ="10";    std::string dbName ="mytables";    sqlite3_bind_blob(write, 1, dbName.c_str(), -1, SQLITE_TRANSIENT);// 绑定数据    //sqlite3_bind_int(write, 1, 6);    //sqlite3_bind_text(write, 2, value.c_str(), -1, SQLITE_TRANSIENT);//绑定数据    //sqlite3_bind_blob(write, 3, value.c_str(), -1, SQLITE_TRANSIENT);//绑定数据    sqlite3_step(write);            // 执行    sqlite3_reset(write);    sqlite3_finalize(write);        // 释放        // 读出二进制    sqlite3_stmt* read;    sqlite3_prepare(hSqlite, "select * from mytables", -1, &read, 0);    printf("----二进制查询结果---\n");    while (sqlite3_step(read) ==SQLITE_ROW)    {        int id = sqlite3_column_int(read,0);        const void * pText =sqlite3_column_blob(read, 1);        int len = sqlite3_column_bytes(read,1);        std::string text((char*)pText, len);        const void * pName =sqlite3_column_blob(read, 2);        int nameLen = sqlite3_column_bytes(read,2);        std::string name((char*)pName, nameLen);        printf("%d-%s-%s\n", id, text.c_str(), name.c_str());    }    sqlite3_finalize(read);    printf("----二进制查询结果---\n");            // 查询数据    ret = sqlite3_exec(hSqlite,"select * from mytables;",loadMyInfo,                       (void*)"param", &errmsg);    if (ret != SQLITE_OK)    {        printf("err: %s\n", errmsg);    }        // 不使用回调的查询    char** dbResult;    int row, column;    ret = sqlite3_get_table(hSqlite, "select * from mytables;", &dbResult, &row, &column, &errmsg);    if (ret == SQLITE_OK)    {        printf("----<>-----\n");        printf("查到%d条结果\n", row);        int index = column;        for (int i =0; i< row; i++)        {            for (int j =0; j< column; j++)            {                printf("[%s]:%s, ", dbResult[j], dbResult[index++]);            }            printf("\n");        }        printf("----<>-----\n");    }    sqlite3_free_table(dbResult);//释放查询结果    sqlite3_errcode(hSqlite);    // 关闭数据库    sqlite3_close(hSqlite);    return 0;}// 每查到一条结果就调用一次int loadMyInfo(void * param,int column, char** columnValue, char** columnName){    printf("param: %s\n", (char*)param);    printf("**********\n");    for (int i = 0; i< column; i++)    {        printf("[%s]:%s,", columnName[i], columnValue[i]);    }    printf("\n**********\n");    return 0;}


 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃金针菇中毒啦怎么办 吃火锅剩羊肉怎么办 豆腐废水有臭味怎么办 鸡蛋羹不凝固怎么办 蒸鸡蛋用凉水怎么办 婴儿喝了生水怎么办 小孩碰到脏东西怎么办 出月子没奶怎么办 宝宝钙吸收不好怎么办 宝宝吸收不好长不胖怎么办 一岁半宝宝吸收不好怎么办 婴儿看见脏东西怎么办 母乳变质吃了怎么办 六个月婴儿积食怎么办 儿童吸收功能差怎么办 小孩吸收不好长不胖怎么办 宝贝喝水都吐怎么办 小孩子便秘大便硬结怎么办 一岁半宝宝不爱吃饭怎么办 小孩生病不吃饭怎么办 宝宝吃药不肯咽怎么办 宝宝自己不吃饭怎么办 宝宝突然不想吃饭怎么办 孩子死活不吃药怎么办 小孩死活不吃药怎么办 婴儿不吃药怎么办啊 1周岁宝宝厌食怎么办 宝宝吃药会吐怎么办 宝宝上火拉不出大便怎么办 40天宝宝上火怎么办 宝宝8个月结火了怎么办 婴儿喝牛奶上火怎么办 儿童喝牛奶上火怎么办 三岁宝宝不喝奶怎么办 孩子喝牛奶过敏怎么办 小孩哭晕过去怎么办 宝宝断不了奶怎么办 小孩喝牛奶过敏怎么办 宝宝不爱喝牛奶怎么办? 孕妇喝牛奶恶心怎么办 孕妇喝奶粉上火怎么办