MYSQ数据库插入BLOB字段

MYSQ数据库怎么插入BLOB字段?用C++怎么实现?请各位大神指教。

0

1个回答

取二进制数据:
一样的sql语句,查询出来即可。只不过二进制数据是个数据块,需要得到数据块的大小和数据指针。

bool CMySqlAccess::GetBinaryField(int nCol,char* &pDataOut,int& nDataLen)
{
if (m_ItemMySqlRow[nCol] != NULL)
{
unsigned long FieldLength = mysql_fetch_lengths(m_pMySqlResult);
nDataLen = (int)FieldLength[nCol];
pDataOut = (char
)(m_ItemMySqlRow[nCol]);
return true;
}
else
{
return false;
}
}

像通常一样查询后,得到结果集,然后得到第nCol列结果,返回二进制指针结果和二进制长度。返回后必须立马处理或者存储一份。否则mysql将数据销毁,指针所指数据则无效了。

存二进制数据:

mysql语句接受的sql语句都是string,以'\0'结尾的。如果冒然插入二进制数据到sql语句中,要么报错,要么存储错误。此处可以通过mysql提供的函数将数据转换一下即可。

char* CMySqlAccess::ConvertBinaryToString(char* pBinaryData,int nLen)
{
static char s_BinaryData[10240];
mysql_real_escape_string(m_pMySqlConn,s_BinaryData,pBinaryData,nLen);
return s_BinaryData;
}
上面这个函数只能单线程使用啊,将一块二进制数据转换为mysql可识别的string数据。这样就直接可以通过mysql的sql语句insert,update来对blob数据进行更新和插入了,sql语句用法不变。

用例:

std::ostringstream strSQL;
strSQL<<"INSERT INTO "<ConvertBinaryToString(pData,nLen)<<"','')";
assert(m_pDBAccess);
m_pDBAccess->ExecuteSQL(strSQL.str());

playerdata是blob二进制类型,pData是指向一个结构体的指针,nLen是结构体的大小。

