Add direct access to result_set's buffer bytes, and it's structure

This commit is contained in:
Kirill Zverev 2025-03-05 15:13:05 +05:00
parent 924e06392e
commit 5b9edc9c31

View File

@ -855,11 +855,52 @@ public:
return static_cast<T>(portable_integer(m_buffer.data() + f.offset, sizeof(T)));
}
/// <summary>
///
/// </summary>
/// <returns></returns>
Firebird::IResultSet* operator->() const
{
return m_rs;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
Firebird::IMessageMetadata* get_message_metadata() const
{
return m_meta;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
octets const& get_message_buffer() const
{
return m_buffer;
}
/// <summary>
///
/// </summary>
struct field
{
const char* name;
unsigned type, subtype, length, offset, null_offset;
int scale;
};
/// <summary>
///
/// </summary>
/// <returns></returns>
std::vector<field> const& get_fields() const
{
return m_fields;
}
private:
// buffer low level accessor
template <typename T>
@ -891,13 +932,6 @@ private:
}
}
struct field
{
const char* name;
unsigned type, subtype, length, offset, null_offset;
int scale;
};
void cache_metadata(unsigned count)
{
m_fields.resize(count);