Как я могу передать значения из std :: set в MySQL c ++ соединитель setBlob ()? - PullRequest
2 голосов
/ 24 марта 2011

В C ++: У меня есть std :: набор целых чисел

В MySQL: У меня есть таблица с столбцом BLOB-объектов


Я хотел бы передать целые числа в столбец BLOB-объектов, но я не уверен, как это сделать

редактирование: Забыл упомянуть, что мне нужно убедиться, что целые числа упакованы как байты с прямым порядком байтов

1 Ответ

0 голосов
/ 01 июня 2012

Я не знаком с библиотекой 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));
}
...