Changeset 183

Show
Ignore:
Timestamp:
09/03/08 11:52:20 (4 months ago)
Author:
zork
Message:

merged odbc fix from trunk

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/debea_1_2/dba/dba/odbc.cpp

    r117 r183  
    741741 
    742742OdbcResult::~OdbcResult() { 
     743  delete[] mColumns; 
    743744} 
    744745 
     
    791792}; 
    792793 
     794OdbcResult::ColumnData::ColumnData() 
     795: mNull(true), 
     796  mCharBuf(0), 
     797  mCharPtr(0), 
     798  mDataSize(0), 
     799  mBufCapacity(0), 
     800  mCType(SQL_UNKNOWN_TYPE) 
     801{ 
     802} 
     803 
    793804void  
    794805OdbcResult::ColumnData::init() { 
     806  //free old data 
     807  cleanup(); 
    795808  //prepare variant for data retrieval 
    796809  //assuming that for variable sized columns 
     
    903916}; 
    904917 
     918void  
     919OdbcResult::ColumnData::cleanup() { 
     920  if (SQL_C_WCHAR == mCType || SQL_C_CHAR == mCType) { 
     921    delete [] mCharBuf; 
     922    mCharBuf = 0; 
     923    mCType = SQL_UNKNOWN_TYPE; 
     924    mCharPtr = 0; 
     925  } 
     926} 
     927 
    905928void 
    906929OdbcResult::ColumnData::decrementEndDataPtr() { 
     
    954977}; 
    955978 
    956  
    957979OdbcResult::ColumnData::~ColumnData() { 
    958   delete [] mCharPtr
     980  cleanup()
    959981}; 
    960982 
    961983OdbcResult::OdbcResult(OdbcConnection* pConn, HSTMT pHstmt)  
    962   : mHstmt(pHstmt) 
     984  : mHstmt(pHstmt), 
     985    mColumns(0) 
    963986{ 
    964987  setParentErrorHandler(pConn); 
  • branches/debea_1_2/dba/dba/odbc.h

    r88 r183  
    148148    class ColumnData { 
    149149      public: 
    150         ColumnData() {}
     150        ColumnData()
    151151        /** 
    152152          Get pointer to first byte of retrieved data 
     
    214214        ColumnData(const ColumnData&); 
    215215        ColumnData& ColumnData::operator=(const ColumnData&); 
     216        /** 
     217        Remove all previously assigned data 
     218        */ 
     219        void cleanup(); 
    216220        /** 
    217221          Row data. Variant used depends on mColumn.getOdbcType