上面就可以实现二进制的存储了。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring JPA 使用注解映射MySQL数据库的Blob和Text类型数据
Clob(Character Large Ojects)类型是长字符串类型,具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型。nBlob(Binary Large Objects)类型是字节类型,具体的java.sql.Blob, Byte[], byte[] ...
java向Oracle数据库中插入blob字段数据
java不能直接想插入其他普通类型数据一样插入blob字段数据,因为blob相当于一个大文件块,里面有游标,需要初始化blob游标才能插入数据。所以我们要先插入一个空的blob数据,以初始化游标,然后再往这个blob字段中写入数据,来实现插入blob数据的效果,代码如下:package controller;nnimport java.io.FileInputStream;nimport java...
BLOB字段处理
BLOB字段处理 插入和获取BLOB字段
Java读取数据库中blob字段并插入到另一个表中
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
向Oracle数据库中插入Blob对象的Sql
nDrop Table VillageLand;n----------------------nCreate Table blobTest(n filename varchar2(200),n filedesc varchar2(200),n filebody blobn);n nSelect * From blobTest;n nCreate Or Replace Procedure Proc_...
MySQL 中Blob类型数据的插入和读取
在MySQL中Blob是一个二进制的对象,它是一个可以存储大量数据的容器(如图片,音乐等等),且能容纳不同大小的数据,在MySQL中有四种Blob类型,他们的区别就是可以容纳的信息量不容分别是以下四种:rn      ①TinyBlob类型  最大能容纳255B的数据rn      ②Blob类型  最大能容纳65KB的rn      ③MediumBlob类型  最大能容纳16MB的数据rn 
关于sqlite的文本字段插入blob数据
sqlite字段类型的获取隐藏问题
MYSQL数据同步BlOB字段,出现乱码的问题
问题详情: n 框架为SSM n业务场景: n 将数据库表a中的内容字段(longblob ),转存到表b中时,b中内容乱码,文件大小改变; n困扰了我好久. n查看网上资料没有找到合适的解决方案,最终老板给出了解决方案,留记录. n经查看,是在插入过程中代码中使用byte[]转存,出现的乱码问题. n解决方法: n1.在java代码中写sql语句,不经过mybatis层nnnnpu...
MySQL 中的BLOB对象以及BLOB 对象的插入和读取
一、在MySQL中 BLOB是二进制数据对象,他是一个可以存储大数据的容器,在MySQL中有四中BLOB 类型,这四种类型分别对应存储不同容量的数据:nn1.TINYBLOB                             最大存储255字节nn2.BLOB                                     最大65Knn3.MEDIUMBLOB           ...
Oracle数据库中向BLOB类型字段插入字符串并把插入的BLOB数据转换成字符串显示...
首先先在数据库中创建一张表rncreate table TB_TEST(  ID  NUMBER,  BLB BLOB)rn rn其次向表中插入一条空数据rninsert into tb_test (id,blb) values (1,empty_blob())rn rn最后更改BLOB字段的值rn declare  directions BLOB;rn  amount          BINA...
Oracle数据库中插入图片BLOB字段的方法
1./opt/pic/目录下存放图片文件rn 2.先创建表,存储图片的字段为BLOB类型,创建表可以用sql也可以用navicat等工具,先插入数据填入其他字段,BLOB为null不填rn  CREATE TABLE PICTURE_SRC ( "ID" NUMBER NOT NULL ENABLE, "IDENTIFICATION" VARCHAR2(255), "PROVINCE" VARCH
Java-Blob-取出来插入另一个数据库[导库程序]
//注意:rn//[数据源-content字段是Blob类型字段;数据目的库-CRINF_CONTENT1是Blob类型字段]rnrnimport java.io.ByteArrayOutputStream;rnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.FileOutputStream;rnimpor
如何向数据库中存取BLOb字段
存: 创建一个和数据对应的实体pojo: 其中数据库blob字段对应的实体属性定义成byte[]类型 fileContant,然后得到上传的file后getBytes()给fileContant赋值,直接入库则OK.rn取:rn[code=&quot;java&quot;]rn@RequestMapping(value = &quot;/loadAttach&quot;, method = RequestMethod.GET)rn pu...
Navicat连接orcale数据库存入blob字段
针对大部分人使用orcale数据库时采用的链接工具是PLSQL的问题,此处针对的是Navicat连接orcale数据库解决blob字段的存储问题。 n一、建议带有blob字段的资源表 n n二、选择对象下方的下拉菜单按钮 n三、选择查看 –》图像之后,下方就会出现如下对话框 n n四、选择blob字段,然后选择对话框中第一个加载按钮,选择要存储的图片,即可把图片存入orcale数据库中。...
MySQL通过Navicat插入带有blob类型字段
一般blob字段不设置为非空字段。如果有非空限制,请先将非空属性去掉。nn1.插入数据除去blob字段之外其他数据nn2.点击blob,打开备注nn3.将要添加到blob的内容复制放入备注中,保存nn完成。nn《工作中遇到的小问题,网上找了很久没有一个特别简单的方案,自己随便试着插入过一次,做个记录》...
将一个Xml文件存入oracle数据库中的blob字段中
public void writeXmlToDataSource(){rn Session s=null; rn byte[]buffer=new byte[1]; rn buffer[0]=1; rn try{ rn SessionFactory Stub=HibernateSessionFactory.getSessionFactory(); rn ...
java 文件写入oracle数据库blob字段
public void file2blob() throws Exception {rnString filePath = "D://FILE//t.txt";rnoracle.sql.BLOB b = null;rnConnection con = null;rnStatement st = null;rntry {rnString uuid = UUID.randomUUID().toStri
Informix下大对象(BLOB和CBLOB)的处理机问题的解决办法
&amp;nbsp;rnInformix下大对象(BLOB和CBLOB)的处理机问题的解决办法rnrnrnrnrn在informix数据库中大对象BLOB和CBLOB处理出错的分析和解决办法:1:分析:Informix数据库中大对象存储在分为两大类:简单大对象:TEXT、Byte对象,他们存放在BLOB表空间(普通表空间)中,如果IDS系统没有建立BLOB表空间,或缺省没有时,存储可能出错。智能化大对象:...
C++插入SQLite数据库的BLOB字段
使用环境是VS2010,往SQLite数据库的BLOB字段里插入jpg,主要修改路径和文件名也可以换成其他文件。工程里也自带SQLite的编译文件,如果需要的也可以下载。
java对DB2数据库大字段(BLOB类型)的处理
db2大字段(BLOB类型)rn rnrn大字段对应java的数据类型 rnrnrnjava将Blob类型转换为String类型
将oracle中blob数据写入文件,再把文件读取插入数据库
今天项目要提供一个版本给现场的同事做测试,并且初始化数据当中有blob数据,所以为了解决这个问题在网上找了好些资料东凑西凑终于把这个给弄好了,代码大概就是这样:rnrn//将数据库中的blob数据存储为txt文件rnpublic static void export(){rn    String url = Global.getConfig("db.rsk.url");//数据连接rn    St
jdbc 如何处理Blob类型字段的数据
jdbc处理大对象Blobnn 在贴代码之前先讲一下什么是LOB大对象数据n LOB 大对象 是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储多达 4GB的数据)nn  LOB分类两种类型:nn(1)内部,n (2)外部n 内部LOB将数据是已字节流的形式存储再数据库的内部,因而LOB的许多操作都可以参与事务,也可以像处理普通数据一样对其进行备份和恢复操作。n 内部三种类型:n...
插入和读取blob和clob类型数据
/******************blob*********************/npublic class Blob_Test {n //创建表n @Testn public void create(){n Connection conn=null;n PreparedStatement ps=null;n ResultSet r
MySQL修改默认Blob数据类型大小(解决上传1M以上文件失败的问题)
如果需要在MySQL中存储二进制数据,那么肯定会用到 BLOB 类型的字段。MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小的不同。nnMySQL的四种 BLOB 类型: (单位:字节)nTinyBlob : 最大 255nBlob : 最大 65KnMediumBlob : 最大 16Mn...
mybatis插入与取出 blob clob字段
Student中 pic字段为blob类型rnrnrnblob clob(mysql中为longtext)映射到java模型分别为 byte[] Stringrnclob直接插入跟取出 字符串即可;rn插入blob字段的代码为:rnStudent s = new Student();rns.setName("Tom");rns.setAge(18);rns.setRemark("很长的文本");r
Oracle BLOB类型进行插入
字符串插入BLOB字段类型 n1.BLOB n BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节 n2.CLOB n CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。...
分享_第二天_SQL_DB2数据库BLOB类型字段查看问题
DB2数据库BLOB类型字段查看问题nnnn最近在项目中,碰到BLOB字段的查看问题,在网上查了两天,终于让我找到了貌似可以解决问题的方法。(用貌似是因为还没有在生产环境试验过,只在测试环境做了尝试)nn问题描述: n有张表,其中一列定义为BLOB类型,用于存储大文本数据,比如电子文本合同等。在开发机上,自然可以利用DBVisualizer工具,查看到中文内容;nn可是在生产数据库服务器上,是无法...
使用JDBC写入blob数据到数据库以及读取数据
package com.yucheng.jdbc;rnrnimport java.io.FileInputStream;rnimport java.io.FileOutputStream;rnimport java.io.InputStream;rnimport java.io.OutputStream;rnimport java.sql.Blob;rnimport java.sql.Connec
PostgreSql MySQL数据库中插入或读取blob 、bytea 数据
一、PostgreSqlnnPostgreSql 中bytea 数据类型是二进制数据,可以用来存储图片或者其他的大文件格式,当bytea数据类型中存储少量字节的时候可以通过SQL语句进行CRUD nn数据库中的bytea是使用二进制进行按照字节存储nn参考:https://www.postgresql.org/docs/9.2/static/datatype-binary.htmlnnhttps:...
mybatis 向oracle中插入clob/blob类型字段
xml配置文件:nnn&amp;lt;mapper namespace=&quot;com.mapper.api.ProductLableDao&quot;&amp;gt;n &amp;lt;resultMap type=&quot;com.mapper.pojo.Test&quot; id=&quot;BaseResultMap&quot;&amp;gt;n n &amp;lt;result property=&quot;filed&quot; column=&quot;col&quot; jdbcT
java中Blob数据存入数据库
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。 n在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 nBLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。 n根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据
sqlplus中如何插入blob数据
在internal这个用户下给scott用户授权如下:rnSQL&gt;grant create any directory to scott;rnSQL&gt;grant create any library to scott;rn在scott这个用户下执行下述语句:rnSQL&gt;create table bfile_tab (bfile_column BFILE);rnSQL&gt;create table ut...
JDBC将base64保存在BLOB字段类型中
                 nnn//先查询出来(for update是重点),然后再插入插入照片n                String sqlzp=&quot;select zp from T_EXAM_PROCESS where id='&quot;+examProcess.getId()+&quot;' for update&quot;;n                if(!examProcess.getZp()...
JDBC处理二进制大对象BLOB
1、LOB对象2、MySql Blob介绍3、INSERT 或 GET BLOG 实现 /**n * MySql 插入图片n * 插入 BLOB 类型的数据必须使用 PreparedStatement,因为BLOB类的数据无法使用字符串拼写。n * @param sql: INSERT INTO userinfos(userName,password,date,add...
mybatis 存取Blob数据到oracle数据库
BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。其实两个是可以互换的的,或者可以直接用LOB字段代替这两个。但是为了更好的管理ORACLE数据库,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。rn本文使用的是 mybatis
sql server字段保存文件,blob操作
在sql server的字段中保存文件,文件大小没有限制。 字段类型2005以上是 varbinary(MAX),2000版本是image.
将文件整个保存到DB2数据库BLOB字段
rnimport java.io.File;rnimport java.io.FileInputStream;rnimport java.io.InputStream;rnimport java.sql.Connection;rnimport java.sql.DriverManager;rnimport java.sql.PreparedStatement;rnrnpublic class Ex...
C++插入SQLite BLOB字段(以JPG为例)
使用C++插入SQLite的BLOB字段
SSM后台处理oracle数据库的BLOB字段数据
背景:公司项目需要在BLOB里存储大文本JSON格式的字符串,主要是echart的配置,用于在前端展示echart图表nn操作:nn        1.在pojo类中对应数据库的BLOB字段的数据类型设置为byte[]类型nn        2.在mapper.xml中该字段的JDBCType设置为BLOB,所有操作里只要需要填JDBCType的都是BLOBnn        3.执行存储操作时可...
MySQL解决CONCAT()存储过程动态传入二进制文件BLOB无法识别报错
       博主这个菜鸡,遇到了一个mysql动态存值的问题,存入二进制文件,然后使用CONCAT()进行拼接存储,一直报错无法存储的问题, 博主测试所得问题的原因是因为将传入的blob解析为了string然后整个语句就报.  无法执行将二进制存储的存储过程:CREATE DEFINER=`root`@`localhost` PROCEDURE `test_bin`(in bin BLOB)n...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 数据库课程表字段 数据库课程字段