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;
}
SQLite入门操作(一)的更多相关文章
- SQLite入门与分析(二)---设计与概念(续)
SQLite入门与分析(二)---设计与概念(续) 写在前面:本节讨论事务,事务是DBMS最核心的技术之一.在计算机科学史上,有三位科学家因在数据库领域的成就而获ACM图灵奖,而其中之一Jim G ...
- SQLite入门语句之HAVING和DISTINCT
一.SQLite入门语句之HAVING HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果. WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建 ...
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- [python]用Python进行SQLite数据库操作
用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~ ]: u ...
- [Xamarin] 關於SQLite 的操作 (转帖)
我們聊一下常用的東西,SQLite,這東西很常用到,當再寫手機APP的時候,有時候會在Client 做 cache或是做一些資料的管理都很必須會用到,我們來看看今天的範例 建立SQL Lite 資料庫 ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
随机推荐
- C++_IO与文件4-简单文件的输入与输出
通过键盘输入和屏幕输出被称为是控制台输入/输出: 更广义上讲控制台的输入/输出也是一种特殊的文件输入/输出: 当使用cin进行输入时,程序将输入视为一系列的字节,其中的每个字节都被解释成字符编码: 不 ...
- 大佬的编码建议,让你的代码更pythonic
大佬的编码建议,让你的代码更pythonic Raymond Hettinger是 Python 核心开发者,本文提到的许多特性都是他开发的. 若无例外,本文代码中出现的 colors names d ...
- Django - Xadmin 组件(一)
Django - Xadmin 组件(一) Web 应用中离不开的就是后台管理, Django 自带的 admin 组件提供了一部分内容,但往往现实项目中会有更多的需求,所以自定义自己的后台管理就十分 ...
- angular model-dialog 关闭按钮
<button class="close" data-dismiss="modal" type="button" aria-label ...
- vue修改组件样式
.el-date-editor /deep/ input{ padding-left:30px; } 改变引入的组件里面元素的样式: 1.去掉css内的scoped,但是这样会污染全局 2.加上/de ...
- 【Python】小括号过滤后的盲注
0x00 环境搭建 sqli-labs第八关,简单修改下源代码,加入下面一行代码 $id=preg_replace('/\(|\)/', "",$id); //过滤小括号 0x ...
- VUE项目引入微信jssdk
npm i -S weixin-js-sdkimport wx from 'weixin-js-sdk'
- 第十七章:使用media插件来播放声音
前面已经讲过如何基于push notification自定义sound,但是还是存在几个问题: IOS app在前台运行的时候,如何播放sound?因为这个时候push notification是不起 ...
- 线程同步(windows平台):信号量
一:介绍 信号量也是系统核心对象,它允许多个线程同一时刻访问同一资源,但需限制同一时刻访问资源的最大线程数目. 信号量遵循规则:1.当前资源计数大于0,信号量有效.2.当前资源计数等于0,信号量无效. ...
- Android开发:使用Fragment改造TabActivity
TabActivity在API 13(Android 3.2)被标记为过期,需要使用Fragment来实现,Fragment是Android 3.0引入的一个概念,主要就是为了适应各种不同的屏幕大小( ...