用mysql++读写二进制
方法1:
// mysqlTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <mysql++.h>
#include <ssqls.h>
#include <sstream> sql_create_2(test,
, ,
mysqlpp::sql_int, id,
mysqlpp::sql_blob_null, value) struct SCurScoutList
{
struct SScoutInList
{
SScoutInList():
m_nScoutID(),
m_bSigned()
{} int m_nScoutID;
byte m_bSigned;
}; SCurScoutList()
{} SScoutInList m_scoutList[];
}; int main()
{
SCurScoutList mylist;
SCurScoutList mylist1; mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_bSigned = ; try
{
mysqlpp::Connection conn(true);
const std::string db="game"; if (!conn.connect(db.c_str(), "127.0.0.1", "xt", ""))
{
return ;
} mysqlpp::Query query = conn.query();
query << "select * from test where id = 1";
query.parse();
mysqlpp::StoreQueryResult res = query.store();
test myblob1 = res[];
memcpy(&mylist1, myblob1.value.data, myblob1.value.data.length()); test myblob2 = myblob1;
myblob2.value.data.assign((const char*)&mylist, sizeof(mylist));
query.update(myblob1, myblob2);
query.execute();
}
catch(const mysqlpp::Exception& er)
{
std::cout << er.what() << std::endl;
} getchar();
return ;
}
方法2:
这个方法在debug下会有断言
#include "stdafx.h"
#include <mysql++.h>
#include <ssqls.h>
#include <sstream> sql_create_2(test,
, ,
mysqlpp::sql_int, id,
mysqlpp::sql_blob_null, value) struct SCurScoutList
{
struct SScoutInList
{
SScoutInList():
m_nScoutID(),
m_bSigned()
{} int m_nScoutID;
byte m_bSigned;
}; SCurScoutList()
{} SScoutInList m_scoutList[];
}; int main()
{
SCurScoutList mylist;
SCurScoutList mylist1; mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_nScoutID = ;
mylist.m_scoutList[].m_bSigned = ; std::string strData;
strData.assign(reinterpret_cast<const char*>(&mylist), sizeof(mylist)); char szbuffer[] = {};
memcpy(szbuffer, (const char*)&mylist, sizeof(mylist)); try
{
mysqlpp::Connection conn(true);
const std::string db="game"; if (!conn.connect(db.c_str(), "127.0.0.1", "xt", ""))
{
return ;
} mysqlpp::Query query = conn.query();
query << "update test set value = \"" << mysqlpp::escape << strData << "\" where id = " << ;
query.parse();
query.execute(); query.reset();
query << "Select id, value from test where id=1";
query.parse();
mysqlpp::StoreQueryResult res = query.store();
int nRowNum = res.num_rows();
mysqlpp::sql_blob_null blobScoutList = res[]["value"];
int nBlobLen = blobScoutList.data.length();
int nsizeof = sizeof(SCurScoutList);
if(nBlobLen == sizeof(SCurScoutList))
{
memcpy(&mylist1, blobScoutList.data.data(), nBlobLen);
}
}
catch(const mysqlpp::Exception& er)
{
std::cout << er.what() << std::endl;
} getchar();
return ;
}
用mysql++读写二进制的更多相关文章
- amoeba实现MySQL读写分离
amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...
- MySQL读写分离技术
1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...
- mysql读写分离 主从同步
MySQL主从复制与读写分离的实现 转载 2013年01月17日 18:20:12 MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy) ...
- Mysql读写分离-Amoeba Proxy
参考:http://www.linuxidc.com/Linux/2015-10/124115.htm 一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database pr ...
- 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
[Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...
- MySQL读写分离-架构
MySQL读写分离-架构 简介 对于很多大型网站(pv值百万.千万)来说,在所处理的业务中,其中有70%的业务是查询(select)相关的业务操作(新闻网站,插入一条新闻.查询操作),剩下的则是写(i ...
- 使用Spring实现MySQL读写分离(转)
使用Spring实现MySQL读写分离 为什么要进行读写分离 大量的JavaWeb应用做的是IO密集型任务, 数据库的压力较大, 需要分流 大量的应用场景, 是读多写少, 数据库读取的压力更大 一个很 ...
- 提高性能,MySQL 读写分离环境搭建
这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...
- 基于MYCAT中间件实现MYSQL读写分离
基于mycat实现mysql读写分离 完成主从复制的配置 /* 主节点:192.168.47.101 从节点:192.168.47.102 */ /*mycat为同一网段客户端*/ /* 修改主节点基 ...
随机推荐
- 2015Web前端攻城之路
2015目标成为一名合格的前端攻城狮. 养成计划: 1.html / css 2.js 3.ajax 4.框架 5.项目实战
- [CareerCup] 18.11 Maximum Subsquare 最大子方形
18.11 Imagine you have a square matrix, where each cell (pixel) is either black or white. Design an ...
- 使用engine关键字指定该表使用哪个engine
建表及插入数据语句:mysql> create table salary(userid int,salary decimal(9,2));Query OK, 0 rows affected (0 ...
- 浅谈scrum站立会议
什么是每日站立会议? 站立会议是让团队成员每日面对面站立互相交流他们所承担任务的进度.它的一个附带好处是让领导或经理能了解到工作情况.但本质上是为了团队交流,不是报告会议! 为什么开展每日 ...
- C#构造Http 破解学校教务系统学生账号密码
背景介绍 我们学校的教务系统的是以学生学号作为登陆账号,初始密码是自己的生日. 一点点想法 每次期末查成绩的时候,我都会有一个想法,要是我能跑到系统后台,把自己的成绩修改一下,那该时间多么舒坦的事情啊 ...
- BOM&Navigator对象
<!-- BOM:Brower Object Model 浏览器对象模型 这个模型方便操作浏览器 浏览器对应的对象就是windows对象,这个可以通过查阅DHTML API获得 --> & ...
- 优秀API设计的十大原则
优秀API设计的十大原则 2015-09-23 分类:编程开发.设计模式.首页精华暂无人评论 分享到:更多4 二十万年薪PHP工程师培养计划 成为被疯抢的Android牛人 风中叶讲Java重难 ...
- centos安装后iptables基本设置
一.首先关闭防火墙#service iptables stop 二.查看状态,确认关闭#service iptables status 三.清除掉防火墙规则#iptables -F#iptables ...
- 【微信开发】 新浪SAE开发平台 注意事项
1. 微信开发 新浪SAE开发平台 验证Token 一直失败? 这个问题困扰了一个又一个的微信学习者,现在百度到的答案有:在echo $echoStr;之前添加header('content-type ...
- 使用TarOutputStream出现 request to write '1024' bytes exceeds size in header错误的解决方法
因为测试流程中,所测客户端会根据服务器A返回的response决定发送给服务器B的请求里各参数的值,所以现在需要模拟服务器的响应.而这个项目服务器A的响应式返回一个流,一个GZIP压缩格式流,压缩的是 ...