方法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. linux recv 返回值与linux socket 错误分析

    转载:http://blog.csdn.net/henry115/article/details/7054603 recv函数 int recv( SOCKET s, char FAR *buf, i ...

  2. Hive_初步见解,安装部署与测试

    一.hive是什么东东 1. 个人理解 hive就是一个基于hdfs运行于MapReduce上的一个java项目, 这个项目封装了jdbc,根据hdfs编写了处理数据库的DDL/DML,自带的 二进制 ...

  3. Jquery超简单遮罩层实现代码

    看了很多代码,下面跟大家分享一下我认为最简单的遮罩层实现方式: 1.样式如下设置: CSS代码: <style type="text/css"> .mask { pos ...

  4. oracle initialization or shutdown in progress问题解决步骤

        今天像往常一样打开电脑,启动plsql工具连接数据库,但是尽然连接不了,报了“oracle initialization or shutdown in progress”的提示信息,从操作系统 ...

  5. JAVA面向对象程序设计——实验报告

  6. profile

    项目开发中,使用git最为版本控制工具,往往会建立开发分支.测试分支和生产分支. 各个分支的数据库url,所依赖的接口url可能不同,直接配置的话,在合并分支时往往出现冲突.使用profile可以有效 ...

  7. 精通JavaScript的this关键字

    小提示 阅读本文,您需要了解JS的基本常识.您将花费40分钟完成本文的阅读. JS中的this关键字让很多新老JS开发人员都感到困惑.这篇文章将对this关键字进行完整地阐述.读完本文以后,您的困惑将 ...

  8. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05   在windows下运行composer却出现SSL报错: E:\www>php -f  ...

  9. SQL简介

    SQL 是用于访问和处理数据库的标准的计算机语言. 什么是 SQL? SQL 指结构化查询语言 SQL 使我们有能力访问数据库 SQL 是一种 ANSI 的标准计算机语言 编者注:ANSI,美国国家标 ...

  10. zepto源码--核心方法4(包装)--学习笔记

    主要介绍一下wrap, wrapAll, wrapInner, unwrap方法. wrapAll 在所有匹配元素外面包一个单独的结构.结构可以是单个元素或 几个嵌套的元素,并且可以是html字符串或 ...