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 ...
随机推荐
- 什么是redis?Reids的特点是什么?Redis支持的数据类型有哪些?
首先,分布式缓存框架 可以 看成是nosql的一种 (1)什么是redis? redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) (2)Reids的 ...
- spring配置文件中导入约束的详细步骤
这里先以<beans>元素为例: 首先在eclipse中引入相关约束: 点击OK后,这个约束就被引入到eclipse中了,这一步的意义在于:就算你处于脱机情况下(不能联网),也能给你提示. ...
- 洛谷 P3182 [HAOI2016]放棋子(错排问题)
题面 luogu 题解 裸的错排问题 错排问题 百度百科:\(n\)个有序的元素应有\(n!\)个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排:有的叫重排.如,1 2的错 ...
- PIE SDK专题制图保存模板
1. 功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦, ...
- 字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别CNN
本项目使用卷积神经网络识别字符型图片验证码,其基于 TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址: ht ...
- (转)10 分钟内快速构建能够承载海量数据的 nginx 日志分析与报警平台
10 分钟内快速构建能够承载海量数据的 nginx 日志分析与报警平台 原文:https://blog.qiniu.com/archives/8713
- 018-面向接口编程的BeanFactory模板代码
1 BeanFactory工具类 package www.test.utils; import org.dom4j.Document; import org.dom4j.Element; import ...
- nyoj 269——VF——————【dp】
VF 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Vasya is the beginning mathematician. He decided to make ...
- js字符操作
js字符串方法预览: fromCharCode(num1, num2,,,), charAt(), charCodeAt(), length, split(''), slice(start, end? ...
- 01.c#中的访问修饰符
public 公开的 private 私有的,只能在当前类的内部访问 protected 受保护的,只能在当前内的内部以及该类的子类可以访问. internal 可以在同一个程序(项目)集中 ...