zoukankan      html  css  js  c++  java
  • SQLite入门操作(一)

    //++其他的头文件

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

    int GetItemCount(sqlite3 *db,LPCTSTR str)//select count(*) from x ;
    {
        sqlite3_stmt *pstmt=NULL;
        sqlite3_prepare16_v2(db,str,-1,&pstmt,NULL);
        sqlite3_step(pstmt);
        int nCount = sqlite3_column_int(pstmt,0);
        sqlite3_finalize(pstmt);

        return nCount;
    }

    int main()
    {

        wcout.imbue(std::locale("chs"));
    #define _SIZEBUF 2000*1024
    #define _QUERYITEMS L"select count(*) from stt"


        sqlite3 *db = NULL;
        TCHAR *errMsg = NULL;
        sqlite3_stmt *pstmt=NULL;
        TCHAR *psql = NULL;

    int nRet = -1,nRows=-1;
    nRet = sqlite3_open16(L"F:\my.db",&db);
    if (nRet)
    {
        wcout<<L"无法打开sqlite数据库:"<<sqlite3_errmsg16(db)<<endl;
        sqlite3_close(db);
        cin.get();

        return 1;
    }
    else
    {
        wcout<<L"成功打开my.db"<<endl;

    }

    sqlite3_exec(db,"create table if not exists stt(id nchar(20) primary key,name nchar(20));insert into stt values('1','zhang');insert into stt values('2','li');",NULL,NULL,NULL);

    cout<<"表里面的项目数为:"<<GetItemCount(db,_QUERYITEMS)<<endl;

    //删除or插入

    //psql=L"delete from stt where id='4';";
    //sqlite3_prepare16_v2(db,psql,-1,&pstmt,NULL);
    //sqlite3_step(pstmt);
    //sqlite3_finalize(pstmt);
    //cout<<"表里面的项目数为:"<<GetItemCount(db,_QUERYITEMS)<<endl;


    //psql=L"insert or replace into stt where id='4';";
    //sqlite3_prepare16_v2(db,psql,-1,&pstmt,NULL);
    //sqlite3_step(pstmt);
    //sqlite3_finalize(pstmt);
    //cout<<"表里面的项目数为:"<<GetItemCount(db,_QUERYITEMS)<<endl;

    //更新

    psql = L"update st set name='zhang123' where id=3";
    sqlite3_prepare16(db,psql,_tcslen(psql)*sizeof(TCHAR),&pstmt,NULL);
    nRet = sqlite3_step(pstmt);
    switch (nRet)
    {
    case SQLITE_DONE:
        cout<<"SQLITE_DONE"<<endl;break;//注意,未找到或者已经遍历到结果集末尾的话,返回SQLITE_DONE
    case SQLITE_ROW:
        cout<<"SQLITE_ROW"<<endl;break;//若找到(甚至一个),则返回sqlite_row
    case SQLITE_ERROR:
        cout<<"SQLITE_ERROR"<<endl;break;
    default:
        cout<<"Unknown"<<endl;break;
    }
    //sqlite3_finalize(pstmt);
    int nAffected = sqlite3_changes(db);
    cout<<"受影响的行数为:"<<nAffected<<endl;
    sqlite3_reset(pstmt);

    sqlite3_close(db);
    cin.get();
    return 1;


    }

  • 相关阅读:
    apache开启.htaccess及.htaccess的使用方法
    如何解决PHP startup: Unable to load dynamic library './php_mysql.dll 找不到指定的模块
    html判断IE版本
    php.ini 配置详解
    检测apache是否支持htaccess文件
    MySql my.ini 中文详细说明
    "安装SQL2005时出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机
    iOS开发笔记-两种单例模式的写法
    SQL 2005此计算机上已经安装了同名实例
    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
  • 原文地址:https://www.cnblogs.com/qinfengxiaoyue/p/3669340.html
Copyright © 2011-2022 走看看