# TBufferSQL2 Converts data to SQL statements or read data from SQL tables. Class for serializing/deserializing object to/from SQL data base. It redefines most of TBuffer class function to convert simple types, array of simple types and objects to/from TSQLStructure objects. TBufferSQL2 class uses streaming mechanism, provided by ROOT system, therefore most of ROOT and user classes can be stored. There are limitations for complex objects like TTree, TClonesArray, TDirectory and few other, which can not be converted to SQL (yet). ```cpp class TBufferSQL2 : public TBufferFile ``` ## class ```cpp friend class TSQLStructure; protected: TSQLFile *fSQL; ///Streamer(obj,buf) call here /// buf.StreamObject(obj, cl). In that case it is easy to understand where /// object data is started and finished virtual Int_t WriteFastArray(void **startp, const TClass *cl, Int_t n = 1, Bool_t isPreAlloc = kFALSE, TMemberStreamer *s = 0); /// Same functionality as TBuffer::WriteFastArray(...) but /// instead of calling cl->Streamer(obj,buf) call here /// buf.StreamObject(obj, cl). In that case it is easy to understand where /// object data is started and finished virtual void StreamObject(void *obj, const std::type_info &typeinfo, const TClass *onFileClass = 0); virtual void StreamObject(void *obj, const char *className, const TClass *onFileClass = 0); virtual void StreamObject(void *obj, const TClass *cl, const TClass *onFileClass = 0); virtual void StreamObject(TObject *obj);/// Stream object to/from buffer virtual void StreamObject(void *obj, TMemberStreamer *streamer, const TClass *cl, Int_t n = 0, const TClass *onFileClass = 0);/// Stream object to/from buffer virtual void ReadBool(Bool_t &b); virtual void ReadChar(Char_t &c); virtual void ReadUChar(UChar_t &c); virtual void ReadShort(Short_t &s); virtual void ReadUShort(UShort_t &s); virtual void ReadInt(Int_t &i); virtual void ReadUInt(UInt_t &i); virtual void ReadLong(Long_t &l); virtual void ReadULong(ULong_t &l); virtual void ReadLong64(Long64_t &l); virtual void ReadULong64(ULong64_t &l); virtual void ReadFloat(Float_t &f); virtual void ReadDouble(Double_t &d); virtual void ReadCharP(Char_t *c); virtual void ReadTString(TString &s); virtual void ReadStdString(std::string *s); using TBuffer::ReadStdString; virtual void ReadCharStar(char *&s); virtual void WriteBool(Bool_t b); virtual void WriteChar(Char_t c); virtual void WriteUChar(UChar_t c); virtual void WriteShort(Short_t s); virtual void WriteUShort(UShort_t s); virtual void WriteInt(Int_t i); virtual void WriteUInt(UInt_t i); virtual void WriteLong(Long_t l); virtual void WriteULong(ULong_t l); virtual void WriteLong64(Long64_t l); virtual void WriteULong64(ULong64_t l); virtual void WriteFloat(Float_t f); virtual void WriteDouble(Double_t d); virtual void WriteCharP(const Char_t *c);/// Writes array of characters to buffer virtual void WriteTString(const TString &s); virtual void WriteStdString(const std::string *s); using TBuffer::WriteStdString; virtual void WriteCharStar(char *s); virtual Int_t ApplySequence(const TStreamerInfoActions::TActionSequence &sequence, void *object); /// Read one collection of objects from the buffer using the StreamerInfoLoopAction. /// The collection needs to be a split TClonesArray or a split vector of pointers. virtual Int_t ApplySequenceVecPtr(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection); /// Read one collection of objects from the buffer using the StreamerInfoLoopAction. /// The collection needs to be a split TClonesArray or a split vector of pointers. virtual Int_t ApplySequence(const TStreamerInfoActions::TActionSequence &sequence, void *start_collection, void *end_collection); /// Read one collection of objects from the buffer using the StreamerInfoLoopAction. static void SetFloatFormat(const char *fmt = "%e"); /// set printf format for float/double members, default "%e" /// changes global TSQLServer variable static const char *GetFloatFormat(); /// return current printf format for float/double members, default "%e" /// return format, hold by TSQLServer // end of redefined virtual functions ```