0

そのため、ubuntu 64 ビット マシンで g++ と Mysqlcppconn (Mysql c++ コネクタ) を使用しています。バイナリ データ BLOB をデータベースに挿入し、それを取得できるようにしたいと考えています。取得

typedef unsigned char byte;

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

これが機能することを願っていますが、よくわかりません。ここで res は ResultSet です。

データベースに保存するために、バイト*をistreamに変換する方法がわかりません。

読んでくれてありがとう。

4

1 に答える 1

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 です.. :)

于 2013-05-17T20:45:52.040 に答える