2013-05-17 136 views
0

因此,我在Ubuntu 64位機器上使用g ++和Mysqlcppconn(Mysql C++連接器)。我想插入二進制數據blob到數據庫中,並能夠檢索它。 RetuallyC++ Mysql在數據庫中保存二進制blob

typedef unsigned char byte; 

byte data[512]; 
istream *buf=res->getBlob(1); 
buf->read((char*)data,512); 

我只是希望這個作品我不太確定。這裏res是一個ResultSet。

對於存儲在數據庫中我無法弄清楚如何將我的字節*轉換爲istream。

Thanx for reading。

回答

0

答案就在使用流緩衝數據庫

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); 

這裏寫BLOB PS是一個PreparedStatement .. :)