Sqlite源代码使用VS进行linux编译使用

Sqlite Vs下linux编译

  1. 下载源码,不要编译shell.c,否则会与自己写的main函数冲突
  2. main函数中使用如下测试代码,测试sqllite简单使用
  3. 使用VS连接Linux系统(虚拟机或使用可用服务器),不用自己写makefile了
  4. 链接器增增加如下动态库,否则无法编译成功在这里插入图片描述
    #include"sqlit/sqlite3.h"
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>

int MyCallback(void *para, int nColumn, char ** colValue, char ** colName);//回调函数

int main(int argc, char argv[])
{
sqlite3
db = NULL;
int result = sqlite3_open(“test.db”, &db);

if (result != SQLITE_OK)
{
	printf("open database text.db failed \n");
	return 1;
}
else
{
	printf("open database text.db success \n");
}
开始执行sqlite
const char *sql = "create table Student(t_id integer primary key autoincrement, t_name varchar(15), t_age integer)";
char *errMsg = NULL;
result = sqlite3_exec(db,
	sql,
	NULL,
	NULL,
	&errMsg);
if (result != SQLITE_OK)
{
	printf("create table Student failed\n");
	printf("error conde %d \t error message:%s", result, errMsg);
}
//插入数据
errMsg = NULL;
sql = "insert into Student(t_name, t_age) values ('dwb', 23)";
result = sqlite3_exec(db,
	sql,
	NULL,
	NULL,
	&errMsg);
printf("insert message1:%s \n", errMsg);

errMsg = NULL;
sql = "insert into Student(t_name, t_age) values ('dhx', 25)";
result = sqlite3_exec(db,
	sql,
	NULL,
	NULL,
	&errMsg);
printf("insert message2:%s \n", errMsg);

errMsg = NULL;
sql = "insert into Student(t_name, t_age) values ('dwz', 21)";
result = sqlite3_exec(db,
	sql,
	NULL,
	NULL,
	&errMsg);
printf("insert message3:%s \n", errMsg);


errMsg = NULL;
sql = "select * from Student;";
result = sqlite3_exec(db, sql, MyCallback, NULL, &errMsg);
printf("select message:%s \n", errMsg);

//执行不用回调函数的sql语句,先要设置函数所需的参数
printf("\nUSEING sqlite3_get_table()----------------------------\n");
sql = "select * from Student;";

int nCols;
int nRows;
char **azResult;
errMsg = NULL;
int index = 0;

result = sqlite3_get_table(db, sql, &azResult, &nRows, &nCols, &errMsg);
printf("result = %d \t errMsg = %s \n", result, errMsg);
printf("rows:%d \t cols: %d \n", nRows, nCols);
index = nCols;

printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
for (int i = 0; i < nRows; i++)
{
	for (int j = 0; j < nCols; j++)
	{
		printf("%s::%s", azResult[j], azResult[index]);
		index++;
		printf("\n");
	}
}
printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");

sqlite3_free_table(azResult);
sqlite3_close(db);
return 0;

}

int MyCallback(void *para, int nColumn, char ** colValue, char ** colName)
{
printf("----------------------------------------------------\n");
printf(“包含的列数:%d\n”, nColumn);
for (int i = 0; i < nColumn; i++)
{
printf("%s :%s\n", *(colName + i), colValue[i]);//指针和数组的两种写法
}
printf("----------------------------------------------------\n");
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux使用C语言封装SQLite可以通过SQLite提供的C API来实现。SQLite是一个轻量级、嵌入式的数据库引擎,适用于移动设备和单用户应用程序。下面是使用C语言封装SQLite的基本步骤: 1. 安装SQLite库:在Linux上安装SQLite库可以通过包管理器(如apt、yum)进行安装,或者从SQLite官方网站下载源代码进行编译安装。 2. 包含SQLite头文件:在C语言代码中包含SQLite的头文件,例如:`#include <sqlite3.h>` 3. 打开数据库连接:使用`sqlite3_open()`函数打开与数据库的连接,并获取一个`sqlite3`结构体的指针。示例代码如下: ```c sqlite3 *db; int rc = sqlite3_open("database.db", &db); if (rc != SQLITE_OK) { // 处理连接失败的情况 } ``` 4. 执行SQL语句:可以使用`sqlite3_exec()`函数执行SQL语句,该函数可以处理任意类型的SQL语句,包括查询、插入、更新和删除等。示例代码如下: ```c const char* sql = "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT, age INT)"; rc = sqlite3_exec(db, sql, 0, 0, 0); if (rc != SQLITE_OK) { // 处理SQL语句执行失败的情况 } ``` 5. 处理查询结果:可以使用`sqlite3_exec()`函数的第三个参数来指定一个回调函数,在查询时调用该函数处理查询结果。示例代码如下: ```c int callback(void* data, int argc, char** argv, char** column_names) { for (int i = 0; i < argc; ++i) { printf("%s = %s\n", column_names[i], argv[i] ? argv[i] : "NULL"); } printf("\n"); return 0; } const char* sql = "SELECT * FROM students"; rc = sqlite3_exec(db, sql, callback, 0, 0); if (rc != SQLITE_OK) { // 处理SQL语句执行失败的情况 } ``` 6. 关闭数据库连接:使用`sqlite3_close()`函数关闭与数据库的连接。示例代码如下: ```c sqlite3_close(db); ``` 通过上述步骤,可以在Linux使用C语言封装SQLite,实现对数据库的增删改查等操作。当然,这只是SQLite的基本使用方法,还有更多高级的特性和操作可以进一步探索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值