00001 00005 //--------------------------------------------------------------------------- 00006 00007 #ifndef IbMDateTimeH 00008 #define IbMDateTimeH 00009 00010 //--------------------------------------------------------------------------- 00011 00012 namespace fbwrap 00013 { 00014 00015 using std::string; 00016 00018 class FBwDateTimeField : public FBwField 00019 { 00020 ISC_TIMESTAMP svalue; 00021 FBwDateTime value; 00022 protected: 00023 virtual void *GetPtr() 00024 { 00025 return &svalue; 00026 } 00027 virtual void bCopy(FBwField *fld) 00028 { 00029 value = fld->AsDateTime(); 00030 } 00031 virtual int ByteSize() 00032 { 00033 return sizeof(svalue); 00034 } 00035 public: 00037 00040 FBwDateTimeField(string pname) : 00041 FBwField(pname,masf_datetime) 00042 { 00043 sqllen=19; 00044 SetFormat(value.GetFormat()); 00045 } 00047 FBwDateTimeField(const FBwDateTimeField &f) 00048 : FBwField(f) 00049 { 00050 sqllen=19; 00051 value = f.value; 00052 } 00053 virtual void BindPtr(char **p) 00054 { 00055 *p=(char *)&svalue; 00056 } 00057 virtual void ConvertStoV(); 00058 virtual void ConvertVtoS(); 00059 virtual FBwDate AsDate() const 00060 { 00061 return value.AsDate(); 00062 } 00063 virtual FBwDateTime AsDateTime() const 00064 { 00065 return value; 00066 } 00067 virtual FBwTime AsTime() const 00068 { 00069 return value.AsTime(); 00070 } 00071 virtual void SetAsDateTime(const FBwDateTime &dt) 00072 { 00073 value=dt; 00074 } 00075 virtual void SetAsDate(const FBwDate &d) 00076 { 00077 value=d; 00078 } 00079 virtual void SetAsTime(const FBwTime &t) 00080 { 00081 value = t; 00082 } 00083 virtual string AsString() const; 00084 virtual void SetAsString(const string &s); 00085 std::ostream &DisplayText(std::ostream & o) const; 00086 FBwField *Clone() const 00087 { 00088 return new FBwDateTimeField(*this); 00089 } 00090 ~FBwDateTimeField() 00091 { 00092 } 00093 }; 00094 00095 //------------------------------------------------------------------------- 00096 } 00097 #endif
1.2.17