用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为同一网段客户端*/ /* 修改主节点基 ...
随机推荐
- android-Activity(四大组件之一)
一.Activity理解 1.定义: 直译为活动,是Android定义四大应用组件之一,也是最重要的用的最多的: 用来提供一个能让用户操作并与之交互的界面 一个应用有多个界面也就是包含多个Activi ...
- [转载]CRect::DeflateRect
1基本内容 void DeflateRect(int x,int y); void DeflateRect(SIZE size); void DeflateRect(LPCRECT lpRect); ...
- 利用call与apply向函数传递参数
Js中函数对象都有call与apply两个方法属性,二者使用方法和功能一样,只是传递参数的格式不同,call逐个传递单个参数,apply一次性传递一个参数数组. 这两个方法可以改变函数的调用对象,并且 ...
- winform连接ACCESS数据库
1.先建立一个名叫text.mdb的access数据库 2.他它复制到access中文件下. 3.在App_Code文件夹下建好封装语句,查询方法,连接语句,其中studentDA中的代码为: pri ...
- 使用 mock.js 让前端开发与后端独立
直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- php完全销毁session
<?php session_start(); session_unset(); session_destroy(); ?> session_unset()释放当前在内存中已经创建的所有$_ ...
- java常用工具类
http://www.cnblogs.com/langtianya/p/3875124.html
- 示例-创建表格&使用表格对象
@charset "utf-8";/* CSS Document */table{ border:#249bdb 1px solid; width:500px; border-co ...
- 【iCore3 双核心板】例程八:定时器PWM实验——呼吸灯
实验指导书及代码包下载: http://pan.baidu.com/s/1dEnH5dB iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- copy module
需求,当有一个实例a,我们需要一个新的实例b,b同a拥有相同的属性. 当我们使用a=b的模式的时候是一个赋值的过程.a和b指向同一个实例.b的任何操作都同a一样. 在这个使用需要使用copy模块.根据 ...