2

C++ の場合: std::set の整数があります。

MySQL の場合: blob 列を持つテーブルがあります


整数を blob 列にストリーミングしたいのですが、その方法がわかりません

編集:整数がリトルエンディアンのDWORDとしてパックされていることを確認する必要があることを忘れていました

4

1 に答える 1

0

私はあなたが使用している MySQL ライブラリに精通していませんが、istream を使用している場合は次のようになります。

void PutInt(istream &stream, int value)
{
  uint8_t byte[4];

  // converting to little-endian 32bits (DWORD size)
  byte[0] = value; 
  byte[1] = value >> 8;
  byte[2] = value >> 16;
  byte[3] = value >> 24;

  // write to stream
  for (int i = 0 ;i < 4; i++)
    stream>>byte[i];
}

void PutSet(istream &stream, std::set<int> &some_set)
{
  std::set<int>::iterator it;

  for (it = some_set.begin(); it != some_set.end(); it ++)
    PutInt(stream,(*it));
}
于 2012-06-01T12:55:33.587 に答える