Logo ROOT   6.14/05
Reference Guide
TSQLColumnInfo.h
Go to the documentation of this file.
1 // @(#)root/net:$Id$
2 // Author: Sergey Linev 31/05/2006
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TSQLColumnInfo
13 #define ROOT_TSQLColumnInfo
14 
15 #include "TNamed.h"
16 
17 class TSQLColumnInfo : public TNamed {
18 
19 protected:
20  // Database specific fields
21  TString fTypeName; //! sql type name, as reported by DB. Should be as much as close to declaration of column in CREATE TABLE query
22 
23  // Database independent fields
24  Int_t fSQLType; //! datatype code (see TSQLServer::ESQLDataTypes constants), -1 if not defeined
25  Int_t fSize; //! size of column in bytes, -1 if not defing
26  Int_t fLength; //! datatype length definition, for instance VARCHAR(len) or FLOAT(len), -1 if not defined
27  Int_t fScale; //! datatype scale factor, used for instance in NUMBER(len,scale) definition. -1 if not defined
28  Int_t fSigned; //! if datatype signed or not, 0 - kFALSE, 1 - kTRUE, -1 - unknown
29  Bool_t fNullable; //! identify if value can be NULL
30 
31 public:
33  TSQLColumnInfo(const char* columnname,
34  const char* sqltypename = "unknown",
35  Bool_t nullable = kFALSE,
36  Int_t sqltype = -1,
37  Int_t size = -1,
38  Int_t length = -1,
39  Int_t scale = -1,
40  Int_t sign = -1);
41  virtual ~TSQLColumnInfo() {}
42 
43  const char* GetTypeName() const { return fTypeName.Data(); }
44  Bool_t IsNullable() const { return fNullable; }
45  Int_t GetSQLType() const { return fSQLType; }
46  Int_t GetSize() const { return fSize; }
47  Int_t GetLength() const { return fLength; }
48  Int_t GetScale() const { return fScale; }
49  Int_t GetSigned() const { return fSigned; }
50  Bool_t IsSigned() const { return fSigned==1; }
51  Bool_t IsUnsigned() const { return fSigned==0; }
52 
53  virtual void Print(Option_t* option = "") const;
54 
55  ClassDef(TSQLColumnInfo, 0) // Summury information about column from SQL table
56 };
57 
58 #endif
const char * GetTypeName() const
Int_t GetSQLType() const
const char Option_t
Definition: RtypesCore.h:62
Basic string class.
Definition: TString.h:131
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Int_t fLength
size of column in bytes, -1 if not defing
Bool_t IsUnsigned() const
virtual ~TSQLColumnInfo()
Int_t GetScale() const
Bool_t fNullable
if datatype signed or not, 0 - kFALSE, 1 - kTRUE, -1 - unknown
#define ClassDef(name, id)
Definition: Rtypes.h:320
Bool_t IsNullable() const
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
Int_t GetSigned() const
Int_t fScale
datatype length definition, for instance VARCHAR(len) or FLOAT(len), -1 if not defined ...
Int_t GetLength() const
virtual void Print(Option_t *option="") const
Prints column information to standard output.
Bool_t IsSigned() const
const Bool_t kFALSE
Definition: RtypesCore.h:88
TSQLColumnInfo()
identify if value can be NULL
Int_t fSize
datatype code (see TSQLServer::ESQLDataTypes constants), -1 if not defeined
Int_t GetSize() const
Int_t fSQLType
sql type name, as reported by DB. Should be as much as close to declaration of column in CREATE TABLE...
Int_t fSigned
datatype scale factor, used for instance in NUMBER(len,scale) definition. -1 if not defined ...
const char * Data() const
Definition: TString.h:364