C++ 插入图像数据到sqlite3中的方法(blob字段)

本文介绍了一种使用SQLite数据库动态插入包含图像数据的多列记录的方法。具体步骤包括准备SQL语句、读取图像文件、绑定图像数据并执行SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

插入数据之前的操作就不说了,这里介绍下插入多列数据的方法,并且数据都是动态的

第一步:创建一个char数组来存放插入数据库的sql语句:char* szSQL = new char[256];

第二步:格式化sql语句,这里主要是为了在数据是动态的情况下也好用才做格式化sql语句操作:sprintfsprintf(szSQL, "insert into ExceptionDataTable values(%d,%d,'%s',?,%d),参数1,参数2,参数3,参数4);

其中的"?"是占位符,用来存放二进制的图像数据

第三步:sqlite3_prepare(m_db,szSQL,-1,&stmt,NULL);

第四步:读取图像数据:

FILE* fpRead = NULL;
	long fileSize;		//图片文件大小
	char *szImageData;
	fpRead = fopen(strImagePath,"rb");

	if(fpRead!=NULL)
	{
		//计算文件大小
		fseek(fpRead,0,SEEK_END);
		fileSize = ftell(fpRead);
		fseek(fpRead,0,SEEK_SET);
	}

	//读取文件内容
	szImageData = new char[fileSize+1];
	size_t sz = fread(szImageData,sizeof(char),fileSize+1,fpRead);
	fclose(fpRead);
第五步:sqlite3_bind_blob(stmt,1,szImageData,fileSize,NULL);//这里的第二个参数代表的是第几个?,而不是占位符所在参数的位数

第六步:sqlite3_step(stmt);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值