您的位置:首页 > 数据库

SQLite3基本操作入门

2015-12-18 15:47 399 查看
1.创建Win32控制台应用程序空项目,我命名为SQLite3,将sqlite3.c和sqlite3.h引入到工程中



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

}

根据sqlite3提供的接口函数操作数据库文件,使用SQLite Expert Professional 3创建的文件刚开始不是db格式的,自己加上db后缀就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: