#pragma once #include #include #include #include #include "Column.h" #include "Utility.h" #include "BoundDatumHelper.h" #include namespace mssql { using namespace std; class CharColumn : public Column { public: virtual ~CharColumn() { } CharColumn(int id, shared_ptr s, size_t size) : Column(id), size(size), storage(s->charvec_ptr) { } CharColumn(int id, shared_ptr s, size_t size) : Column(id), size(size), storage(s) { } CharColumn(int id, shared_ptr s, size_t offset, size_t size) : Column(id), size(size), storage(s), offset(offset) { } inline Local ToString() override { return ToValue(); } inline Local ToNative() override { auto sptr = storage->data(); auto s = Nan::Encode(sptr + offset, size, Nan::UTF8); return s; } private: size_t size; shared_ptr storage; size_t offset = 0; }; }