SQLite3基本操作入门
2015-12-18 15:47
399 查看
1.创建Win32控制台应用程序空项目,我命名为SQLite3,将sqlite3.c和sqlite3.h引入到工程中
2.创建一个main.cpp文件
main.cpp文件内容:
根据sqlite3提供的接口函数操作数据库文件,使用SQLite Expert Professional 3创建的文件刚开始不是db格式的,自己加上db后缀就可以了。
2.创建一个main.cpp文件
main.cpp文件内容:
#include <iostream> #include "sqlite3.h" using namespace std; ////等义回调函数 //typedef int(* sqlite3_callback)(void *, int, char **, char **); // // //int LoadMyInfo( void * para, int n_column, char ** column_value, char ** column_name ) //{ // //} void main() { printf("123"); int a = 1; sqlite3 *db; char *dbPath="C:/Users/ZC-BC010/Documents/dgd.db"; // char *szErrMsg = NULL; int rc = sqlite3_open(dbPath, &db); if (rc != SQLITE_OK) { printf("失败"); return ; } rc = sqlite3_exec(db,"select * from main", 0, 0, NULL); if(rc != SQLITE_OK ) { printf("失败"); return ; } rc = sqlite3_exec(db,"update main set baseinfo = 111222 where id = 1", 0, 0, NULL); if(rc != SQLITE_OK ) { printf("失败"); return ; } //执行玩语句后会将dgd.db文件中的数据改变 // //sqlite3_close(); //这就是执行一条 sql 语句的函数。 //原型 int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callback, void *, char **errmsg ); //第4个参数void * 是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里面 //sqlite3_exec(db,“select * from MyTable_1”, LoadMyInfo, 0, errmsg); //sqlite3_get_table(); ////写入2进制 //sqlite3_stmt *star; //把sql语句解析到star结构里去 //1. sqlite3_prepare(db, "insert into Tbl_2( ID, file_content) values( 10, ? )", -1, &star, 0); //在sqlite3_prepare函数里,?号表示一个未定的值,它的值等下才插入。 //开始插入二进制数据到star中, 这里的pdata就是?代表的值 //2. sqlite3_bind_blob(stat, 1, pdata, (int)(length_of_data_in_bytes), NULL );//pdata为数据缓冲区,length_of_data_in_bytes为数据大小,以字节为单位 //sqlite3_bind_XXX 所包含的全部接口,它们是用来给SQL声明中的通配符赋值的 //3. int result = sqlite3_step(star);//二进制数据保存到数据库里面 //把 sqlite3_stmt 结构给释放 //4. sqlite3_finalize(star); //把刚才分配的内容析构掉 ////读出2进制 //1. 解析到star结构里去 //sqlite3_prepare(db, "select * from Tbl_2", -1, &star, 0); //一次sqlite3_step只查询出一条记录,可以循环查询,直到不为 SQLITE_ROW 时表示查询结束 //int result = sqlite3_step(star);//在这里result值为SQLITE_ROW 时表示成功(不是 SQLITE_OK ) //获取第N个字段的值,0为第一个,获取第一个字段:ID的值 //int id = sqlite3_colomn_int(star, 0) //获取 file_content 的值 因为 file_content 是二进制,因此我需要得到它的指针,还有它的长度 //const void *pFileContent = sqlite3_column_blob(star, 1); //int len = sqlite3_column_byte3(star, 1); //释放sqlite3_stmt结构 //sqlite3_finalize(star) //result = sqlite3_reset(star) //返回的记录集通过使用其它的几个 sqlite3_column_***() 函数来提取, 所有的这些函数都把列的编号作为第二个参数. 列编号从左到右以零起始. //void sqlite3_value_xxxx //void sqlite3_result_xxxxx } |
相关文章推荐
- C#利用mysql验证登录
- 数据库insert、update时加入时间戳
- Microsoft SQL Server, Error: 823 一次真实的经历
- oracle行转列函数以及一些窗口函数(PIVOT ,OVER)
- Ubuntu 12.04.1 mysql从5.5升级到5.6
- T-SQL 运行时生成语句
- redis在PHP中的基本使用案例
- Mysql分库分表方案
- 无法启动mysql服务错误 1067: 进程意外终止的解决方法大全
- perl DBI mysql包安装详解
- 安装redis
- SQL语句order by两个字段同时排序问题
- SQL Server存储过程Return、output参数及使用技巧
- windows 7 下安装mysql压缩包版
- postgresql 性能问题诊断总结
- PowerDesigner的安装和数据库创建(转载)
- postgresql 临时表空间及注意事项
- 【重磅干货】看了此文,Oracle SQL优化文章不必再看!
- 运维角度浅谈MySQL数据库优化
- SQL Server 游标的简单使用