// @(#)root/sql:$Id$ // Author: Sergey Linev 20/11/2005 /************************************************************************* * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TSQLObjectData #define ROOT_TSQLObjectData #ifndef ROOT_TObject #include "TObject.h" #endif #ifndef ROOT_TString #include "TString.h" #endif class TObjArray; class TList; class TSQLClassInfo; class TSQLResult; class TSQLRow; class TSQLStatement; class TSQLObjectInfo : public TObject { public: TSQLObjectInfo(); TSQLObjectInfo(Long64_t objid, const char* classname, Version_t version); virtual ~TSQLObjectInfo(); Long64_t GetObjId() const { return fObjId; } const char* GetObjClassName() const { return fClassName.Data(); } Version_t GetObjVersion() const { return fVersion; } protected: Long64_t fObjId; TString fClassName; Version_t fVersion; ClassDef(TSQLObjectInfo, 1) //Info (classname, version) about object in database }; //======================================================================= class TSQLObjectData : public TObject { public: TSQLObjectData(); TSQLObjectData(TSQLClassInfo* sqlinfo, Long64_t objid, TSQLResult* classdata, TSQLRow* classrow, TSQLResult* blobdata, TSQLStatement* blobstmt); virtual ~TSQLObjectData(); Long64_t GetObjId() const { return fObjId; } TSQLClassInfo* GetInfo() const { return fInfo; } Bool_t LocateColumn(const char* colname, Bool_t isblob = kFALSE); Bool_t IsBlobData() const { return fCurrentBlob || (fUnpack!=0); } void ShiftToNextValue(); void AddUnpack(const char* tname, const char* value); void AddUnpackInt(const char* tname, Int_t value); const char* GetValue() const { return fLocatedValue; } const char* GetLocatedField() const { return fLocatedField; } const char* GetBlobPrefixName() const { return fBlobPrefixName; } const char* GetBlobTypeName() const { return fBlobTypeName; } Bool_t VerifyDataType(const char* tname, Bool_t errormsg = kTRUE); Bool_t PrepareForRawData(); protected: Bool_t ExtractBlobValues(); Bool_t ShiftBlobRow(); Int_t GetNumClassFields(); const char* GetClassFieldName(Int_t n); TSQLClassInfo* fInfo; //! Long64_t fObjId; //! Bool_t fOwner; //! TSQLResult* fClassData; //! TSQLResult* fBlobData; //! TSQLStatement* fBlobStmt; //! Int_t fLocatedColumn; //! TSQLRow* fClassRow; //! TSQLRow* fBlobRow; //! const char* fLocatedField; //! const char* fLocatedValue; //! Bool_t fCurrentBlob; //! const char* fBlobPrefixName; ///