用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为同一网段客户端*/ /* 修改主节点基 ...
随机推荐
- Struts2中的Action类(解耦方式,耦合方式)
一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要 ...
- thinkphp添加空数据的解决办法
thinkphp真是个麻烦的东西,各种小问题,其中字段映射的表单名不能与数据库的字段名称相同,否则会添加空数据! 还有自动完成的名称要与字段映射后的名称相同,否则自动完成不会起作用! 还有自动验证的字 ...
- 使用Fiddler的X5S插件查找XSS漏洞
OWASP top 10的安全威胁中的CrossSite Scripting(跨站脚本攻击),允许攻击者通过浏览器往网站注入恶意脚本.这种漏洞经常出现在web应用中需要用户输入的地方,如果网站有XSS ...
- javascript平时小例子⑤(投票效果的练习)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- 理解listagg函数
两道SQL面试题引出listagg函数: 1. 用一条sql求出每个部门(emp表)的最大工资和最小工资,以及最大工资和最小工资的员工姓名. (注:一次表扫描.同一个部门最大工资或最小工资的人可能不止 ...
- 需要注意学习.net过程的要点
基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 ASP.NET MVC (Web Form 用的越来越少,如果你不熟悉,可以不看) JavaScript 基础语法 如何在HT ...
- 安装完MySQL数据库,在服务列表里找不到MySQL的解决办法
安装MySQL数据库完成后,在控制面板的服务列表里找不到MySQL服务启动项解决方案:(参考以下命令)1.打开cmd,切换到mysql的bin目录下 (dos命令切换目录||1.cd\ 返回到根目录, ...
- find a multiple
Description The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each of ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(十) ESB Guidance安装笔记
ESB指导工具包(ESB Guidance)是一个运行于BizTalk Server 2006 R2之上的一个框架.详细信息访问ESB指导工具包社区网站 .源码下载 ESB Guidance的安装过程 ...