所以我在64位的ubuntu机上使用g++和Mysql c++连接器。我想将二进制数据blob插入到数据库中,并能够检索它。检索
typedef unsigned char byte;
byte data[512];
istream *buf=res->getBlob(1);
buf->read((char*)data,512);我只希望这能起作用,但我不太确定。这是一个ResultSet。
为了存储在数据库中,我不知道如何将byte*转换为istream。
感谢您的阅读。
发布于 2013-05-18 04:45:52
答案在于使用流缓冲区在数据库中写入blob
struct membuf: std::streambuf
{
membuf(char* b, char* e) { this->setg(b, b, e); }
};
byte *p = something....;
membuf buf((char*)p,(char*)p+ALPHABET_SIZE*sizeof(ull));
istream is(&buf);
ps->setBlob(1,&is);这里的ps是一个PreparedStatement..:)
https://stackoverflow.com/questions/16617340
复制相似问题