From a3c014b1c938fd16ff6d1f8eadeea3effd3a5a90 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 3 Jul 2021 16:55:44 +0100 Subject: Split MySQLRecordSet data away from interface --- lib/input/mysqlRecordSet.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'lib/input/mysqlRecordSet.h') diff --git a/lib/input/mysqlRecordSet.h b/lib/input/mysqlRecordSet.h index aec733e..0b4a057 100644 --- a/lib/input/mysqlRecordSet.h +++ b/lib/input/mysqlRecordSet.h @@ -12,11 +12,23 @@ namespace MyGrate::Input { class ResultData; - class MySQLRecordSet : public RecordSet { + class MySQLData { public: + using ResultDataPtr = std::unique_ptr; using ResPtr = std::unique_ptr; + + explicit MySQLData(StmtPtr s); + + std::size_t columns() const; + + StmtPtr stmt; + std::vector fields; + std::vector extras; + }; + + class MySQLRecordSet : public MySQLData, public RecordSet { + public: using StmtResPtr = std::unique_ptr; - using ResultDataPtr = std::unique_ptr; explicit MySQLRecordSet(StmtPtr s); @@ -27,10 +39,7 @@ namespace MyGrate::Input { DbValue at(std::size_t row, std::size_t col) const override; private: - StmtPtr stmt; StmtResPtr stmtres; - std::vector fields; - std::vector extras; mutable std::size_t currentRow {static_cast(-1)}; }; } -- cgit v1.2.3