#pragma once #include #include #include #include #include "Column.h" #include "Utility.h" #include "BoundDatumHelper.h" #include namespace mssql { using namespace std; class StringColumn : public Column { public: virtual ~StringColumn() { } StringColumn(int id, shared_ptr s, size_t size) : Column(id), size(size), storage(s->uint16vec_ptr) { } StringColumn(int id, shared_ptr s, size_t size) : Column(id), size(size), storage(s) { } StringColumn(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 * 2, Nan::UCS2); return s; } private: size_t size; shared_ptr storage; size_t offset = 0; }; }