所以我在ubuntu 64位机器上使用g ++和Mysqlcppconn(Mysql c ++连接器)。我想将二进制数据blob插入数据库并能够检索它。 Retieval
typedef unsigned char byte;
byte data[512];
istream *buf=res->getBlob(1);
buf->read((char*)data,512);
我只是希望这可行,但我不太确定。这里res是一个ResultSet。
对于在数据库中存储,我无法弄清楚如何将我的byte *转换为istream。
Thanx阅读。
答案 0 :(得分:0)
答案在于使用流缓冲区在数据库中编写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 .. :))