zoukankan      html  css  js  c++  java
  • sqlite3 试用指南

    想试用SQLite的相关功能,于是就测试了下。

    我是在CodeBlocks下配置VS2010而做的,但是最新CodeBlocks的VS2010配置不是对,链接说找不到kernel32.lib,于是重新修复安装VS2010(折腾人的大工程),后来参考了CodeBlocks在win7+Vs2010环境下的配置 终于搞定,其实是kernel32.lib移到了“Microsoft SDKs”中了。

    到SQLite主要上下载,参考在VS2010下由DEF和DLL文件生成SQLite3.lib ,生成lib文件(就是命令LIB /DEF:sqlite3.def /machine:IX86的使用),新建工程,配置lib的路径和引用sqlite3库即可。

    使用数据库的语句,保存为film.sql 文件。

    create table film(title, length, year, starring);
    create index film_title_index on film(title);
    insert into film values ('Silence of the Lambs', 118, 1991, 'Jodie Foster');
    insert into film values ('Contact', 153, 1997, 'Jodie Foster');
    insert into film values ('Crouching Tiger, Hidden Dragon', 120, 2000, 'Yun-Fat Chow');
    insert into film values ('Hours', 114, 2002, 'Nicole Kidman');

    执行sqlite3.exe test.db < film.sql ,会在目录下生成test.db

    可以使用sqlite3_analyzer.exe test.db 查看test.db的数据信息。

    测试代码参考 SQLite3 C/C++接口使用演示

    View Code
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <memory.h>
    #include "sqlite/sqlite3.h"
    int print_result_cb(void* data, int n_columns,
    char** column_values,
    char** column_names);
    void print_row(int n_values, char** values);
    int main()
    {
    sqlite3 * pdb;
    int ret;
    char *errmsg;
    char selstr[100];
    if((ret = sqlite3_open("test.db", &pdb))!=SQLITE_OK)
    {
    printf("Error while open database \n");
    sqlite3_close(pdb);
    return -1;
    }
    //char selstr[100] ="select * from film;";

    strcpy(selstr,"select * from film;");
    if((ret = sqlite3_exec(pdb,selstr,print_result_cb,0,&errmsg))!=SQLITE_OK)
    {
    printf("%s\n",errmsg);
    sqlite3_free(errmsg);
    }
    sqlite3_close(pdb);
    printf("Hello world!\n");
    return 0;
    }
    int print_result_cb(void* data,
    int n_columns,
    char** column_values,
    char** column_names)
    {
    static int column_names_printed = 0;
    if (!column_names_printed)
    {
    print_row(n_columns, column_names);
    column_names_printed = 1;
    }
    print_row(n_columns, column_values);
    return 0;
    }
    void print_row(int n_values, char** values)
    {
    int i;
    for (i = 0; i < n_values; ++i)
    {
    if (i > 0)
    {
    printf("\t");
    }
    printf("%s", values[i]);

    }
    printf("\n");
    }


    完成,这只是遍历查询。保证了配置的正确性。

  • 相关阅读:
    汉诺塔
    美丽联合2018前端
    游览器
    python多线程实现
    cuda toolkit
    编译器,解释器及混合编译
    大疆无人机
    SaaS PaaS IaaS mes
    CNN中权值共享的理解
    最近动作项目心得
  • 原文地址:https://www.cnblogs.com/westfly/p/SQLite3_Basic.html
Copyright © 2011-2022 走看看