Added:
MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRec.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h
Removed:
MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h
Modified:
MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h
MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj
MYODBCDes/MYODBCDesTest/MYODBCDesTest.vpj
MYODBCDes/include/MYODBCDes.h
MYODBCDes/include/MYODBCDesAPD.h
MYODBCDes/include/MYODBCDesARD.h
MYODBCDes/include/MYODBCDesIPD.h
MYODBCDes/include/MYODBCDesIRD.h
Log:
UNICODE:
- more work on making descriptors unicode enabled and objectified (not done yet)
Modified: MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDes.cpp 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDes.cpp 2006-01-03 08:52:27 UTC (rev 25)
@@ -43,22 +43,8 @@
nBindType = SQL_BIND_BY_COLUMN;
pnRowsProcessedPtr = NULL;
- /* add bookmark record at index 0 */
- /*
- \internal ODBC Rule
+ /* derived classes must create bookmark ass needed */
- When ColumnNumber is equal to 0 (for a bookmark column),
- SQL_BINARY is returned in *DataTypePtr for variable-length
- bookmarks. (SQL_INTEGER is returned if bookmarks are used
- by an ODBC 3.x application working with an ODBC 2.x driver
- or by an ODBC 2.x application working with an ODBC 3.x
- driver.)
- */
- pdesrecord = new MYODBCDesRecord( this );
- pdesrecord->nConciseType = SQL_BINARY;
- pdesrecord->nType = SQL_BINARY;
- pdesrecord->nDatetimeIntervalCode = 0;
-
/* associate with our owner (caller needs to add us to hOwner's list of descriptors)
*/
this->hOwner = hOwner;
@@ -130,51 +116,6 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-/*!
- \brief Expands or shrinks list of records.
-
- Expands or shrinks list of records while trying to account for some
- rules stated in the ODBC spec in regard to maintaining the records list.
-
- \param pDes any type of descriptor
- \param nCount the desired value for SQL_DESC_COUNT (0-n), records appended
- or truncated as needed
- \param bUnbind - True - is ok to truncate records which are bound
- - False - never truncate a bound record (in this case num-recs
- could be > count)
- \return MYODBC_C_BOOL
-
- \retval MYODBC_C_TRUE success (its possible to have success but count <
- SQL_DESC_COUNT)
- \retval MYODBC_C_FALSE failed
-*/
-SQLRETURN MYODBCDes::setCount( SQLSMALLINT nCount )
-{
- MYODBCDbgEnter();
-
- /* We should always have a bookmark record at index 0. */
- if ( nCount < 0 )
- return false;
-
- /* append */
- while ( nCount > listRecords.count() )
- {
- new MYODBCDesRecord( this );
- }
-
- /* truncate */
- while ( listRecords.count() > nCount )
- {
- /* do not delete bound records */
- if ( listRecords.last()->getDataPtr() )
- break;
-
- delete listRecords.last();
- }
-
- MYODBCDbgReturn( SQL_SUCCESS );
-}
-
SQLRETURN MYODBCDes::setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr )
{
MYODBCDbgEnter();
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp 2006-01-03 08:52:27 UTC (rev 25)
@@ -3,23 +3,238 @@
MYODBCDesAPD::MYODBCDesAPD( SQLHANDLE hOwner )
{
nTypeSubID = MYODBC_RTTI_DES_APD;
+
+ /* add bookmark record at index 0 */
+ /*
+ \internal ODBC Rule
+
+ When ColumnNumber is equal to 0 (for a bookmark column),
+ SQL_BINARY is returned in *DataTypePtr for variable-length
+ bookmarks. (SQL_INTEGER is returned if bookmarks are used
+ by an ODBC 3.x application working with an ODBC 2.x driver
+ or by an ODBC 2.x application working with an ODBC 3.x
+ driver.)
+ */
+ pdesrecord = new MYODBCResRecAPD( this );
+ pdesrecord->nConciseType = SQL_BINARY;
+ pdesrecord->nType = SQL_BINARY;
+ pdesrecord->nDatetimeIntervalCode = 0;
}
-SQLRETURN MYODBCDesAPD::setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr )
+SQLRETURN MYODBCDesAPD::setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType,
SQLSMALLINT nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale,
SQLPOINTER pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr )
{
- if ( pdia )
- pdia->doAppend( MYODBC_DIA_01000, 0, tr("Setting SQL_DESC_ROWS_PROCESSED_PTR
is not relevant in this context.") );
+ MYODBCDbgEnter();
- this->pnRowsProcessedPtr = pnRowsProcessedPtr;
+ /*
+ \internal ODBC Rule
- return SQL_SUCCESS_WITH_INFO;
+ This argument must be equal to or greater than 0.
+ */
+ if ( nRecNumber < 0 )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
+ /*
+ \internal ODBC Rule
+
+ The RecNumber argument was greater than the maximum number of columns
+ or parameters that the data source can support, and the DescriptorHandle
+ argument was an APD, IPD, or ARD.
+ */
+
+ /* do nothing: we have not max so ignore this rule */
+
+ /*
+ \internal ODBC Rule
+
+ The RecNumber argument was equal to 0, and the DescriptorHandle argument
+ referred to an implicitly allocated APD. (This error does not occur with
+ an explicitly allocated application descriptor because it is not known
+ whether an explicitly allocated application descriptor is an APD or ARD
+ until execute time.)
+ */
+ if ( nRecNumber == 0 getAllocType() == SQL_DESC_ALLOC_AUTO )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
+ /*
+ Append record as needed to make nRecNumber valid.
+ */
+ if ( nRecNumber >= getCount() )
+ {
+ nReturn = setCount( nRecNumber, true );
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ MYODBCDbgReturn( nReturn );
+ }
+
+ /* set record */
+ MYODBCDbgReturn( listRecords[nRecord]->setDescRec( nType, nSubType, nLength,
nPrecision, nScale, pDataPtr, pnStringLengthPtr, pnIndicatorPtr );
}
-SQLUINTEGER *MYODBCDesAPD::getRowsProcessedPtr()
+SQLRETURN MYODBCDesAPD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
{
- if ( pdia )
- pdia->doAppend( MYODBC_DIA_01000, 0, tr("Getting SQL_DESC_ROWS_PROCESSED_PTR
is not relevant in this context.") );
+ MYODBCDbgEnter();
- return pnRowsProcessedPtr;
+ /* header field? */
+ switch ( nFieldIdentifier )
+ {
+ case SQL_DESC_ALLOC_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R
+ APD: R
+ IRD: R
+ IPD: R
+ */
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+
+ case SQL_DESC_ARRAY_SIZE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ APD: R/W
+ IRD: Unused
+ IPD: Unused
+ */
+ MYODBCDbgReturn( setArraySize( (SQLUINTEGER)pValuePtr ) );
+
+ case SQL_DESC_ARRAY_STATUS_PTR:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ APD: R/W
+ IRD: R/W
+ IPD: R/W
+ */
+ MYODBCDbgReturn( setArrayStatusPtr( (SQLUSMALLINT*)pValuePtr ) );
+
+ case SQL_DESC_BIND_OFFSET_PTR:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ APD: R/W
+ IRD: Unused
+ IPD: Unused
+ */
+ MYODBCDbgReturn( setBindOffsetPtr( (SQLUINTEGER*)pValuePtr ) );
+
+ case SQL_DESC_BIND_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ APD: R/W
+ IRD: Unused
+ IPD: Unused
+ */
+
+ /*
+ An SQLUINTEGER value that sets the binding orientation to be used when
+ SQLFetch or SQLFetchScroll is called on the associated statement.
+ Column-wise binding is selected by setting the value
+ to SQL_BIND_BY_COLUMN (0). Row-wise binding is selected by setting the
+ value to the length of a structure or an instance of a buffer into
+ which result columns will be bound.
+ */
+
+ /*!
+ \internal MYODBC Rule
+
+ Sanity check. Value must >=0
+ */
+ if ( (SQLINTEGER)pValuePtr < 0 )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY000, 0, "Value must be >=
0." ) );
+
+ MYODBCDbgReturn( setBindType( (SQLINTEGER)pValuePtr) );
+
+ case SQL_DESC_COUNT:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ APD: R/W
+ IRD: R
+ IPD: R/W
+ */
+ /*!
+ \internal ODBC Rule
+
+ The FieldIdentifier argument was SQL_DESC_COUNT, and *ValuePtr argument
was
+ less than 0.
+ */
+ if ( (SQLINTEGER)pValuePtr < 0 )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY000, 0, "Set SQL_DESC_COUNT
failed. Value must be >=0." ) );
+
+ /* expand/shrink record list; free, even, bound records as needed */
+ MYODBCDbgReturn( setCount( (SQLINTEGER)pValuePtr, true ) );
+
+ case SQL_DESC_ROWS_PROCESSED_PTR:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ APD: Unused
+ IRD: R/W
+ IPD: R/W
+ */
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ } /* switch (for header fields) */
+
+ /* record field needs a valid record */
+ if ( nRecord < 0 || nRecord >= listRecords.count() )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
+ /* handle as record field */
+ MYODBCDbgReturn( listRecords[nRecord]->setDescField( nFieldIdentifier, pValuePtr,
nBufferLength ) );
}
+
+
+/*!
+ \brief Expands or shrinks list of records.
+
+ Expands or shrinks list of records while trying to account for some
+ rules stated in the ODBC spec in regard to maintaining the records list.
+
+ \param pDes any type of descriptor
+ \param nCount the desired value for SQL_DESC_COUNT (0-n), records appended
+ or truncated as needed
+ \param bUnbind - True - is ok to truncate records which are bound
+ - False - never truncate a bound record (in this case num-recs
+ could be > count)
+ \return MYODBC_C_BOOL
+
+ \retval MYODBC_C_TRUE success (its possible to have success but count <
+ SQL_DESC_COUNT)
+ \retval MYODBC_C_FALSE failed
+*/
+SQLRETURN MYODBCDesAPD::setCount( SQLSMALLINT nCount, bool bUnbind )
+{
+ MYODBCDbgEnter();
+
+ /* We should always have a bookmark record at index 0. */
+ if ( nCount < 0 )
+ MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+
+ /* append */
+ while ( nCount > listRecords.count() )
+ {
+ new MYODBCResRecAPD( this );
+ }
+
+ /* truncate */
+ while ( listRecords.count() > nCount )
+ {
+ /* do not delete bound records */
+ if ( listRecords.last()->getDataPtr() )
+ break;
+
+ delete listRecords.last();
+ }
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -2,13 +2,11 @@
#define MYODBC_DES_INTERNAL_H
#include "../include/MYODBCDes.h"
-#include "MYODBCDesRecordAPD.h"
-#include "MYODBCDesRecordARD.h"
-#include "MYODBCDesRecordIPD.h"
-#include "MYODBCDesRecordIRD.h"
+#include "MYODBCDesRecAPD.h"
+#include "MYODBCDesRecARD.h"
+#include "MYODBCDesRecIPD.h"
+#include "MYODBCDesRecIRD.h"
-
-
#endif
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj 2006-01-03 08:52:27 UTC (rev 25)
@@ -195,6 +195,7 @@
<F N="MYODBCDesIPD.cpp"/>
<F N="MYODBCDesIRD.cpp"/>
<F N="MYODBCDesMorph.c"/>
+ <F N="MYODBCDesRec.cpp"/>
<F N="MYODBCDesRecAlloc.c"/>
<F N="MYODBCDesRecAllocExt.c"/>
<F N="MYODBCDesRecClear.c"/>
@@ -209,7 +210,6 @@
<F N="MYODBCDesRecIrdInteger.c"/>
<F N="MYODBCDesRecIrdSmallInt.c"/>
<F N="MYODBCDesRecIrdVarChar.c"/>
- <F N="MYODBCDesRecord.cpp"/>
<F N="MYODBCDesRecSetFreeExtra.c"/>
<F N="MYODBCDesRecsFree.c"/>
<F N="MYODBCDesRecType.c"/>
@@ -222,7 +222,11 @@
Name="Header Files"
Filters="*.h;*.H;*.hh;*.hpp;*.hxx;*.inc;*.sh;*.cpy;*.if">
<F N="MYODBCDesInternal.h"/>
- <F N="MYODBCDesRecord.h"/>
+ <F N="MYODBCDesRec.h"/>
+ <F N="MYODBCDesRecAPD.h"/>
+ <F N="MYODBCDesRecARD.h"/>
+ <F N="MYODBCDesRecIPD.h"/>
+ <F N="MYODBCDesRecIRD.h"/>
</Folder>
<Folder
Name="Resource Files"
Copied: MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp (from rev 24,
MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp)
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,628 @@
+#include "MYODBCDesInternal.h"
+
+/*!
+ \brief Allocate a descriptor record.
+
+ Allocate a descriptor record. This may include some initialization
+ based upon the type requested.
+
+ \param nType Descriptor type.
+
+ \return MYODBC_DES_REC_PTR
+
+ \sa MYODBCDesRecFree
+*/
+MYODBCResRec::MYODBCResRec( MYODBCDes *pdes )
+{
+ MYODBCDbgEnter();
+
+ Q_ASSERT( !pdes );
+
+ pdes->listRecords.append( this );
+
+ MYODBCDbgReturn2();
+}
+
+/*!
+ \brief Frees all resources used by record.
+
+ Removes the nRecord from pDess array of records and
+ then frees the resources used by the record including the
+ record itself.
+
+ \param pDes A viable MYODBC_DES_PTR.
+ \param nRecord 0 based
+
+ \return void
+
+ \sa MYODBCDesRecAllocExt
+*/
+MYODBCResRec::~MYODBCResRec()
+{
+ MYODBCDbgEnter();
+
+ pdes->listRecords.removeAll( this );
+
+ MYODBCDbgReturn2();
+}
+
+SQLRETURN MYODBCResRec::setAutoUniqueValue( SQLINTEGER nAutoUniqueValue )
+{
+ MYODBCDbgEnter();
+
+ this->nAutoUniqueValue = nAutoUniqueValue;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setBaseColumnName( const QString &stringBaseColumnName )
+{
+ MYODBCDbgEnter();
+
+ this->stringBaseColumnName = stringBaseColumnName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setBaseTableName( const QString &stringBaseTableName )
+{
+ MYODBCDbgEnter();
+
+ this->stringBaseTableName = stringBaseTableName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setCaseSensitive( SQLINTEGER nCaseSensitive )
+{
+ MYODBCDbgEnter();
+
+ this->nCaseSensitive = nCaseSensitive;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setCatalogName( const QString &stringCatalogName )
+{
+ MYODBCDbgEnter();
+
+ this->stringCatalogName = stringCatalogName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setConciseType( SQLSMALLINT nConciseType )
+{
+ MYODBCDbgEnter();
+
+ this->nConciseType = nConciseType;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setDataPtr( SQLPOINTER pDataPtr )
+{
+ MYODBCDbgEnter();
+
+ this->pDataPtr = pDataPtr;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode )
+{
+ MYODBCDbgEnter();
+
+ this->nDatetimeIntervalCode = nDatetimeIntervalCode;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setDatetimeIntervalPrecision( SQLINTEGER
nDatetimeIntervalPrecision )
+{
+ MYODBCDbgEnter();
+
+ this->nDatetimeIntervalPrecision = nDatetimeIntervalPrecision;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setDisplaySize( SQLINTEGER nDisplaySize )
+{
+ MYODBCDbgEnter();
+
+ this->nDisplaySize = nDisplaySize;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setFixedPrecScale( SQLSMALLINT nFixedPrecScale )
+{
+ MYODBCDbgEnter();
+
+ this->nFixedPrecScale = nFixedPrecScale;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setIndicatorPtr( SQLINTEGER *pnIndicatorPtr )
+{
+ MYODBCDbgEnter();
+
+ this->pnIndicatorPtr = pnIndicatorPtr;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setLabel( const QString &stringLabel )
+{
+ MYODBCDbgEnter();
+
+ this->stringLabel = stringLabel;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setLength( SQLUINTEGER nLength )
+{
+ MYODBCDbgEnter();
+
+ this->nLength = nLength;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setLiteralPrefix( const QString &stringLiteralPrefix )
+{
+ MYODBCDbgEnter();
+
+ this->stringLiteralPrefix = stringLiteralPrefix;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setLiteralSuffix( const QString &stringLiteralSuffix )
+{
+ MYODBCDbgEnter();
+
+ this->stringLiteralSuffix = stringLiteralSuffix;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setLocalTypeName( const QString &stringLocalTypeName )
+{
+ MYODBCDbgEnter();
+
+ this->stringLocalTypeName = stringLocalTypeName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setName( const QString &stringName )
+{
+ MYODBCDbgEnter();
+
+ this->stringName = stringName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setNullable( SQLSMALLINT nNullable )
+{
+ MYODBCDbgEnter();
+
+ this->nNullable = nNullable;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setNumPrecRadix( SQLINTEGER nNumPrecRadix )
+{
+ MYODBCDbgEnter();
+
+ this->nNumPrecRadix = nNumPrecRadix;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setOctetLength( SQLINTEGER nOctetLength )
+{
+ MYODBCDbgEnter();
+
+ this->nOctetLength = nOctetLength;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr )
+{
+ MYODBCDbgEnter();
+
+ this->pnOctetLengthPtr = pnOctetLengthPtr;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setParamterType( SQLSMALLINT nParamterType )
+{
+ MYODBCDbgEnter();
+
+ this->nParamterType = nParamterType;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setPrecision( SQLSMALLINT nPrecision )
+{
+ MYODBCDbgEnter();
+
+ this->nPrecision = nPrecision;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setRowver( SQLSMALLINT nRowver )
+{
+ MYODBCDbgEnter();
+
+ this->nRowver = nRowver;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setScale( SQLSMALLINT nScale )
+{
+ MYODBCDbgEnter();
+
+ this->nScale = nScale;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setSchemaName( const QString &stringSchemaName )
+{
+ MYODBCDbgEnter();
+
+ this->stringSchemaName = stringSchemaName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setSearchable( SQLSMALLINT nSearchable )
+{
+ MYODBCDbgEnter();
+
+ this->nSearchable = nSearchable;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setTableName( const QString &stringTableName )
+{
+ MYODBCDbgEnter();
+
+ this->stringTableName = stringTableName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setType( SQLSMALLINT nType )
+{
+ MYODBCDbgEnter();
+
+ this->nType = nType;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setTypeName( const QString &stringTypeName )
+{
+ MYODBCDbgEnter();
+
+ this->stringTypeName = stringTypeName;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setUnnamed( SQLSMALLINT nUnnamed )
+{
+ MYODBCDbgEnter();
+
+ this->nUnnamed = nUnnamed;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setUnsigned( SQLSMALLINT nUnsigned )
+{
+ MYODBCDbgEnter();
+
+ this->nUnsigned = nUnsigned;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLRETURN MYODBCResRec::setUpdatable( SQLSMALLINT nUpdatable )
+{
+ MYODBCDbgEnter();
+
+ this->nUpdatable = nUpdatable;
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
+SQLINTEGER MYODBCResRec::getAutoUniqueValue()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nAutoUniqueValue );
+}
+
+QString MYODBCResRec::getBaseColumnName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringBaseColumnName );
+}
+
+QString MYODBCResRec::getBaseTableName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringBaseTableName );
+}
+
+SQLINTEGER MYODBCResRec::getCaseSensitive()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nCaseSensitive );
+}
+
+QString MYODBCResRec::getCatalogName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringCatalogName );
+}
+
+SQLSMALLINT MYODBCResRec::getConciseType()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nConciseType );
+}
+
+SQLPOINTER MYODBCResRec::getDataPtr()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( pDataPtr );
+}
+
+SQLSMALLINT MYODBCResRec::getDatetimeIntervalCode()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nDatetimeIntervalCode );
+}
+
+SQLINTEGER MYODBCResRec::getDatetimeIntervalPrecision()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nDatetimeIntervalPrecision );
+}
+
+SQLINTEGER MYODBCResRec::getDisplaySize()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nDisplaySize );
+}
+
+SQLSMALLINT MYODBCResRec::getFixedPrecScale()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nFixedPrecScale );
+}
+
+SQLINTEGER *MYODBCResRec::getIndicatorPtr()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( pnIndicatorPtr );
+}
+
+QString MYODBCResRec::getLabel()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringLabel );
+}
+
+SQLUINTEGER MYODBCResRec::getLength()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nLength );
+}
+
+QString MYODBCResRec::getLiteralPrefix()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringLiteralPrefix );
+}
+
+QString MYODBCResRec::getLiteralSuffix()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringLiteralSuffix );
+}
+
+QString MYODBCResRec::getLocalTypeName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringLocalTypeName );
+}
+
+QString MYODBCResRec::getName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringName );
+}
+
+SQLSMALLINT MYODBCResRec::getNullable()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nNullable );
+}
+
+SQLINTEGER MYODBCResRec::getNumPrecRadix()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nNumPrecRadix );
+}
+
+SQLINTEGER MYODBCResRec::getOctetLength()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nOctetLength );
+}
+
+SQLINTEGER *MYODBCResRec::getOctetLengthPtr()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( pnOctetLengthPtr );
+}
+
+SQLSMALLINT MYODBCResRec::getParamterType()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nParamterType );
+}
+
+SQLSMALLINT MYODBCResRec::getPrecision()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nPrecision );
+}
+
+SQLSMALLINT MYODBCResRec::getRowver()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nRowver );
+}
+
+SQLSMALLINT MYODBCResRec::getScale()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nScale );
+}
+
+QString MYODBCResRec::getSchemaName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringSchemaName );
+}
+
+SQLSMALLINT MYODBCResRec::getSearchable()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nSearchable );
+}
+
+QString MYODBCResRec::getTableName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringTableName );
+}
+
+SQLSMALLINT MYODBCResRec::getType()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nType );
+}
+
+QString MYODBCResRec::getTypeName()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( stringTypeName );
+}
+
+SQLSMALLINT MYODBCResRec::getUnnamed()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nUnnamed );
+}
+
+SQLSMALLINT MYODBCResRec::getUnsigned()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nUnsigned );
+}
+
+SQLSMALLINT MYODBCResRec::getUpdatable()
+{
+ MYODBCDbgEnter();
+
+ MYODBCDbgReturn3( nUpdatable );
+}
+
+
+SQLRETURN MYODBCResRec::setIntervalCode( SQLSMALLINT nDateTimeIntervalCode )
+{
+ MYODBCDbgEnter();
+
+ /*
+ \internal ODBC Rule
+
+ This SQLSMALLINT record field contains the subcode for the specific datetime
+ or interval data type when the SQL_DESC_TYPE field is SQL_DATETIME or
+ SQL_INTERVAL.
+ */
+ if ( getType() != SQL_DATETIME && getType() != SQL_INTERVAL )
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY092, 0, NULL ) );
+
+ switch ( nDateTimeIntervalCode )
+ {
+ case SQL_CODE_YEAR: /* = 1 = SQL_CODE_DATE */
+ case SQL_CODE_MONTH: /* = 2 = SQL_CODE_TIME */
+ case SQL_CODE_DAY: /* = 3 = SQL_CODE_TIMESTAMP */
+ case SQL_CODE_HOUR:
+ case SQL_CODE_MINUTE:
+ case SQL_CODE_SECOND:
+ case SQL_CODE_YEAR_TO_MONTH:
+ case SQL_CODE_DAY_TO_HOUR:
+ case SQL_CODE_DAY_TO_MINUTE:
+ case SQL_CODE_DAY_TO_SECOND:
+ case SQL_CODE_HOUR_TO_MINUTE:
+ case SQL_CODE_HOUR_TO_SECOND:
+ case SQL_CODE_MINUTE_TO_SECOND:
+ MYODBCDbgReturn( setDatetimeIntervalCode( nDateTimeIntervalCode ) );
+ }
+
+ return MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY092, 0, NULL ) );
+}
+
Copied: MYODBCDes/MYODBCDesLib/MYODBCDesRec.h (from rev 24,
MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h)
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRec.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,162 @@
+#ifndef MYODBC_DES_REC_H
+#define MYODBC_DES_REC_H
+
+/*!
+ \brief Descriptor records represent different things depending
+ upon the type of descriptor;
+
+ APD - one record for each buffer bound to a paramter marker
+ IPD - one record for each paramter marker
+ ARD - one record for each buffer bound to a column
+ IRD - one record for each column
+
+ This structure reflects *all* fields given in the ODBC
+ specification. However; some fields may be calculated or
+ not used when part of a particular descriptor type.
+
+ In particular; the read-only fields can, in some cases, be
+ optimized away.
+
+ All fields are included for completeness and to help make
+ the code more understandable. Any storage which can be
+ optimized away would be very minimal so please leave all.
+
+ \sa MYODBC_DES
+*/
+
+/* forward declare */
+class MYODBCDes;
+
+class MYODBCResRec
+{
+public:
+ MYODBCResRec( MYODBCDes *pdes );
+ ~MYODBCResRec();
+
+ /* setters */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr ) = 0;
+ virtual SQLRETURN setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength ) = 0;
+
+ virtual SQLRETURN setAutoUniqueValue( SQLINTEGER nAutoUniqueValue );
+ virtual SQLRETURN setBaseColumnName( const QString &stringBaseColumnName );
+ virtual SQLRETURN setBaseTableName( const QString &stringBaseTableName );
+ virtual SQLRETURN setCaseSensitive( SQLINTEGER nCaseSensitive );
+ virtual SQLRETURN setCatalogName( const QString &stringCatalogName );
+ virtual SQLRETURN setConciseType( SQLSMALLINT nConciseType );
+ virtual SQLRETURN setDataPtr( SQLPOINTER pDataPtr );
+ virtual SQLRETURN setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode );
+ virtual SQLRETURN setDatetimeIntervalPrecision( SQLINTEGER nDatetimeIntervalPrecision
);
+ virtual SQLRETURN setDisplaySize( SQLINTEGER nDisplaySize );
+ virtual SQLRETURN setFixedPrecScale( SQLSMALLINT nFixedPrecScale );
+ virtual SQLRETURN setIndicatorPtr( SQLINTEGER *pnIndicatorPtr );
+ virtual SQLRETURN setLabel( const QString &stringLabel );
+ virtual SQLRETURN setLength( SQLUINTEGER nLength );
+ virtual SQLRETURN setLiteralPrefix( const QString &stringLiteralPrefix );
+ virtual SQLRETURN setLiteralSuffix( const QString &stringLiteralSuffix );
+ virtual SQLRETURN setLocalTypeName( const QString &stringLocalTypeName );
+ virtual SQLRETURN setName( const QString &stringName );
+ virtual SQLRETURN setNullable( SQLSMALLINT nNullable );
+ virtual SQLRETURN setNumPrecRadix( SQLINTEGER nNumPrecRadix );
+ virtual SQLRETURN setOctetLength( SQLINTEGER nOctetLength );
+ virtual SQLRETURN setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr );
+ virtual SQLRETURN setParamterType( SQLSMALLINT nParamterType );
+ virtual SQLRETURN setPrecision( SQLSMALLINT nPrecision );
+ virtual SQLRETURN setRowver( SQLSMALLINT nRowver );
+ virtual SQLRETURN setScale( SQLSMALLINT nScale );
+ virtual SQLRETURN setSchemaName( const QString &stringSchemaName );
+ virtual SQLRETURN setSearchable( SQLSMALLINT nSearchable );
+ virtual SQLRETURN setTableName( const QString &stringTableName );
+ virtual SQLRETURN setType( SQLSMALLINT nType );
+ virtual SQLRETURN setTypeName( const QString &stringTypeName );
+ virtual SQLRETURN setUnnamed( SQLSMALLINT nUnnamed );
+ virtual SQLRETURN setUnsigned( SQLSMALLINT nUnsigned );
+ virtual SQLRETURN setUpdatable( SQLSMALLINT nUpdatable );
+
+ /* getters */
+
+ /* ODBC validated */
+ virtual SQLRETURN getDescRec( SQLCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr ) = 0;
+ virtual SQLRETURN getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr ) = 0;
+
+ /* record fields */
+ virtual SQLINTEGER getAutoUniqueValue();
+ virtual QString getBaseColumnName();
+ virtual QString getBaseTableName();
+ virtual SQLINTEGER getCaseSensitive();
+ virtual QString getCatalogName();
+ virtual SQLSMALLINT getConciseType();
+ virtual SQLPOINTER getDataPtr();
+ virtual SQLSMALLINT getDatetimeIntervalCode();
+ virtual SQLINTEGER getDatetimeIntervalPrecision();
+ virtual SQLINTEGER getDisplaySize();
+ virtual SQLSMALLINT getFixedPrecScale();
+ virtual SQLINTEGER *getIndicatorPtr();
+ virtual QString getLabel();
+ virtual SQLUINTEGER getLength();
+ virtual QString getLiteralPrefix();
+ virtual QString getLiteralSuffix();
+ virtual QString getLocalTypeName();
+ virtual QString getName();
+ virtual SQLSMALLINT getNullable();
+ virtual SQLINTEGER getNumPrecRadix();
+ virtual SQLINTEGER getOctetLength();
+ virtual SQLINTEGER *getOctetLengthPtr();
+ virtual SQLSMALLINT getParamterType();
+ virtual SQLSMALLINT getPrecision();
+ virtual SQLSMALLINT getRowver();
+ virtual SQLSMALLINT getScale();
+ virtual QString getSchemaName();
+ virtual SQLSMALLINT getSearchable();
+ virtual QString getTableName();
+ virtual SQLSMALLINT getType();
+ virtual QString getTypeName();
+ virtual SQLSMALLINT getUnnamed();
+ virtual SQLSMALLINT getUnsigned();
+ virtual SQLSMALLINT getUpdatable();
+
+protected:
+ MYODBCDes * pdes; /* parent & owner */
+
+ /* some of these 'fields' will be calculated and not stored in the future */
+ /* these 'fields' are named as per odbc spec to make xref easier */
+ SQLINTEGER nAutoUniqueValue;
+ QString stringBaseColumnName;
+ QString stringBaseTableName;
+ SQLINTEGER nCaseSensitive;
+ QString stringCatalogName;
+ SQLSMALLINT nConciseType;
+ SQLPOINTER pDataPtr; /*!< IF null THEN unbound ELSE bound
*/
+ SQLSMALLINT nDatetimeIntervalCode;
+ SQLINTEGER nDatetimeIntervalPrecision;
+ SQLINTEGER nDisplaySize; /*! calculated? */
+ SQLSMALLINT nFixedPrecScale;
+ SQLINTEGER *pnIndicatorPtr;
+ QString stringLabel;
+ SQLUINTEGER nLength;
+ QString stringLiteralPrefix;
+ QString stringLiteralSuffix;
+ QString stringLocalTypeName;
+ QString stringName;
+ SQLSMALLINT nNullable;
+ SQLINTEGER nNumPrecRadix;
+ SQLINTEGER nOctetLength;
+ SQLINTEGER *pnOctetLengthPtr;
+ SQLSMALLINT nParamterType;
+ SQLSMALLINT nPrecision;
+ SQLSMALLINT nRowver;
+ SQLSMALLINT nScale;
+ QString stringSchemaName;
+ SQLSMALLINT nSearchable;
+ QString stringTableName;
+ SQLSMALLINT nType;
+ QString stringTypeName;
+ SQLSMALLINT nUnnamed;
+ SQLSMALLINT nUnsigned;
+ SQLSMALLINT nUpdatable;
+
+ /* supports setDescRec and/or setDescField */
+ virtual SQLRETURN setIntervalCode( SQLSMALLINT nDateTimeIntervalCode );
+};
+
+#endif
+
Added: MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,22 @@
+#ifndef MYODBC_DES_REC_APD_H
+#define MYODBC_DES_REC_APD_H
+
+class MYODBCDesAPD;
+
+class MYODBCDesRecAPD
+{
+public:
+ MYODBCDesRecAPD( MYODBCDesAPD *pdes );
+ ~MYODBCDesRecAPD();
+
+ /* setters */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ virtual SQLRETURN setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength );
+
+ /* getters */
+ virtual SQLRETURN getDescRec( SQLCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr );
+ virtual SQLRETURN getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+};
+
+#endif
+
Added: MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,22 @@
+#ifndef MYODBC_DES_REC_ARD_H
+#define MYODBC_DES_REC_ARD_H
+
+class MYODBCDesARD;
+
+class MYODBCDesRecARD
+{
+public:
+ MYODBCDesRecARD( MYODBCDesARD *pdes );
+ ~MYODBCDesRecARD();
+
+ /* setters */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ virtual SQLRETURN setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength );
+
+ /* getters */
+ virtual SQLRETURN getDescRec( SQLCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr );
+ virtual SQLRETURN getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+};
+
+#endif
+
Added: MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,22 @@
+#ifndef MYODBC_DES_REC_IPD_H
+#define MYODBC_DES_REC_IPD_H
+
+class MYODBCDesIPD;
+
+class MYODBCDesRecIPD
+{
+public:
+ MYODBCDesRecIPD( MYODBCDesIPD *pdes );
+ ~MYODBCDesRecIPD();
+
+ /* setters */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ virtual SQLRETURN setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength );
+
+ /* getters */
+ virtual SQLRETURN getDescRec( SQLCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr );
+ virtual SQLRETURN getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+};
+
+#endif
+
Added: MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -0,0 +1,22 @@
+#ifndef MYODBC_DES_REC_IRD_H
+#define MYODBC_DES_REC_IRD_H
+
+class MYODBCDesIRD;
+
+class MYODBCDesRecIRD
+{
+public:
+ MYODBCDesRecIRD( MYODBCDesIRD *pdes );
+ ~MYODBCDesRecIRD();
+
+ /* setters */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ virtual SQLRETURN setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength );
+
+ /* getters */
+ virtual SQLRETURN getDescRec( SQLCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr );
+ virtual SQLRETURN getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+};
+
+#endif
+
Deleted: MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecord.cpp 2006-01-03 08:52:27 UTC (rev 25)
@@ -1,410 +0,0 @@
-#include "MYODBCDesInternal.h"
-
-/*!
- \brief Allocate a descriptor record.
-
- Allocate a descriptor record. This may include some initialization
- based upon the type requested.
-
- \param nType Descriptor type.
-
- \return MYODBC_DES_REC_PTR
-
- \sa MYODBCDesRecFree
-*/
-MYODBCDesRecord::MYODBCDesRecord( MYODBCDes *pdes )
-{
- if ( pdes )
- {
- pdes->listRecords.append( this );
- }
-}
-
-/*!
- \brief Frees all resources used by record.
-
- Removes the nRecord from pDess array of records and
- then frees the resources used by the record including the
- record itself.
-
- \param pDes A viable MYODBC_DES_PTR.
- \param nRecord 0 based
-
- \return void
-
- \sa MYODBCDesRecAllocExt
-*/
-MYODBCDesRecord::~MYODBCDesRecord()
-{
- if ( pdes )
- pdes->listRecords.removeAll( this );
-}
-
-bool MYODBCDesRecord::setAutoUniqueValue( SQLINTEGER nAutoUniqueValue )
-{
- this->nAutoUniqueValue = nAutoUniqueValue;
- return true;
-}
-
-bool MYODBCDesRecord::setBaseColumnName( const QString &stringBaseColumnName )
-{
- this->stringBaseColumnName = stringBaseColumnName;
- return true;
-}
-
-bool MYODBCDesRecord::setBaseTableName( const QString &stringBaseTableName )
-{
- this->stringBaseTableName = stringBaseTableName;
- return true;
-}
-
-bool MYODBCDesRecord::setCaseSensitive( SQLINTEGER nCaseSensitive )
-{
- this->nCaseSensitive = nCaseSensitive;
- return true;
-}
-
-bool MYODBCDesRecord::setCatalogName( const QString &stringCatalogName )
-{
- this->stringCatalogName = stringCatalogName;
- return true;
-}
-
-bool MYODBCDesRecord::setDataPtr( SQLPOINTER pDataPtr )
-{
- this->pDataPtr = pDataPtr;
- return true;
-}
-
-bool MYODBCDesRecord::setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode )
-{
- this->nDatetimeIntervalCode = nDatetimeIntervalCode;
- return true;
-}
-
-bool MYODBCDesRecord::setDatetimeIntervalPrecision( SQLINTEGER nDatetimeIntervalPrecision
)
-{
- this->nDatetimeIntervalPrecision = nDatetimeIntervalPrecision;
- return true;
-}
-
-bool MYODBCDesRecord::setDisplaySize( SQLINTEGER nDisplaySize )
-{
- this->nDisplaySize = nDisplaySize;
- return true;
-}
-
-bool MYODBCDesRecord::setFixedPrecScale( SQLSMALLINT nFixedPrecScale )
-{
- this->nFixedPrecScale = nFixedPrecScale;
- return true;
-}
-
-bool MYODBCDesRecord::setIndicatorPtr( SQLINTEGER *pnIndicatorPtr )
-{
- this->pnIndicatorPtr = pnIndicatorPtr;
- return true;
-}
-
-bool MYODBCDesRecord::setLabel( const QString &stringLabel )
-{
- this->stringLabel = stringLabel;
- return true;
-}
-
-bool MYODBCDesRecord::setLength( SQLUINTEGER nLength )
-{
- this->nLength = nLength;
- return true;
-}
-
-bool MYODBCDesRecord::setLiteralPrefix( const QString &stringLiteralPrefix )
-{
- this->stringLiteralPrefix = stringLiteralPrefix;
- return true;
-}
-
-bool MYODBCDesRecord::setLiteralSuffix( const QString &stringLiteralSuffix )
-{
- this->stringLiteralSuffix = stringLiteralSuffix;
- return true;
-}
-
-bool MYODBCDesRecord::setLocalTypeName( const QString &stringLocalTypeName )
-{
- this->stringLocalTypeName = stringLocalTypeName;
- return true;
-}
-
-bool MYODBCDesRecord::setName( const QString &stringName )
-{
- this->stringName = stringName;
- return true;
-}
-
-bool MYODBCDesRecord::setNullable( SQLSMALLINT nNullable )
-{
- this->nNullable = nNullable;
- return true;
-}
-
-bool MYODBCDesRecord::setNumPrecRadix( SQLINTEGER nNumPrecRadix )
-{
- this->nNumPrecRadix = nNumPrecRadix;
- return true;
-}
-
-bool MYODBCDesRecord::setOctetLength( SQLINTEGER nOctetLength )
-{
- this->nOctetLength = nOctetLength;
- return true;
-}
-
-bool MYODBCDesRecord::setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr )
-{
- this->pnOctetLengthPtr = pnOctetLengthPtr;
- return true;
-}
-
-bool MYODBCDesRecord::setParamterType( SQLSMALLINT nParamterType )
-{
- this->nParamterType = nParamterType;
- return true;
-}
-
-bool MYODBCDesRecord::setPrecision( SQLSMALLINT nPrecision )
-{
- this->nPrecision = nPrecision;
- return true;
-}
-
-bool MYODBCDesRecord::setRowver( SQLSMALLINT nRowver )
-{
- this->nRowver = nRowver;
- return true;
-}
-
-bool MYODBCDesRecord::setScale( SQLSMALLINT nScale )
-{
- this->nScale = nScale;
- return true;
-}
-
-bool MYODBCDesRecord::setSchemaName( const QString &stringSchemaName )
-{
- this->stringSchemaName = stringSchemaName;
- return true;
-}
-
-bool MYODBCDesRecord::setSearchable( SQLSMALLINT nSearchable )
-{
- this->nSearchable = nSearchable;
- return true;
-}
-
-bool MYODBCDesRecord::setTableName( const QString &stringTableName )
-{
- this->stringTableName = stringTableName;
- return true;
-}
-
-bool MYODBCDesRecord::setTypeName( const QString &stringTypeName )
-{
- this->stringTypeName = stringTypeName;
- return true;
-}
-
-bool MYODBCDesRecord::setUnnamed( SQLSMALLINT nUnnamed )
-{
- this->nUnnamed = nUnnamed;
- return true;
-}
-
-bool MYODBCDesRecord::setUnsigned( SQLSMALLINT nUnsigned )
-{
- this->nUnsigned = nUnsigned;
- return true;
-}
-
-bool MYODBCDesRecord::setUpdatable( SQLSMALLINT nUpdatable )
-{
- this->nUpdatable = nUpdatable;
- return true;
-}
-
-SQLINTEGER MYODBCDesRecord::getAutoUniqueValue()
-{
- return this->nAutoUniqueValue;
-}
-
-QString MYODBCDesRecord::getBaseColumnName()
-{
- return this->stringBaseColumnName;
-}
-
-QString MYODBCDesRecord::getBaseTableName()
-{
- return this->stringBaseTableName;
-}
-
-SQLINTEGER MYODBCDesRecord::getCaseSensitive()
-{
- return this->nCaseSensitive;
-}
-
-QString MYODBCDesRecord::getCatalogName()
-{
- return this->stringCatalogName;
-}
-
-SQLSMALLINT MYODBCDesRecord::getConciseType()
-{
- return this->nConciseType;
-}
-
-SQLPOINTER MYODBCDesRecord::getDataPtr()
-{
- return this->pDataPtr;
-}
-
-SQLSMALLINT MYODBCDesRecord::getDatetimeIntervalCode()
-{
- return this->nDatetimeIntervalCode;
-}
-
-SQLINTEGER MYODBCDesRecord::getDatetimeIntervalPrecision()
-{
- return this->nDatetimeIntervalPrecision;
-}
-
-SQLINTEGER MYODBCDesRecord::getDisplaySize()
-{
- return this->nDisplaySize;
-}
-
-SQLSMALLINT MYODBCDesRecord::getFixedPrecScale()
-{
- return this->nFixedPrecScale;
-}
-
-SQLINTEGER *MYODBCDesRecord::getIndicatorPtr()
-{
- return this->pnIndicatorPtr;
-}
-
-QString MYODBCDesRecord::getLabel()
-{
- return this->stringLabel;
-}
-
-SQLUINTEGER MYODBCDesRecord::getLength()
-{
- return this->nLength;
-}
-
-QString MYODBCDesRecord::getLiteralPrefix()
-{
- return this->stringLiteralPrefix;
-}
-
-QString MYODBCDesRecord::getLiteralSuffix()
-{
- return this->stringLiteralSuffix;
-}
-
-QString MYODBCDesRecord::getLocalTypeName()
-{
- return this->stringLocalTypeName;
-}
-
-QString MYODBCDesRecord::getName()
-{
- return this->stringName;
-}
-
-SQLSMALLINT MYODBCDesRecord::getNullable()
-{
- return this->nNullable;
-}
-
-SQLINTEGER MYODBCDesRecord::getNumPrecRadix()
-{
- return this->nNumPrecRadix;
-}
-
-SQLINTEGER MYODBCDesRecord::getOctetLength()
-{
- return this->nOctetLength;
-}
-
-SQLINTEGER *MYODBCDesRecord::getOctetLengthPtr()
-{
- return this->pnOctetLengthPtr;
-}
-
-SQLSMALLINT MYODBCDesRecord::getParamterType()
-{
- return this->nParamterType;
-}
-
-SQLSMALLINT MYODBCDesRecord::getPrecision()
-{
- return this->nPrecision;
-}
-
-SQLSMALLINT MYODBCDesRecord::getRowver()
-{
- return this->nRowver;
-}
-
-SQLSMALLINT MYODBCDesRecord::getScale()
-{
- return this->nScale;
-}
-
-QString MYODBCDesRecord::getSchemaName()
-{
- return this->stringSchemaName;
-}
-
-SQLSMALLINT MYODBCDesRecord::getSearchable()
-{
- return this->nSearchable;
-}
-
-QString MYODBCDesRecord::getTableName()
-{
- return this->stringTableName;
-}
-
-SQLSMALLINT MYODBCDesRecord::getType()
-{
- return this->nType;
-}
-
-QString MYODBCDesRecord::getTypeName()
-{
- return this->stringTypeName;
-}
-
-SQLSMALLINT MYODBCDesRecord::getUnnamed()
-{
- return this->nUnnamed;
-}
-
-SQLSMALLINT MYODBCDesRecord::getUnsigned()
-{
- return this->nUnsigned;
-}
-
-SQLSMALLINT MYODBCDesRecord::getUpdatable()
-{
- return this->nUpdatable;
-}
-
-MYODBCDes * MYODBCDesRecord::getDes()
-{
- return this->pdes;
-}
-
-
Deleted: MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecord.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -1,151 +0,0 @@
-#ifndef MYODBC_DES_RECORD_H
-#define MYODBC_DES_RECORD_H
-
-/*!
- \brief Descriptor records represent different things depending
- upon the type of descriptor;
-
- APD - one record for each buffer bound to a paramter marker
- IPD - one record for each paramter marker
- ARD - one record for each buffer bound to a column
- IRD - one record for each column
-
- This structure reflects *all* fields given in the ODBC
- specification. However; some fields may be calculated or
- not used when part of a particular descriptor type.
-
- In particular; the read-only fields can, in some cases, be
- optimized away.
-
- All fields are included for completeness and to help make
- the code more understandable. Any storage which can be
- optimized away would be very minimal so please leave all.
-
- \sa MYODBC_DES
-*/
-
-/* forward declare */
-class MYODBCDes;
-
-class MYODBCDesRecord
-{
-public:
- MYODBCDesRecord( MYODBCDes *pdes );
- ~MYODBCDesRecord();
-
- /* setters */
- virtual SQLRETURN setAutoUniqueValue( SQLINTEGER nAutoUniqueValue );
- virtual SQLRETURN setBaseColumnName( const QString &stringBaseColumnName );
- virtual SQLRETURN setBaseTableName( const QString &stringBaseTableName );
- virtual SQLRETURN setCaseSensitive( SQLINTEGER nCaseSensitive );
- virtual SQLRETURN setCatalogName( const QString &stringCatalogName );
- virtual SQLRETURN setConciseType( SQLSMALLINT nConciseType ) = 0;
- virtual SQLRETURN setDataPtr( SQLPOINTER pDataPtr );
- virtual SQLRETURN setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode );
- virtual SQLRETURN setDatetimeIntervalPrecision( SQLINTEGER nDatetimeIntervalPrecision
);
- virtual SQLRETURN setDisplaySize( SQLINTEGER nDisplaySize );
- virtual SQLRETURN setFixedPrecScale( SQLSMALLINT nFixedPrecScale );
- virtual SQLRETURN setIndicatorPtr( SQLINTEGER *pnIndicatorPtr );
- virtual SQLRETURN setLabel( const QString &stringLabel );
- virtual SQLRETURN setLength( SQLUINTEGER nLength );
- virtual SQLRETURN setLiteralPrefix( const QString &stringLiteralPrefix );
- virtual SQLRETURN setLiteralSuffix( const QString &stringLiteralSuffix );
- virtual SQLRETURN setLocalTypeName( const QString &stringLocalTypeName );
- virtual SQLRETURN setName( const QString &stringName );
- virtual SQLRETURN setNullable( SQLSMALLINT nNullable );
- virtual SQLRETURN setNumPrecRadix( SQLINTEGER nNumPrecRadix );
- virtual SQLRETURN setOctetLength( SQLINTEGER nOctetLength );
- virtual SQLRETURN setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr );
- virtual SQLRETURN setParamterType( SQLSMALLINT nParamterType );
- virtual SQLRETURN setPrecision( SQLSMALLINT nPrecision );
- virtual SQLRETURN setRowver( SQLSMALLINT nRowver );
- virtual SQLRETURN setScale( SQLSMALLINT nScale );
- virtual SQLRETURN setSchemaName( const QString &stringSchemaName );
- virtual SQLRETURN setSearchable( SQLSMALLINT nSearchable );
- virtual SQLRETURN setTableName( const QString &stringTableName );
- virtual SQLRETURN setType( SQLSMALLINT nType ) = 0;
- virtual SQLRETURN setTypeName( const QString &stringTypeName );
- virtual SQLRETURN setUnnamed( SQLSMALLINT nUnnamed );
- virtual SQLRETURN setUnsigned( SQLSMALLINT nUnsigned );
- virtual SQLRETURN setUpdatable( SQLSMALLINT nUpdatable );
-
- /* getters */
- virtual SQLINTEGER getAutoUniqueValue();
- virtual QString getBaseColumnName();
- virtual QString getBaseTableName();
- virtual SQLINTEGER getCaseSensitive();
- virtual QString getCatalogName();
- virtual SQLSMALLINT getConciseType();
- virtual SQLPOINTER getDataPtr();
- virtual SQLSMALLINT getDatetimeIntervalCode();
- virtual SQLINTEGER getDatetimeIntervalPrecision();
- virtual SQLINTEGER getDisplaySize();
- virtual SQLSMALLINT getFixedPrecScale();
- virtual SQLINTEGER *getIndicatorPtr();
- virtual QString getLabel();
- virtual SQLUINTEGER getLength();
- virtual QString getLiteralPrefix();
- virtual QString getLiteralSuffix();
- virtual QString getLocalTypeName();
- virtual QString getName();
- virtual SQLSMALLINT getNullable();
- virtual SQLINTEGER getNumPrecRadix();
- virtual SQLINTEGER getOctetLength();
- virtual SQLINTEGER *getOctetLengthPtr();
- virtual SQLSMALLINT getParamterType();
- virtual SQLSMALLINT getPrecision();
- virtual SQLSMALLINT getRowver();
- virtual SQLSMALLINT getScale();
- virtual QString getSchemaName();
- virtual SQLSMALLINT getSearchable();
- virtual QString getTableName();
- virtual SQLSMALLINT getType();
- virtual QString getTypeName();
- virtual SQLSMALLINT getUnnamed();
- virtual SQLSMALLINT getUnsigned();
- virtual SQLSMALLINT getUpdatable();
- virtual MYODBCDes * getDes();
-
-protected:
- MYODBCDes * pdes; /* parent & owner */
-
- /* some of these 'fields' will be calculated and not stored in the future */
- /* these 'fields' are named as per odbc spec to make xref easier */
- SQLINTEGER nAutoUniqueValue;
- QString stringBaseColumnName;
- QString stringBaseTableName;
- SQLINTEGER nCaseSensitive;
- QString stringCatalogName;
- SQLSMALLINT nConciseType;
- SQLPOINTER pDataPtr; /*!< IF null THEN unbound ELSE bound
*/
- SQLSMALLINT nDatetimeIntervalCode;
- SQLINTEGER nDatetimeIntervalPrecision;
- SQLINTEGER nDisplaySize; /*! calculated? */
- SQLSMALLINT nFixedPrecScale;
- SQLINTEGER *pnIndicatorPtr;
- QString stringLabel;
- SQLUINTEGER nLength;
- QString stringLiteralPrefix;
- QString stringLiteralSuffix;
- QString stringLocalTypeName;
- QString stringName;
- SQLSMALLINT nNullable;
- SQLINTEGER nNumPrecRadix;
- SQLINTEGER nOctetLength;
- SQLINTEGER *pnOctetLengthPtr;
- SQLSMALLINT nParamterType;
- SQLSMALLINT nPrecision;
- SQLSMALLINT nRowver;
- SQLSMALLINT nScale;
- QString stringSchemaName;
- SQLSMALLINT nSearchable;
- QString stringTableName;
- SQLSMALLINT nType;
- QString stringTypeName;
- SQLSMALLINT nUnnamed;
- SQLSMALLINT nUnsigned;
- SQLSMALLINT nUpdatable;
-};
-
-#endif
-
Modified: MYODBCDes/MYODBCDesTest/MYODBCDesTest.vpj
===================================================================
--- MYODBCDes/MYODBCDesTest/MYODBCDesTest.vpj 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/MYODBCDesTest/MYODBCDesTest.vpj 2006-01-03 08:52:27 UTC (rev 25)
@@ -184,7 +184,7 @@
<Folder
Name="Source Files"
Filters="*.c;*.C;*.cc;*.cpp;*.cp;*.cxx;*.prg;*.pas;*.dpr;*.asm;*.s;*.bas;*.java;*.cs;*.sc;*.e;*.cob;*.html;*.rc;*.tcl;*.py;*.pl">
- <F N="MYODBCDesTest.c"/>
+ <F N="MYODBCDesTest.cpp"/>
</Folder>
<Folder
Name="Header Files"
Modified: MYODBCDes/include/MYODBCDes.h
===================================================================
--- MYODBCDes/include/MYODBCDes.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/include/MYODBCDes.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -57,7 +57,7 @@
#include <QStringList>
#include <QTextStream>
-class MYODBCDesRecord;
+class MYODBCResRec;
/*!
\brief This is the top-level descriptor struct. It represents a;
@@ -72,19 +72,26 @@
*/
class MYODBCDes
{
- friend class MYODBCDesRecord;
+ friend class MYODBCResRec;
public:
MYODBCDes( SQLHANDLE hOwner );
~MYODBCDes();
/* setters */
+
+ /* ODBC validated */
+ virtual SQLRETURN setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType, SQLSMALLINT
nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER
pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr ) = 0;
+ virtual SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength ) = 0;
+
+ /* header fields */
virtual SQLRETURN setArraySize( SQLUINTEGER nArraySize );
virtual SQLRETURN setArrayStatusPtr( SQLUSMALLINT *pnArrayStatusPtr );
virtual SQLRETURN setBindOffsetPtr( SQLINTEGER *pnBindOffsetPtr );
virtual SQLRETURN setBindType( SQLINTEGER nBindType );
- virtual SQLRETURN setCount( SQLSMALLINT nCount );
+ virtual SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind ) = 0;
virtual SQLRETURN setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr );
+ /* record fields */
virtual SQLRETURN setAutoUniqueValue( SQLSMALLINT nRecord, SQLINTEGER
nAutoUniqueValue );
virtual SQLRETURN setBaseColumnName( SQLSMALLINT nRecord, const QString
&stringBaseColumnName );
virtual SQLRETURN setBaseTableName( SQLSMALLINT nRecord, const QString
&stringBaseTableName );
@@ -121,6 +128,12 @@
virtual SQLRETURN setUpdatable( SQLSMALLINT nRecord, SQLSMALLINT nUpdatable );
/* getters */
+
+ /* ODBC validated */
+ virtual SQLRETURN getDescRec( SQLSMALLINT nRecNumber, SQLCHAR *pszName, SQLSMALLINT
nBufferLength, SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT
*pnSubTypePtr, SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT
*pnScalePtr, SQLSMALLINT *pnNullablePtr ) = 0;
+ virtual SQLRETURN getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr ) = 0;
+
+ /* header fields */
virtual SQLSMALLINT getAllocType();
virtual SQLUINTEGER getArraySize();
virtual SQLUSMALLINT *getArrayStatusPtr();
@@ -129,6 +142,7 @@
virtual SQLSMALLINT getCount();
virtual SQLUINTEGER *getRowsProcessedPtr();
+ /* record fields */
virtual SQLINTEGER getAutoUniqueValue( SQLSMALLINT nRecord );
virtual QString getBaseColumnName( SQLSMALLINT nRecord );
virtual QString getBaseTableName( SQLSMALLINT nRecord );
@@ -164,6 +178,7 @@
virtual SQLSMALLINT getUnsigned( SQLSMALLINT nRecord );
virtual SQLSMALLINT getUpdatable( SQLSMALLINT nRecord );
+ /* misc */
SQLHANDLE getOwner();
MYODBC_RTTI_DES_TYPE getDesType();
@@ -185,11 +200,16 @@
records->elements.
*/
SQLUINTEGER * pnRowsProcessedPtr;
- QList<MYODBCDesRecord*> listRecords; /*!< An array of MYODBC_DES_REC.
We should always
+ QList<MYODBCResRec*> listRecords; /*!< An array of MYODBC_DES_REC. We
should always
have record at index 0. Index 0 is
used for
bookmarks when an ARD desc.
*/
};
+#include "MYODBCDesAPD.h"
+#include "MYODBCDesARD.h"
+#include "MYODBCDesIPD.h"
+#include "MYODBCDesIRD.h"
+
+++++++++++++++++++++++++
/*!
Modified: MYODBCDes/include/MYODBCDesAPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesAPD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/include/MYODBCDesAPD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -8,7 +8,7 @@
#define MYODBC_DES_APD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecordAPD.h"
+#include "MYODBCResRecAPD.h"
/*!
\brief
@@ -16,16 +16,20 @@
*/
class MYODBCDesAPD
{
- friend class MYODBCDesRecordAPD;
+ friend class MYODBCResRecAPD;
public:
MYODBCDesAPD( SQLHANDLE hOwner );
~MYODBCDesAPD();
/* setters */
- SQLRETURN setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr );
+ SQLRETURN setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType, SQLSMALLINT
nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER
pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
+ SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
+
/* getters */
- SQLUINTEGER *getRowsProcessedPtr();
+ SQLRETURN getDescRec( SQLSMALLINT nRecNumber, SQLCHAR *pszName, SQLSMALLINT
nBufferLength, SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT
*pnSubTypePtr, SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT
*pnScalePtr, SQLSMALLINT *pnNullablePtr );
+ SQLRETURN getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
};
#endif
Modified: MYODBCDes/include/MYODBCDesARD.h
===================================================================
--- MYODBCDes/include/MYODBCDesARD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/include/MYODBCDesARD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -8,7 +8,7 @@
#define MYODBC_DES_ARD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecordARD.h"
+#include "MYODBCResRecARD.h"
/*!
\brief
@@ -16,15 +16,21 @@
*/
class MYODBCDesARD
{
- friend class MYODBCDesRecordARD;
+ friend class MYODBCResRecARD;
public:
MYODBCDesARD( SQLHANDLE hOwner );
~MYODBCDesARD();
/* setters */
+ SQLRETURN setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType, SQLSMALLINT
nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER
pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
+
SQLRETURN setRowsProcessedPtr( SQLUINTEGER *pnRowsProcessedPtr );
/* getters */
+ SQLRETURN getDescRec( SQLSMALLINT nRecNumber, SQLCHAR *pszName, SQLSMALLINT
nBufferLength, SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT
*pnSubTypePtr, SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT
*pnScalePtr, SQLSMALLINT *pnNullablePtr );
+ SQLRETURN getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+
SQLUINTEGER *getRowsProcessedPtr();
};
Modified: MYODBCDes/include/MYODBCDesIPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIPD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/include/MYODBCDesIPD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -8,7 +8,7 @@
#define MYODBC_DES_IPD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecordIPD.h"
+#include "MYODBCResRecIPD.h"
/*!
\brief
@@ -16,17 +16,23 @@
*/
class MYODBCDesIPD
{
- friend class MYODBCDesRecordIPD;
+ friend class MYODBCResRecIPD;
public:
MYODBCDesIPD( SQLHANDLE hOwner );
~MYODBCDesIPD();
/* setters */
+ SQLRETURN setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType, SQLSMALLINT
nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER
pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
+
SQLRETURN setArraySize( SQLUINTEGER nArraySize );
SQLRETURN setBindOffsetPtr( SQLINTEGER *pnBindOffsetPtr );
SQLRETURN setBindType( SQLINTEGER nBindType );
/* getters */
+ SQLRETURN getDescRec( SQLSMALLINT nRecNumber, SQLCHAR *pszName, SQLSMALLINT
nBufferLength, SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT
*pnSubTypePtr, SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT
*pnScalePtr, SQLSMALLINT *pnNullablePtr );
+ SQLRETURN getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+
SQLUINTEGER getArraySize();
SQLINTEGER *getBindOffsetPtr();
SQLINTEGER getBindType();
Modified: MYODBCDes/include/MYODBCDesIRD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIRD.h 2006-01-03 03:47:25 UTC (rev 24)
+++ MYODBCDes/include/MYODBCDesIRD.h 2006-01-03 08:52:27 UTC (rev 25)
@@ -8,7 +8,7 @@
#define MYODBC_DES_IRD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecordIRD.h"
+#include "MYODBCResRecIRD.h"
/*!
\brief
@@ -16,17 +16,23 @@
*/
class MYODBCDesIRD
{
- friend class MYODBCDesRecordIRD;
+ friend class MYODBCResRecIRD;
public:
MYODBCDesIRD( SQLHANDLE hOwner );
~MYODBCDesIRD();
/* setters */
+ SQLRETURN setDescRec( SQLSMALLINT nRecNumber, SQLSMALLINT nType, SQLSMALLINT
nSubType, SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER
pDataPtr, SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr );
+ SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
+
SQLRETURN setArraySize( SQLUINTEGER nArraySize );
SQLRETURN setBindOffsetPtr( SQLINTEGER *pnBindOffsetPtr );
SQLRETURN setBindType( SQLINTEGER nBindType );
/* getters */
+ SQLRETURN getDescRec( SQLSMALLINT nRecNumber, SQLCHAR *pszName, SQLSMALLINT
nBufferLength, SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT
*pnSubTypePtr, SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT
*pnScalePtr, SQLSMALLINT *pnNullablePtr );
+ SQLRETURN getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr );
+
SQLUINTEGER getArraySize();
SQLINTEGER *getBindOffsetPtr();
SQLINTEGER getBindType();
| Thread |
|---|
| • Connector/ODBC 5 commit: r25 - in MYODBCDes: MYODBCDesLib MYODBCDesTest include | pharvey | 3 Jan |