I don't know why I did not think of this in the first place, have a class of just data and put that class in the CRecordset derived class. Seems to work, of course you have to change how DoFieldExchange works a bit, but easy enough:
#pragma once
#include <afxdb.h>
// This helper class is useful when we need to gather the data without the database
class CCctAsmData
{
public:
CCctAsmData () {}
CString m_csCct3dSAPCode; // System.String
CString m_csDescrizione; // System.String
CString m_csQta; // System.String
double m_LungA =0.0 ; // System.Double
CString m_csTuboSAPCode; // System.String
CString m_csDXF; // System.String
CTime m_Data; // System.DateTime
CString m_csUT; // System.String
};
class CCctAssembliesRecSet: public CRecordset
{
public:
CCctAssembliesRecSet(CDatabase* pdb = nullptr);
CCctAsmData m_JustData ; // Only has data members, no functions
virtual CString GetDefaultSQL();
virtual void DoFieldExchange(CFieldExchange* pFX);
virtual CString GetDefaultConnect();
};