【问题标题】:How do I stream values from a std::set into MySQL c++ connector setBlob()?如何将 std::set 中的值流式传输到 MySQL c++ 连接器 setBlob()?
【发布时间】:2011-07-22 10:42:37
【问题描述】:

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

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


我想将整数流式传输到 blob 列,但我不知道该怎么做

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

【问题讨论】:

    标签: c++ mysql mysql-connector istream


    【解决方案1】:

    我不熟悉您使用的 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));
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 1970-01-01
      • 2021-09-14
      • 2012-09-06
      • 2019-11-14
      • 2012-12-11
      • 2010-11-09
      • 2011-11-22
      • 1970-01-01
      相关资源
      最近更新 更多