看流星社区

 找回密码
 注册账号
查看: 3343|回复: 0

sqlite3数据库操作小记

[复制链接]

该用户从未签到

发表于 2014-7-31 08:56:32 | 显示全部楼层 |阅读模式
#include "sqlite3.h"
#include <windows.h>

#pragma comment(lib,"sqlite3.lib")

int _tmain(int argc, _TCHAR* argv[])
{
        char *zErrMsg = 0;
        int nRet;
        sqlite3 *db=NULL;
        nRet = sqlite3_open( "E:\\Login Data", &db );
        if ( 0 != nRet )
        {
                printf("Open db error %s\n", sqlite3_errmsg(db));
                sqlite3_close( db );   

        }
        else   
        {   
                printf( "open db success\n" );   
        }

        //insert data
        char strSql[MAX_PATH];
        strcpy(strSql,"insert into logins (origin_url,username_value,password_element,signon_realm,ssl_valid,preferred,date_created,blacklisted_by_user,scheme) values ('bb','admin','123','fuck',0,0,0,0,0)");
        nRet = sqlite3_exec( db , strSql , 0 , 0 , &zErrMsg );
        if ( 0 != nRet )   
        {   
                printf("Insert Error:%s", zErrMsg);
        }
        else   
        {   
                printf("Insert OK\n");
        }

        //query data
        int nRow = 0, nColumn = 0;
        int index,nResult;

        char **azResult; //二维数组存放結果
       
        strcpy(strSql,"SELECT origin_url, action_url, username_element, username_value, password_element, password_value, signon_realm, date_created from logins");
        nResult = sqlite3_get_table( db , strSql , &azResult , &nRow , &nColumn , &zErrMsg );
       
        printf( "row:%d column=%d \n" , nRow , nColumn );
        printf( "\nThe result of querying is : \n" );

        int i,j;
        if( SQLITE_OK == nResult)
        {
                //查询成功
                index = nColumn; //前面说过 dbResult 前面第一行数据是字段名称,从 nColumn 索引开始才是真正的数据

                printf("查到%d条记录\n", nRow );

                for(i = 0; i < nRow ; i++ )
                {
                        printf("第 %d 条记录\n", i+1 );
                        for( j = 0 ; j < nColumn; j++ )
                        {
                                printf("字段名:%s  > 字段值:%s\n",azResult[j],azResult[index]);
                                index++; // dbResult 的字段值是连续的,从第0索引到第 nColumn - 1索引都是字段名称,从第 nColumn 索引开始,后面都是字段值,它把一个二维的表(传统的行列表示法)用一个扁平的形式来表示
                        }
                        printf("-------\n");
                }
        }

        //delete data
        strcpy(strSql,"DELETE FROM logins WHERE username_value='admin'");
        nRet = sqlite3_exec( db , strSql , 0 , 0 , &zErrMsg );
        if ( 0 != nRet )   
        {   
                printf("Delete Error:%s", zErrMsg);
        }
        else
        {
                printf("Delete OK\n");
        }

        //释放azResult 的內存空間
        sqlite3_free_table( azResult );
        //关闭数据库
        sqlite3_close( db );
       
        getchar();
        return 0;
}
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-1 04:34

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表