方法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++读写二进制的更多相关文章

  1. amoeba实现MySQL读写分离

    amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为19 ...

  2. MySQL读写分离技术

    1.简介 当今MySQL使用相当广泛,随着用户的增多以及数据量的增大,高并发随之而来.然而我们有很多办法可以缓解数据库的压力.分布式数据库.负载均衡.读写分离.增加缓存服务器等等.这里我们将采用读写分 ...

  3. mysql读写分离 主从同步

    MySQL主从复制与读写分离的实现 转载 2013年01月17日 18:20:12   MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy) ...

  4. Mysql读写分离-Amoeba Proxy

    参考:http://www.linuxidc.com/Linux/2015-10/124115.htm 一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database pr ...

  5. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  6. MySQL读写分离-架构

    MySQL读写分离-架构 简介 对于很多大型网站(pv值百万.千万)来说,在所处理的业务中,其中有70%的业务是查询(select)相关的业务操作(新闻网站,插入一条新闻.查询操作),剩下的则是写(i ...

  7. 使用Spring实现MySQL读写分离(转)

    使用Spring实现MySQL读写分离 为什么要进行读写分离 大量的JavaWeb应用做的是IO密集型任务, 数据库的压力较大, 需要分流 大量的应用场景, 是读多写少, 数据库读取的压力更大 一个很 ...

  8. 提高性能,MySQL 读写分离环境搭建

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  9. 基于MYCAT中间件实现MYSQL读写分离

    基于mycat实现mysql读写分离 完成主从复制的配置 /* 主节点:192.168.47.101 从节点:192.168.47.102 */ /*mycat为同一网段客户端*/ /* 修改主节点基 ...

随机推荐

  1. 李洪强iOS经典面试题下

    李洪强iOS经典面试题下 21. 下面的代码输出什么? @implementation Son : Father - (id)init { self = [super init]; if (self) ...

  2. HTML 表单和验证事件

    1.表单验证<form></form> (1)非空验证(去空格) (2)对比验证(跟一个值对比) (3)范围验证(根据一个范围进行判断) (4)固定格式验证:电话号码,身份证号 ...

  3. jquery的validate.js 和 form.js 的使用方法

    在使用 Jquery 的方法的验证并且修改 原Form 表单的提交方式的时候,需要引用的文件有 <script type="text/javascript" src=&quo ...

  4. 高德地图 室内地图 API 的一些坑

    开发指南 http://lbs.amap.com/api/javascript-api/guide/create-map/indoormap/ demo 大全: http://lbs.amap.com ...

  5. 关于WPF中ItemsControl系列控件中Item不能继承父级的DataContext的解决办法

    WPF中所有的集合类控件,子项都不能继承父级的DataContext,需要手动将绑定的数据源指向到父级控件才可以. <DataGridTemplateColumn Header="操作 ...

  6. HashMap实现原理分析

    1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1 ...

  7. loadrunner11.0 安装破解详解使用教程

    loadrunner11.0 安装破解详解使用教程 来源:互联网 作者:佚名 时间:01-21 10:25:34 [大 中 小] 很多朋友下载了loadrunner11但不是很会使用,这里简单介绍下安 ...

  8. JS-确认框

    if(confirm("Sure to xxxxxx?")){ xxxxxx; xxxxxx; }

  9. 浏览器中Javascript的加载和执行

    在刚学习Javascript时曾对该问题在小组内做个一次StudyReport,发现其中的基础还是值得分析的. 从标题分析,可以加个Javascript的加载和执行分为两个阶段:加载.执行.而加载即浏 ...

  10. css3渐变之linear-gradient与-webkit-linear-gradient写法异同

    语法background: linear-gradient(direction, color-stop1, color-stop2, ...); 通常只需要linear-gradient,兼容性较好. ...