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))); return static_cast<T>(portable_integer(m_buffer.data() + f.offset, sizeof(T)));
} }
/// <summary>
///
/// </summary>
/// <returns></returns>
Firebird::IResultSet* operator->() const Firebird::IResultSet* operator->() const
{ {
return m_rs; 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: private:
// buffer low level accessor // buffer low level accessor
template <typename T> 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) void cache_metadata(unsigned count)
{ {
m_fields.resize(count); m_fields.resize(count);