谁知道怎么在MySQL中直接存储bmp图片? 能够存入, 读取出来保存到本地能打开? 那位大侠做过? 用c++实现、 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BLOB读写,可以google到的。使用mysql c API. 通过ADO的APPENDCHUNK,GETCHUNK方法来存储二进制流到BLOB字段。 我用MySQL c++ connect 怎么存储和读取呢 可以用 stmt系统函数,存二进制数据,就不用转义特殊字符了 我用longBlob可以存进去, 就像你说的需要转义字符, 那我读取的时候 是不是 又要把转义字符给去掉? 也就是还原回去??? 直接使用:mysql_stmt_send_long_data获取数据时,不需要转义符。4.x就支持了。 这个东西怎么用?? 麻烦说一下吧, 我这连个mysql 的说明文档都没有。 我看到 PreparedStatement里面有个函数 setBlob可以存储二进制文件但是他的第二个参数是 std::istream * blob不知道这个参数怎么构造? FILE* fp = NULL; fp = fopen( strMapPath, "rb"); if ( !fp ) { AfxMessageBox( "open file failed"); return FALSE; } fseek(fp, 0L, SEEK_END); int nFileSize = ftell( fp ); fseek(fp, 0L, SEEK_SET); char *query, *p; unsigned int from_len = 0; nFileSize += 1; query = (char *)malloc( nFileSize ); memset(query, 0, nFileSize); from_len = fread(query, sizeof(char), nFileSize, fp ); fclose( fp ); fp = NULL; DataBuf buffer((char*)query, from_len); istream stream(&buffer); PreparedStatement* pPreStmt = NULL; ResultSet* pRes = NULL; char szSql[512]; memset(szSql, 0x00, 512); sprintf_s(szSql, "insert into tb_picture(id, mapguid, imagedata) values( 1,'5445a', ?)"); try { pPreStmt = m_dbCon->prepareStatement(szSql); pPreStmt->setBlob(1, &stream); pPreStmt->executeUpdate(); } catch (SQLException &e) { CString strError= e.what(); } 这条mysql语句是不是真没法优化了? 检测MySql数据库的工具,大家一块讨论讨论 请推荐好的适合mysql5。0的建模软件 关于mysql的问题?? mySql 计算时间问题 MYSQL 字符分割查询,请大家帮忙!! (有见表代码) java连接Mysql错误,请高手帮助? 连接mysql问题 请问大家关于MySql数据备份的问题???(解决给分) 跪求指教,mysql短期挂起 mysql 查询多字段重复记录~ 需要为联合主键的字段添加索引吗?
我用longBlob可以存进去, 就像你说的需要转义字符,
那我读取的时候 是不是 又要把转义字符给去掉? 也就是还原回去???
获取数据时,不需要转义符。
4.x就支持了。
FILE* fp = NULL;
fp = fopen( strMapPath, "rb");
if ( !fp )
{
AfxMessageBox( "open file failed");
return FALSE;
} fseek(fp, 0L, SEEK_END);
int nFileSize = ftell( fp );
fseek(fp, 0L, SEEK_SET); char *query, *p;
unsigned int from_len = 0;
nFileSize += 1; query = (char *)malloc( nFileSize );
memset(query, 0, nFileSize);
from_len = fread(query, sizeof(char), nFileSize, fp );
fclose( fp );
fp = NULL; DataBuf buffer((char*)query, from_len);
istream stream(&buffer); PreparedStatement* pPreStmt = NULL;
ResultSet* pRes = NULL;
char szSql[512];
memset(szSql, 0x00, 512);
sprintf_s(szSql, "insert into tb_picture(id, mapguid, imagedata) values( 1,'5445a', ?)"); try
{
pPreStmt = m_dbCon->prepareStatement(szSql);
pPreStmt->setBlob(1, &stream);
pPreStmt->executeUpdate();
}
catch (SQLException &e)
{
CString strError= e.what(); }