none
ATL, OLEDB, COLUMN_ENTRY, COLUMN_ENTRY_STATUS RRS feed

  • Question

  • J'ai constaté que dans le cas de figure ci-dessous, "m_dwGroupIDStatus" n'a pas d'effet. Si je lui assigne DBSTATUS_S_ISNULL, la valeur NULL n'est pas passée, mais la valeur de m_GroupID.

     BEGIN_PARAM_MAP(CDBOccupancyLogAddAccessor)
      SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
      COLUMN_ENTRY(1, m_RETURN_VALUE)
      SET_PARAM_TYPE(DBPARAMIO_INPUT)
      COLUMN_ENTRY(2, m_DateStart)
      SET_PARAM_TYPE(DBPARAMIO_INPUT)
      COLUMN_ENTRY_STATUS(3, m_GroupID, m_dwGroupIDStatus)
    ...
    END_PARAM_MAP

    J'ai constaté que dans le cas de figure ci-dessous, "m_dwGroupIDStatus" n'a pas d'effet. Si je lui assigne DBSTATUS_S_ISNULL, la valeur NULL n'est pas passée, mais la valeur de m_GroupID.

    En modifiant le code comme suit, ça marche pour m_dwGroupIDStatus, mais pas pour m_dwDateStartStatus! Comme si le premier COLUMN_ENTRY_STATUS était traité comme un COLUMN_ENTRY.
    Est-ce un bogue dans ATL OLEDB?

     BEGIN_PARAM_MAP(CDBOccupancyLogAddAccessor)
      SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
      COLUMN_ENTRY(1, m_RETURN_VALUE)
      SET_PARAM_TYPE(DBPARAMIO_INPUT)
      COLUMN_ENTRY_STATUS(2, m_DateStart, m_dwDateStartStatus)
      SET_PARAM_TYPE(DBPARAMIO_INPUT)
      COLUMN_ENTRY_STATUS(3, m_GroupID, m_dwGroupIDStatus)
    ...
    END_PARAM_MAP

    vendredi 27 août 2010 10:03