• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

spl/data/ColumnTypes.h

00001 /*
00002  *   This file is part of the Standard Portable Library (SPL).
00003  *
00004  *   SPL is free software: you can redistribute it and/or modify
00005  *   it under the terms of the GNU General Public License as published by
00006  *   the Free Software Foundation, either version 3 of the License, or
00007  *   (at your option) any later version.
00008  *
00009  *   SPL is distributed in the hope that it will be useful,
00010  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *   GNU General Public License for more details.
00013  *
00014  *   You should have received a copy of the GNU General Public License
00015  *   along with SPL.  If not, see <http://www.gnu.org/licenses/>.
00016  */
00017 #ifndef _columntypes_h
00018 #define _columntypes_h
00019 
00020 #include <spl/types.h>
00021 #include <spl/Debug.h>
00022 
00023 #ifdef _WINDOWS
00024 #include <spl/configwin32.h>
00025 #else
00026 #include <spl/autoconf/config.h>
00027 #endif
00028 
00029 #include <spl/collection/Vector.h>
00030 #include <spl/data/RecordSet.h>
00031 #include <spl/Variant.h>
00032 
00039 class Int8Column : public IColumn
00040 {
00041 protected:
00042         Vector<int8> m_data;
00043 
00044 public:
00045         Int8Column(const String& name);
00046         virtual ~Int8Column();
00047 
00048         virtual int Count() const;
00049         virtual int Type() const;
00050         virtual IColumn *Clone() const;
00051 
00052         virtual void Append( int8 i );
00053         virtual void Append( int16 i );
00054         virtual void Append( int32 i );
00055         virtual void Append( int64 i );
00056         virtual void Append( Decimal i );
00057         virtual void Append( float32 i );
00058         virtual void Append( float64 i );
00059         virtual void Append( bool i );
00060         virtual void Append( DateTime i );
00061         virtual void Append( Date i );
00062         virtual void Append( const String& str );
00063         virtual void AppendParse( const char *data, const int len);
00064         virtual void Append( void *data, int len );
00065         virtual void Append( IColumn *col, const int row );
00066         virtual void AppendNull(  );
00067 
00068         virtual int8 GetByte(const int row);
00069         virtual int16 GetInt16(const int row);
00070         virtual int32 GetInt32(const int row);
00071         virtual int64 GetInt64(const int row);
00072         virtual Decimal GetDecimal(const int row);
00073         virtual float32 GetFloat32(const int row);
00074         virtual float64 GetFloat64(const int row);
00075         virtual bool GetBit(const int row);
00076         virtual DateTime GetTimeStamp(const int row);
00077         virtual Date GetDate(const int row);
00078         virtual DateTime GetDateTime(const int row);
00079         virtual StringPtr GetChar(const int row);
00080         virtual StringPtr GetVarchar(const int row);
00081         virtual Variant GetVariant(const int row);
00082 
00083 #if defined(DEBUG)
00084         virtual void CheckMem() const;
00085         virtual void ValidateMem() const;
00086 #endif
00087 };
00088 
00089 class Int16Column : public IColumn
00090 {
00091 protected:
00092         Vector<int16> m_data;
00093 
00094 public:
00095         Int16Column(const String& name);
00096         virtual ~Int16Column();
00097 
00098         virtual int Count() const;
00099         virtual int Type() const;
00100         virtual IColumn *Clone() const;
00101 
00102         virtual void Append( int8 i );
00103         virtual void Append( int16 i );
00104         virtual void Append( int32 i );
00105         virtual void Append( int64 i );
00106         virtual void Append( Decimal i );
00107         virtual void Append( float32 i );
00108         virtual void Append( float64 i );
00109         virtual void Append( bool i );
00110         virtual void Append( DateTime i );
00111         virtual void Append( Date i );
00112         virtual void Append( const String& str );
00113         virtual void AppendParse( const char * data, const int len);
00114         virtual void Append( void *data, int len );
00115         virtual void Append( IColumn *col, const int row );
00116         virtual void AppendNull(  );
00117 
00118         virtual int8 GetByte(const int row);
00119         virtual int16 GetInt16(const int row);
00120         virtual int32 GetInt32(const int row);
00121         virtual int64 GetInt64(const int row);
00122         virtual Decimal GetDecimal(const int row);
00123         virtual float32 GetFloat32(const int row);
00124         virtual float64 GetFloat64(const int row);
00125         virtual bool GetBit(const int row);
00126         virtual DateTime GetTimeStamp(const int row);
00127         virtual Date GetDate(const int row);
00128         virtual DateTime GetDateTime(const int row);
00129         virtual StringPtr GetChar(const int row);
00130         virtual StringPtr GetVarchar(const int row);
00131         virtual Variant GetVariant(const int row);
00132 
00133 #if defined(DEBUG)
00134         virtual void CheckMem() const;
00135         virtual void ValidateMem() const;
00136 #endif
00137 };
00138 
00139 class Int32Column : public IColumn
00140 {
00141 protected:
00142         Vector<int32> m_data;
00143 
00144 public:
00145         Int32Column(const String& name);
00146         virtual ~Int32Column();
00147 
00148         virtual int Count() const;
00149         virtual int Type() const;
00150         virtual IColumn *Clone() const;
00151 
00152         virtual void Append( int8 i );
00153         virtual void Append( int16 i );
00154         virtual void Append( int32 i );
00155         virtual void Append( int64 i );
00156         virtual void Append( Decimal i );
00157         virtual void Append( float32 i );
00158         virtual void Append( float64 i );
00159         virtual void Append( bool i );
00160         virtual void Append( DateTime i );
00161         virtual void Append( Date i );
00162         virtual void Append( const String& str );
00163         virtual void AppendParse( const char * data, const int len);
00164         virtual void Append( void *data, int len );
00165         virtual void Append( IColumn *col, const int row );
00166         virtual void AppendNull(  );
00167 
00168         virtual int8 GetByte(const int row);
00169         virtual int16 GetInt16(const int row);
00170         virtual int32 GetInt32(const int row);
00171         virtual int64 GetInt64(const int row);
00172         virtual Decimal GetDecimal(const int row);
00173         virtual float32 GetFloat32(const int row);
00174         virtual float64 GetFloat64(const int row);
00175         virtual bool GetBit(const int row);
00176         virtual DateTime GetTimeStamp(const int row);
00177         virtual Date GetDate(const int row);
00178         virtual DateTime GetDateTime(const int row);
00179         virtual StringPtr GetChar(const int row);
00180         virtual StringPtr GetVarchar(const int row);
00181         virtual Variant GetVariant(const int row);
00182 
00183 #if defined(DEBUG)
00184         virtual void CheckMem() const;
00185         virtual void ValidateMem() const;
00186 #endif
00187 };
00188 
00189 class Int64Column : public IColumn
00190 {
00191 protected:
00192         Vector<int64> m_data;
00193 
00194 public:
00195         Int64Column(const String& name);
00196         virtual ~Int64Column();
00197 
00198         virtual int Count() const;
00199         virtual int Type() const;
00200         virtual IColumn *Clone() const;
00201 
00202         virtual void Append( int8 i );
00203         virtual void Append( int16 i );
00204         virtual void Append( int32 i );
00205         virtual void Append( int64 i );
00206         virtual void Append( Decimal i );
00207         virtual void Append( float32 i );
00208         virtual void Append( float64 i );
00209         virtual void Append( bool i );
00210         virtual void Append( DateTime i );
00211         virtual void Append( Date i );
00212         virtual void Append( const String& str );
00213         virtual void AppendParse( const char * data, const int len);
00214         virtual void Append( void *data, int len );
00215         virtual void Append( IColumn *col, const int row );
00216         virtual void AppendNull(  );
00217 
00218         virtual int8 GetByte(const int row);
00219         virtual int16 GetInt16(const int row);
00220         virtual int32 GetInt32(const int row);
00221         virtual int64 GetInt64(const int row);
00222         virtual Decimal GetDecimal(const int row);
00223         virtual float32 GetFloat32(const int row);
00224         virtual float64 GetFloat64(const int row);
00225         virtual bool GetBit(const int row);
00226         virtual DateTime GetTimeStamp(const int row);
00227         virtual Date GetDate(const int row);
00228         virtual DateTime GetDateTime(const int row);
00229         virtual StringPtr GetChar(const int row);
00230         virtual StringPtr GetVarchar(const int row);
00231         virtual Variant GetVariant(const int row);
00232 
00233 #if defined(DEBUG)
00234         virtual void CheckMem() const;
00235         virtual void ValidateMem() const;
00236 #endif
00237 };
00238 
00239 class Float32Column : public IColumn
00240 {
00241 protected:
00242         Vector<float32> m_data;
00243 
00244 public:
00245         Float32Column(const String& name);
00246         virtual ~Float32Column();
00247         virtual int Count() const;
00248         virtual int Type() const;
00249         virtual IColumn *Clone() const;
00250 
00251         virtual void Append( int8 i );
00252         virtual void Append( int16 i );
00253         virtual void Append( int32 i );
00254         virtual void Append( int64 i );
00255         virtual void Append( Decimal i );
00256         virtual void Append( float32 i );
00257         virtual void Append( float64 i );
00258         virtual void Append( bool i );
00259         virtual void Append( DateTime i );
00260         virtual void Append( Date i );
00261         virtual void Append( const String& str );
00262         virtual void AppendParse( const char * data, const int len);
00263         virtual void Append( void *data, int len );
00264         virtual void Append( IColumn *col, const int row );
00265         virtual void AppendNull(  );
00266 
00267         virtual int8 GetByte(const int row);
00268         virtual int16 GetInt16(const int row);
00269         virtual int32 GetInt32(const int row);
00270         virtual int64 GetInt64(const int row);
00271         virtual Decimal GetDecimal(const int row);
00272         virtual float32 GetFloat32(const int row);
00273         virtual float64 GetFloat64(const int row);
00274         virtual bool GetBit(const int row);
00275         virtual DateTime GetTimeStamp(const int row);
00276         virtual Date GetDate(const int row);
00277         virtual DateTime GetDateTime(const int row);
00278         virtual StringPtr GetChar(const int row);
00279         virtual StringPtr GetVarchar(const int row);
00280         virtual Variant GetVariant(const int row);
00281 
00282 #if defined(DEBUG)
00283         virtual void CheckMem() const;
00284         virtual void ValidateMem() const;
00285 #endif
00286 };
00287 
00288 class Float64Column : public IColumn
00289 {
00290 protected:
00291         Vector<float64> m_data;
00292 
00293 public:
00294         Float64Column(const String& name);
00295         virtual ~Float64Column();
00296 
00297         virtual int Count() const;
00298         virtual int Type() const;
00299         virtual IColumn *Clone() const;
00300 
00301         virtual void Append( int8 i );
00302         virtual void Append( int16 i );
00303         virtual void Append( int32 i );
00304         virtual void Append( int64 i );
00305         virtual void Append( Decimal i );
00306         virtual void Append( float32 i );
00307         virtual void Append( float64 i );
00308         virtual void Append( bool i );
00309         virtual void Append( DateTime i );
00310         virtual void Append( Date i );
00311         virtual void Append( const String& str );
00312         virtual void AppendParse( const char * data, const int len);
00313         virtual void Append( void *data, int len );
00314         virtual void Append( IColumn *col, const int row );
00315         virtual void AppendNull(  );
00316 
00317         virtual int8 GetByte(const int row);
00318         virtual int16 GetInt16(const int row);
00319         virtual int32 GetInt32(const int row);
00320         virtual int64 GetInt64(const int row);
00321         virtual Decimal GetDecimal(const int row);
00322         virtual float32 GetFloat32(const int row);
00323         virtual float64 GetFloat64(const int row);
00324         virtual bool GetBit(const int row);
00325         virtual DateTime GetTimeStamp(const int row);
00326         virtual Date GetDate(const int row);
00327         virtual DateTime GetDateTime(const int row);
00328         virtual StringPtr GetChar(const int row);
00329         virtual StringPtr GetVarchar(const int row);
00330         virtual Variant GetVariant(const int row);
00331 
00332 #if defined(DEBUG)
00333         virtual void CheckMem() const;
00334         virtual void ValidateMem() const;
00335 #endif
00336 };
00337 
00338 class DecimalColumn : public IColumn
00339 {
00340 protected:
00341         Vector<Decimal> m_data;
00342 
00343 public:
00344         DecimalColumn(const String& name, const int maxlen);
00345         virtual ~DecimalColumn();
00346 
00347         virtual int Count() const;
00348         virtual int Type() const;
00349         virtual IColumn *Clone() const;
00350 
00351         virtual void Append( int8 i );
00352         virtual void Append( int16 i );
00353         virtual void Append( int32 i );
00354         virtual void Append( int64 i );
00355         virtual void Append( Decimal i );
00356         virtual void Append( float32 i );
00357         virtual void Append( float64 i );
00358         virtual void Append( bool i );
00359         virtual void Append( DateTime i );
00360         virtual void Append( Date i );
00361         virtual void Append( const String& str );
00362         virtual void AppendParse( const char * data, const int len);
00363         virtual void Append( void *data, int len );
00364         virtual void Append( IColumn *col, const int row );
00365         virtual void AppendNull(  );
00366 
00367         virtual int8 GetByte(const int row);
00368         virtual int16 GetInt16(const int row);
00369         virtual int32 GetInt32(const int row);
00370         virtual int64 GetInt64(const int row);
00371         virtual Decimal GetDecimal(const int row);
00372         virtual float32 GetFloat32(const int row);
00373         virtual float64 GetFloat64(const int row);
00374         virtual bool GetBit(const int row);
00375         virtual DateTime GetTimeStamp(const int row);
00376         virtual Date GetDate(const int row);
00377         virtual DateTime GetDateTime(const int row);
00378         virtual StringPtr GetChar(const int row);
00379         virtual StringPtr GetVarchar(const int row);
00380         virtual Variant GetVariant(const int row);
00381 
00382 #if defined(DEBUG)
00383         virtual void CheckMem() const;
00384         virtual void ValidateMem() const;
00385 #endif
00386 };
00387 
00388 class BitColumn : public IColumn
00389 {
00390 protected:
00391         Vector<bool> m_data;
00392 
00393 public:
00394         BitColumn(const String& name);
00395         virtual ~BitColumn();
00396 
00397         virtual int Count() const;
00398         virtual int Type() const;
00399         virtual IColumn *Clone() const;
00400 
00401         virtual void Append( int8 i );
00402         virtual void Append( int16 i );
00403         virtual void Append( int32 i );
00404         virtual void Append( int64 i );
00405         virtual void Append( Decimal i );
00406         virtual void Append( float32 i );
00407         virtual void Append( float64 i );
00408         virtual void Append( bool i );
00409         virtual void Append( DateTime i );
00410         virtual void Append( Date i );
00411         virtual void Append( const String& str );
00412         virtual void AppendParse( const char * data, const int len);
00413         virtual void Append( void *data, int len );
00414         virtual void Append( IColumn *col, const int row );
00415         virtual void AppendNull(  );
00416 
00417         virtual int8 GetByte(const int row);
00418         virtual int16 GetInt16(const int row);
00419         virtual int32 GetInt32(const int row);
00420         virtual int64 GetInt64(const int row);
00421         virtual Decimal GetDecimal(const int row);
00422         virtual float32 GetFloat32(const int row);
00423         virtual float64 GetFloat64(const int row);
00424         virtual bool GetBit(const int row);
00425         virtual DateTime GetTimeStamp(const int row);
00426         virtual Date GetDate(const int row);
00427         virtual DateTime GetDateTime(const int row);
00428         virtual StringPtr GetChar(const int row);
00429         virtual StringPtr GetVarchar(const int row);
00430         virtual Variant GetVariant(const int row);
00431 
00432 #if defined(DEBUG)
00433         virtual void CheckMem() const;
00434         virtual void ValidateMem() const;
00435 #endif
00436 };
00437 
00438 class TimeStampColumn : public IColumn
00439 {
00440 protected:
00441         Vector<DateTime> m_data;
00442 
00443 public:
00444         TimeStampColumn(const String& name);
00445         virtual ~TimeStampColumn();
00446 
00447         virtual int Count() const;
00448         virtual int Type() const;
00449         virtual IColumn *Clone() const;
00450 
00451         virtual void Append( int8 i );
00452         virtual void Append( int16 i );
00453         virtual void Append( int32 i );
00454         virtual void Append( int64 i );
00455         virtual void Append( Decimal i );
00456         virtual void Append( float32 i );
00457         virtual void Append( float64 i );
00458         virtual void Append( bool i );
00459         virtual void Append( DateTime i );
00460         virtual void Append( Date i );
00461         virtual void Append( const String& str );
00462         virtual void AppendParse( const char * data, const int len);
00463         virtual void Append( void *data, int len );
00464         virtual void Append( IColumn *col, const int row );
00465         virtual void AppendNull(  );
00466 
00467         virtual int8 GetByte(const int row);
00468         virtual int16 GetInt16(const int row);
00469         virtual int32 GetInt32(const int row);
00470         virtual int64 GetInt64(const int row);
00471         virtual Decimal GetDecimal(const int row);
00472         virtual float32 GetFloat32(const int row);
00473         virtual float64 GetFloat64(const int row);
00474         virtual bool GetBit(const int row);
00475         virtual DateTime GetTimeStamp(const int row);
00476         virtual Date GetDate(const int row);
00477         virtual DateTime GetDateTime(const int row);
00478         virtual StringPtr GetChar(const int row);
00479         virtual StringPtr GetVarchar(const int row);
00480         virtual Variant GetVariant(const int row);
00481 
00482 #if defined(DEBUG)
00483         virtual void CheckMem() const;
00484         virtual void ValidateMem() const;
00485 #endif
00486 };
00487 
00488 class DateColumn : public IColumn
00489 {
00490 protected:
00491         Vector<Date> m_data;
00492 
00493 public:
00494         DateColumn(const String& name);
00495         virtual ~DateColumn();
00496 
00497         virtual int Count() const;
00498         virtual int Type() const;
00499         virtual IColumn *Clone() const;
00500 
00501         virtual void Append( int8 i );
00502         virtual void Append( int16 i );
00503         virtual void Append( int32 i );
00504         virtual void Append( int64 i );
00505         virtual void Append( Decimal i );
00506         virtual void Append( float32 i );
00507         virtual void Append( float64 i );
00508         virtual void Append( bool i );
00509         virtual void Append( DateTime i );
00510         virtual void Append( Date i );
00511         virtual void Append( const String& str );
00512         virtual void AppendParse( const char * data, const int len);
00513         virtual void Append( void *data, int len );
00514         virtual void Append( IColumn *col, const int row );
00515         virtual void AppendNull(  );
00516 
00517         virtual int8 GetByte(const int row);
00518         virtual int16 GetInt16(const int row);
00519         virtual int32 GetInt32(const int row);
00520         virtual int64 GetInt64(const int row);
00521         virtual Decimal GetDecimal(const int row);
00522         virtual float32 GetFloat32(const int row);
00523         virtual float64 GetFloat64(const int row);
00524         virtual bool GetBit(const int row);
00525         virtual DateTime GetTimeStamp(const int row);
00526         virtual Date GetDate(const int row);
00527         virtual DateTime GetDateTime(const int row);
00528         virtual StringPtr GetChar(const int row);
00529         virtual StringPtr GetVarchar(const int row);
00530         virtual Variant GetVariant(const int row);
00531 
00532 #if defined(DEBUG)
00533         virtual void CheckMem() const;
00534         virtual void ValidateMem() const;
00535 #endif
00536 };
00537 
00538 class DateTimeColumn : public IColumn
00539 {
00540 protected:
00541         Vector<DateTime> m_data;
00542 
00543 public:
00544         DateTimeColumn(const String& name);
00545         virtual ~DateTimeColumn();
00546 
00547         virtual int Count() const;
00548         virtual int Type() const;
00549         virtual IColumn *Clone() const;
00550 
00551         virtual void Append( int8 i );
00552         virtual void Append( int16 i );
00553         virtual void Append( int32 i );
00554         virtual void Append( int64 i );
00555         virtual void Append( Decimal i );
00556         virtual void Append( float32 i );
00557         virtual void Append( float64 i );
00558         virtual void Append( bool i );
00559         virtual void Append( DateTime i );
00560         virtual void Append( Date i );
00561         virtual void Append( const String& str );
00562         virtual void AppendParse( const char * data, const int len);
00563         virtual void Append( void *data, int len );
00564         virtual void Append( IColumn *col, const int row );
00565         virtual void AppendNull(  );
00566 
00567         virtual int8 GetByte(const int row);
00568         virtual int16 GetInt16(const int row);
00569         virtual int32 GetInt32(const int row);
00570         virtual int64 GetInt64(const int row);
00571         virtual Decimal GetDecimal(const int row);
00572         virtual float32 GetFloat32(const int row);
00573         virtual float64 GetFloat64(const int row);
00574         virtual bool GetBit(const int row);
00575         virtual DateTime GetTimeStamp(const int row);
00576         virtual Date GetDate(const int row);
00577         virtual DateTime GetDateTime(const int row);
00578         virtual StringPtr GetChar(const int row);
00579         virtual StringPtr GetVarchar(const int row);
00580         virtual Variant GetVariant(const int row);
00581 
00582 #if defined(DEBUG)
00583         virtual void CheckMem() const;
00584         virtual void ValidateMem() const;
00585 #endif
00586 };
00587 
00588 struct chars255
00589 {
00590         char chars[255];
00591 };
00592 
00593 inline void ValidateType(chars255& uri)
00594 {
00595 }
00596 
00597 class CharColumn : public IColumn
00598 {
00599 protected:
00600         Vector<struct chars255> m_data;
00601 
00602 public:
00603         CharColumn(const String& name, const int maxlen);
00604         virtual ~CharColumn();
00605 
00606         virtual int Count() const;
00607         virtual int Type() const;
00608         virtual IColumn *Clone() const;
00609 
00610         virtual void Append( int8 i );
00611         virtual void Append( int16 i );
00612         virtual void Append( int32 i );
00613         virtual void Append( int64 i );
00614         virtual void Append( Decimal i );
00615         virtual void Append( float32 i );
00616         virtual void Append( float64 i );
00617         virtual void Append( bool i );
00618         virtual void Append( DateTime i );
00619         virtual void Append( Date i );
00620         virtual void Append( const String& str );
00621         virtual void AppendParse( const char * data, const int len);
00622         virtual void Append( void *data, int len );
00623         virtual void Append( IColumn *col, const int row );
00624         virtual void AppendNull(  );
00625 
00626         virtual int8 GetByte(const int row);
00627         virtual int16 GetInt16(const int row);
00628         virtual int32 GetInt32(const int row);
00629         virtual int64 GetInt64(const int row);
00630         virtual Decimal GetDecimal(const int row);
00631         virtual float32 GetFloat32(const int row);
00632         virtual float64 GetFloat64(const int row);
00633         virtual bool GetBit(const int row);
00634         virtual DateTime GetTimeStamp(const int row);
00635         virtual Date GetDate(const int row);
00636         virtual DateTime GetDateTime(const int row);
00637         virtual StringPtr GetChar(const int row);
00638         virtual StringPtr GetVarchar(const int row);
00639         virtual Variant GetVariant(const int row);
00640 
00641 #if defined(DEBUG)
00642         virtual void CheckMem() const;
00643         virtual void ValidateMem() const;
00644 #endif
00645 };
00646 
00647 class VarCharColumn : public IColumn
00648 {
00649 protected:
00650         Vector<StringPtr> m_data;
00651 
00652 public:
00653         VarCharColumn(const String& name, const int maxlen);
00654         virtual ~VarCharColumn();
00655 
00656         virtual int Count() const;
00657         virtual int Type() const;
00658         virtual IColumn *Clone() const;
00659 
00660         virtual void Append( int8 i );
00661         virtual void Append( int16 i );
00662         virtual void Append( int32 i );
00663         virtual void Append( int64 i );
00664         virtual void Append( Decimal i );
00665         virtual void Append( float32 i );
00666         virtual void Append( float64 i );
00667         virtual void Append( bool i );
00668         virtual void Append( DateTime i );
00669         virtual void Append( Date i );
00670         virtual void Append( const String& str );
00671         virtual void AppendParse( const char * data, const int len);
00672         virtual void Append( void *data, int len );
00673         virtual void Append( IColumn *col, const int row );
00674         virtual void AppendNull(  );
00675 
00676         virtual int8 GetByte(const int row);
00677         virtual int16 GetInt16(const int row);
00678         virtual int32 GetInt32(const int row);
00679         virtual int64 GetInt64(const int row);
00680         virtual Decimal GetDecimal(const int row);
00681         virtual float32 GetFloat32(const int row);
00682         virtual float64 GetFloat64(const int row);
00683         virtual bool GetBit(const int row);
00684         virtual DateTime GetTimeStamp(const int row);
00685         virtual Date GetDate(const int row);
00686         virtual DateTime GetDateTime(const int row);
00687         virtual StringPtr GetChar(const int row);
00688         virtual StringPtr GetVarchar(const int row);
00689         virtual Variant GetVariant(const int row);
00690 
00691 #if defined(DEBUG)
00692         virtual void CheckMem() const;
00693         virtual void ValidateMem() const;
00694 #endif
00695 };
00696 
00699 #endif