如何将值从std :: set流式传输到MySQL c ++连接器setBlob()?

时间:2011-03-24 20:07:15

标签: c++ mysql mysql-connector istream

在C ++中: 我有一个std ::整数集

在MySQL中: 我有一个带有blob列的表


我想将整数流转换为blob列,但我不知道该怎么做

编辑: 忘记提到我需要确保整数被打包为小端DWORD

1 个答案:

答案 0 :(得分: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));
}