当前位置: 首页 > news >正文

比较多人用什么网站做推广/seo页面链接优化

比较多人用什么网站做推广,seo页面链接优化,网页美工设计与制作,做知乎网站要多少钱前言: 使用C调用SQLite数据库进行数据读取,调用sqlite3_prepare_v2进行语句合法检查后,使用sqlite3_column_count获取列数,然后调用sqlite3_step进行多次读取,使用sqlite3_column_text获取具体数据。 具体问题: sqlite3_column_te…

前言:

使用C++调用SQLite数据库进行数据读取,调用sqlite3_prepare_v2进行语句合法检查后,使用sqlite3_column_count获取列数,然后调用sqlite3_step进行多次读取,使用sqlite3_column_text获取具体数据。

具体问题:

sqlite3_column_text的返回值为 const unsigned char*,于是我用const unsigned char*存,具体代码如下:

//如果返回SQLITE_ROW则,进行多次执行
for (result = sqlite3_step(m_stmt); result == SQLITE_ROW; result = sqlite3_step(m_stmt)) {//获取数据//将每条数据插入vectorfor (int i = 0; i < count_col; i++) {m_tmp.push_back(sqlite3_column_text(m_stmt, i));}m_data_array.push_back(m_tmp);m_tmp.clear();counts++;
}

数据类型

		sqlite3* m_db;std::string m_db_path;sqlite3_stmt* m_stmt;std::vector<std::vector<const unsigned char *> > m_data_array;std::vector<const unsigned char *> m_tmp;

查出来的几个字段值先存到m_tmp中,然后在放入m_data_array.
但是我发现,只有在循环内直接访问,才能看到结果,除了这个循环就为乱码。

注意: 我是将SQLite的API又封装了下,这是其中的执行语句模块,上面声明的数据类型,是类中的成员变量。最后通过get_result()获取结果集,然后在其他地方查看数据,于是发现乱码。

get_result()函数声明

std::vector<std::vector<const unsigned char *> > get_result();	//获取结果集

开始我以为是编码问题,于是我搜索,SQLite是UTF-8,C++是ASICC编码,但是出现乱码问题的都是读取中文字符,但是我是数字和字母。不符合该问题。

然后我抱着试一试的心态,将sqlite3_column_text 的返回值(const unsigned char*)强转成char*,然后用string类型的vector来存,并且读取,就成功了。

修改后部分代码如下:

	std::vector<std::vector<std::string> > m_data_array;std::vector<std::string> m_tmp;

执行SQL语句模块:

int flight_query::my_sqlite::exec_query(std::string sql) {//语句检查——合法if (sqlite3_prepare_v2(m_db,sql.c_str(),sql.length(),&m_stmt,NULL) == SQLITE_OK) {int result = 0;int counts = 0;int count_col = sqlite3_column_count(m_stmt);//获取列数//如果返回SQLITE_ROW则,进行多次执行for (result = sqlite3_step(m_stmt); result == SQLITE_ROW; result = sqlite3_step(m_stmt)) {//获取数据std::string tmm;//将每条数据插入vectorfor (int i = 0; i < count_col; i++) {m_tmp.push_back((char*)sqlite3_column_text(m_stmt, i));}m_data_array.push_back(m_tmp);m_tmp.clear();counts++;}if (result == SQLITE_DONE) {sqlite3_finalize(m_stmt);//清理语句句柄,准备下一个语句return FLIGHT_SUCCESS;}else{sqlite3_finalize(m_stmt);//清理语句句柄,准备下一个语句return SQL_EXEC_FAILED;}} else {//不合法fprintf(stderr,"sql exec failed.error code is %d,error reason is %s\n",sqlite3_errcode(m_db),sqlite3_errmsg(m_db));sqlite3_finalize(m_stmt);//清理语句句柄,准备下一个语句return SQL_WORDS_ERROR;}}

补充:

除此之外还有个问题,就是本来我是想直接用那个嵌套的vector直接push_back,但是发生段错误。但是我并没有看出哪错了,还请看出来的小伙伴给我留言,谢谢!

m_data_array[counts].push_back((char*)sqlite3_column_text(m_stmt, i));

相关参考:

unsigned char与char 转换

http://www.jmfq.cn/news/5146939.html

相关文章:

  • python django做网页/淘宝优化关键词的步骤
  • 网站建设java前后台好处/十大营销手段
  • 单位网站建设运维情况/网络营销优秀案例
  • 知名设计网站公司/百度竞价排名算法
  • 网站搭建策略与方法有哪些方面/如何自己做一个网址
  • 长沙专业网站建设服务/百度指数数据分析
  • 上海人才引进官网/免费seo推广计划
  • 家具网站建设规划书/宁波网络营销公司有哪些
  • 外贸推广短信群发/seo是指搜索引擎营销
  • 网站建设怎么申请空间/网站投放广告费用
  • wordpress 网站图标设置方法/宁波seo教程
  • 网站不备案做优化/品牌推广运营策划方案
  • 做电影网站配什么公众号/百度企业认证怎么认证
  • 电子商务网站规划与建设步骤/优化关键词排名工具
  • wordpress 图片上传失败/商品标题优化
  • 网站制作湖州/开封seo公司
  • 企业微信客户管理/班级优化大师的优点
  • 大型网站团队人数/百度seo优化是做什么的
  • 做视频网站需要什么空间吗/广州网络营销推广
  • 安徽智能网站建设制作/网络优化公司有哪些
  • 唐山做网站哪家好/网站推广优化排名seo
  • 深圳石岩网站建设/南昌seo计费管理
  • 广元网站建设价格/郑州关键词优化顾问
  • 虹口网站建设/国内设计公司前十名
  • 做电影网站怎么拿到版权/怎么建个人网站
  • 如何快速的建设网站/博客推广工具
  • 十堰市网站建设/b2b关键词排名工具
  • 怎么做自己的微信网站/大兴今日头条新闻
  • 衡阳网站备案/餐饮营销案例100例
  • 武汉app网站开发/东莞市网站seo内容优化