Modified:
MYODBCDbg/include/MYODBCDbg.h
MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesIRD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h
MYODBCDes/MYODBCDesLib/MYODBCDesLib.pro
MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj
MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRec.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h
MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.cpp
MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h
MYODBCDes/include/MYODBCDes.h
MYODBCDes/include/MYODBCDesAPD.h
MYODBCDes/include/MYODBCDesARD.h
MYODBCDes/include/MYODBCDesIPD.h
MYODBCDes/include/MYODBCDesIRD.h
Log:
UNICODE:
- work to objectify code and enable unicode in descriptors
Modified: MYODBCDbg/include/MYODBCDbg.h
===================================================================
--- MYODBCDbg/include/MYODBCDbg.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDbg/include/MYODBCDbg.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -179,7 +179,7 @@
*/
#define MYODBCDbgReturn(A) return(gpMYODBCDbg ? gpMYODBCDbg->doReturn( __FILE__,
__LINE__, __FUNCTION__, A ) : A)
-#define MYODBCDbgReturn2()
+#define MYODBCDbgReturn2()\
{\
if ( gpMYODBCDbg )\
{\
@@ -191,7 +191,7 @@
}\
}
-#define MYODBCDbgReturn3(A)
+#define MYODBCDbgReturn3(A)\
{\
if ( gpMYODBCDbg )\
{\
Modified: MYODBCDes/MYODBCDesLib/MYODBCDes.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDes.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDes.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -34,8 +34,6 @@
{
MYODBCDbgEnter();
- /* init header fields to most common values */
- nTypeSubID = MYODBC_RTTI_DES_UND;
nAllocType = SQL_DESC_ALLOC_USER;
nArraySize = 1;
pnArrayStatusPtr = NULL;
@@ -107,13 +105,13 @@
*/
if ( nRecNumber >= getCount() )
{
- nReturn = setCount( nRecNumber + 1, true );
+ SQLRETURN nReturn = setCount( nRecNumber + 1, true );
if ( !SQL_SUCCEEDED( nReturn ) )
MYODBCDbgReturn( nReturn );
}
/* push down to record for further processing */
- MYODBCDbgReturn( listRecords[nRecord]->setDescRec( nType, nSubType, nLength,
nPrecision, nScale, pDataPtr, pnStringLengthPtr, pnIndicatorPtr ) );
+ MYODBCDbgReturn( listRecords[nRecNumber]->setDescRec( nType, nSubType, nLength,
nPrecision, nScale, pDataPtr, pnStringLengthPtr, pnIndicatorPtr ) );
}
SQLRETURN MYODBCDes::setArraySize( SQLUINTEGER nArraySize )
@@ -451,7 +449,7 @@
MYODBCDbgReturn( listRecords[nRecord]->setTableName( stringTableName ) );
}
-SQLRETURN MYODBCDes::setType( SQLSMALLINT nRecord, SQLSMALLINT nType );
+SQLRETURN MYODBCDes::setType( SQLSMALLINT nRecord, SQLSMALLINT nType )
{
MYODBCDbgEnter();
@@ -521,7 +519,7 @@
MYODBCDbgReturn( SQL_NO_DATA );
/* push down to record for further processing */
- MYODBCDbgReturn( listRecords[nRecNumber]->getDescRec( pszName, nBufferLength,
pnStringLengthPtr, pnTypePtr, pnSubTypePtr, pnLengthPtr, pnPrecisionPtr, pnScalePtr,
pnNullablePtr );
+ MYODBCDbgReturn( listRecords[nRecNumber]->getDescRec( pszName, nBufferLength,
pnStringLengthPtr, pnTypePtr, pnSubTypePtr, pnLengthPtr, pnPrecisionPtr, pnScalePtr,
pnNullablePtr ) );
}
SQLRETURN MYODBCDes::getDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr )
@@ -560,11 +558,11 @@
MYODBCDbgReturn( SQL_SUCCESS );
case SQL_DESC_BIND_OFFSET_PTR:
- *((SQLINTEGER **)ppValuePtr) = getBindOffsetPtr();
+ *((SQLINTEGER **)pValuePtr) = getBindOffsetPtr();
MYODBCDbgReturn( SQL_SUCCESS );
case SQL_DESC_BIND_TYPE:
- *((SQLINTEGER **)pValuePtr) = getBindType();
+ *((SQLUINTEGER *)pValuePtr) = getBindType();
MYODBCDbgReturn( SQL_SUCCESS );
case SQL_DESC_COUNT:
@@ -591,7 +589,7 @@
MYODBCDbgReturn( SQL_NO_DATA );
/* push down to record for further processing */
- MYODBCDbgReturn( listRecords[nRecNumber]->getDescField( nFieldIdentifier,
pValuePtr, nBufferLength, pnStringLengthPtr );
+ MYODBCDbgReturn( listRecords[nRecNumber]->getDescField( nFieldIdentifier,
pValuePtr, nBufferLength, pnStringLengthPtr ) );
}
SQLSMALLINT MYODBCDes::getAllocType()
@@ -622,7 +620,7 @@
MYODBCDbgReturn3( nBindOffsetPtr );
}
-SQLINTEGER MYODBCDes::getBindType()
+SQLUINTEGER MYODBCDes::getBindType()
{
MYODBCDbgEnter();
@@ -991,14 +989,4 @@
MYODBCDbgReturn3( hOwner );
}
-MYODBC_RTTI_DES_TYPE MYODBCDes::getDesType()
-{
- MYODBCDbgEnter();
- MYODBCDbgReturn3( nDesType );
-}
-
-
-
-
-
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesAPD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -2,8 +2,6 @@
MYODBCDesAPD::MYODBCDesAPD( SQLHANDLE hOwner )
{
- nTypeSubID = MYODBC_RTTI_DES_APD;
-
/* add bookmark record at index 0 */
/*
\internal ODBC Rule
@@ -15,10 +13,10 @@
or by an ODBC 2.x application working with an ODBC 3.x
driver.)
*/
- pdesrec = new MYODBCDesRecAPD( this );
- pdesrec->setConciseType( SQL_BINARY );
- pdesrec->setType( SQL_BINARY );
- pdesrec->setDatetimeIntervalCode( 0 );
+ MYODBCDesRecAPD *precord = new MYODBCDesRecAPD( this );
+ precord->setConciseType( SQL_BINARY );
+ precord->setType( SQL_BINARY );
+ precord->setDatetimeIntervalCode( 0 );
}
SQLRETURN MYODBCDesRecAPD::setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType,
SQLINTEGER nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr,
SQLINTEGER *pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr )
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesARD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -2,8 +2,6 @@
MYODBCDesARD::MYODBCDesARD( SQLHANDLE hOwner )
{
- nTypeSubID = MYODBC_RTTI_DES_ARD;
-
/* add bookmark record at index 0 */
/*
\internal ODBC Rule
@@ -15,10 +13,10 @@
or by an ODBC 2.x application working with an ODBC 3.x
driver.)
*/
- pdesrec = new MYODBCDesRecARD( this );
- pdesrec->setConciseType( SQL_BINARY );
- pdesrec->setType( SQL_BINARY );
- pdesrec->setDatetimeIntervalCode( 0 );
+ MYODBCDesRecARD *precord = new MYODBCDesRecARD( this );
+ precord->setConciseType( SQL_BINARY );
+ precord->setType( SQL_BINARY );
+ precord->setDatetimeIntervalCode( 0 );
}
SQLRETURN MYODBCDesARD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesIPD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -2,8 +2,6 @@
MYODBCDesIPD::MYODBCDesIPD( SQLHANDLE hOwner )
{
- nTypeSubID = MYODBC_RTTI_DES_IPD;
-
/* add bookmark record at index 0 */
/*
\internal ODBC Rule
@@ -15,10 +13,10 @@
or by an ODBC 2.x application working with an ODBC 3.x
driver.)
*/
- pdesrec = new MYODBCDesRecIPD( this );
- pdesrec->setConciseType( SQL_BINARY );
- pdesrec->setType( SQL_BINARY );
- pdesrec->setDatetimeIntervalCode( 0 );
+ MYODBCDesRecIPD *precord = new MYODBCDesRecIPD( this );
+ precord->setConciseType( SQL_BINARY );
+ precord->setType( SQL_BINARY );
+ precord->setDatetimeIntervalCode( 0 );
}
SQLRETURN MYODBCDesIPD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesIRD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesIRD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesIRD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -2,8 +2,6 @@
MYODBCDesIRD::MYODBCDesIRD( SQLHANDLE hOwner )
{
- nTypeSubID = MYODBC_RTTI_DES_IRD;
-
/* add bookmark record at index 0 */
/*
\internal ODBC Rule
@@ -15,10 +13,10 @@
or by an ODBC 2.x application working with an ODBC 3.x
driver.)
*/
- pdesrec = new MYODBCDesRecIRD( this );
- pdesrec->setConciseType( SQL_BINARY );
- pdesrec->setType( SQL_BINARY );
- pdesrec->setDatetimeIntervalCode( 0 );
+ MYODBCDesRecIRD *precord = new MYODBCDesRecIRD( this );
+ precord->setConciseType( SQL_BINARY );
+ precord->setType( SQL_BINARY );
+ precord->setDatetimeIntervalCode( 0 );
}
SQLRETURN MYODBCDesIRD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesInternal.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -2,6 +2,11 @@
#define MYODBC_DES_INTERNAL_H
#include "../include/MYODBCDes.h"
+#include "../include/MYODBCDesAPD.h"
+#include "../include/MYODBCDesARD.h"
+#include "../include/MYODBCDesIPD.h"
+#include "../include/MYODBCDesIRD.h"
+#include "MYODBCDesRec.h"
#include "MYODBCDesRecAPD.h"
#include "MYODBCDesRecARD.h"
#include "MYODBCDesRecIPD.h"
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesLib.pro
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesLib.pro 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesLib.pro 2006-01-05 05:07:04 UTC (rev 29)
@@ -7,12 +7,13 @@
include( ../../common.pri )
include( ../../config.pri )
include( ../../defines.pri )
+include( ../../odbc.pri )
CONFIG += staticlib
+CONFIG += console
INCLUDEPATH += ../../MYODBCC/include
-INCLUDEPATH += ../../MYODBCArray/include
-INCLUDEPATH += ../../MYODBCList/include
-INCLUDEPATH += ../../MYODBCRtti/include
+INCLUDEPATH += ../../MYODBCDbg/include
INCLUDEPATH += ../../MYODBCDia/include
+INCLUDEPATH += ../include
# #########################################################
# UNIX
@@ -35,34 +36,26 @@
# #########################################################
HEADERS = \
../include/MYODBCDes.h \
+ ../include/MYODBCDesAPD.h \
+ ../include/MYODBCDesARD.h \
+ ../include/MYODBCDesIPD.h \
+ ../include/MYODBCDesIRD.h \
+ MYODBCDesRec.h \
+ MYODBCDesRecAPD.h \
+ MYODBCDesRecARD.h \
+ MYODBCDesRecIPD.h \
+ MYODBCDesRecIRD.h \
MYODBCDesInternal.h
SOURCES = \
- MYODBCDesAlloc.c \
- MYODBCDesCount.c \
- MYODBCDesDump.c \
- MYODBCDesSetFreeExtra.c \
- MYODBCDesFree.c \
- MYODBCDesGetLength.c \
- MYODBCDesMorph.c \
- MYODBCDesRecAlloc.c \
- MYODBCDesRecAllocExt.c \
- MYODBCDesRecClear.c \
- MYODBCDesRecConciseType.c \
- MYODBCDesRecConciseTypeC.c \
- MYODBCDesRecConciseTypeSQL.c \
- MYODBCDesRecCopy.c \
- MYODBCDesRecDump.c \
- MYODBCDesRecSetFreeExtra.c \
- MYODBCDesRecFree.c \
- MYODBCDesRecGet.c \
- MYODBCDesRecIntervalCode.c \
- MYODBCDesRecIrdInteger.c \
- MYODBCDesRecIrdSmallInt.c \
- MYODBCDesRecIrdVarChar.c \
- MYODBCDesRecsFree.c \
- MYODBCDesRecType.c \
- MYODBCDesRecTypeC.c \
- MYODBCDesRecTypeSQL.c \
- MYODBCDesRecUnbind.c
+ MYODBCDes.cpp \
+ MYODBCDesAPD.cpp \
+ MYODBCDesARD.cpp \
+ MYODBCDesIPD.cpp \
+ MYODBCDesIRD.cpp \
+ MYODBCDesRec.cpp \
+ MYODBCDesRecAPD.cpp \
+ MYODBCDesRecARD.cpp \
+ MYODBCDesRecIPD.cpp \
+ MYODBCDesRecIRD.cpp
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesLib.vpj 2006-01-05 05:07:04 UTC (rev 29)
@@ -41,7 +41,7 @@
Deletable="0"
SaveOption="SaveWorkspaceFiles"
RunFromDir="%rw">
- <Exec CmdLine="qmake; make"/>
+ <Exec CmdLine="make"/>
</Target>
<Target
Name="Rebuild"
@@ -129,7 +129,7 @@
Deletable="0"
SaveOption="SaveWorkspaceFiles"
RunFromDir="%rw">
- <Exec CmdLine="qmake; make"/>
+ <Exec CmdLine="make"/>
</Target>
<Target
Name="Rebuild"
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRec.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -12,7 +12,7 @@
\sa MYODBCDesRecFree
*/
-MYODBCResRec::MYODBCResRec( MYODBCDes *pdes )
+MYODBCDesRec::MYODBCDesRec( MYODBCDes *pdes )
{
MYODBCDbgEnter();
@@ -37,7 +37,7 @@
\sa MYODBCDesRecAllocExt
*/
-MYODBCResRec::~MYODBCResRec()
+MYODBCDesRec::~MYODBCDesRec()
{
MYODBCDbgEnter();
@@ -46,8 +46,12 @@
MYODBCDbgReturn2();
}
-SQLRETURN MYODBCResRec::setAutoUniqueValue( SQLINTEGER nAutoUniqueValue )
+SQLRETURN MYODBCDesRec::setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr )
{
+}
+
+SQLRETURN MYODBCDesRec::setAutoUniqueValue( SQLINTEGER nAutoUniqueValue )
+{
MYODBCDbgEnter();
this->nAutoUniqueValue = nAutoUniqueValue;
@@ -55,7 +59,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setBaseColumnName( const QString &stringBaseColumnName )
+SQLRETURN MYODBCDesRec::setBaseColumnName( const QString &stringBaseColumnName )
{
MYODBCDbgEnter();
@@ -64,7 +68,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setBaseTableName( const QString &stringBaseTableName )
+SQLRETURN MYODBCDesRec::setBaseTableName( const QString &stringBaseTableName )
{
MYODBCDbgEnter();
@@ -73,7 +77,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setCaseSensitive( SQLINTEGER nCaseSensitive )
+SQLRETURN MYODBCDesRec::setCaseSensitive( SQLINTEGER nCaseSensitive )
{
MYODBCDbgEnter();
@@ -82,7 +86,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setCatalogName( const QString &stringCatalogName )
+SQLRETURN MYODBCDesRec::setCatalogName( const QString &stringCatalogName )
{
MYODBCDbgEnter();
@@ -91,7 +95,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setConciseType( SQLSMALLINT nConciseType )
+SQLRETURN MYODBCDesRec::setConciseType( SQLSMALLINT nConciseType )
{
MYODBCDbgEnter();
@@ -100,7 +104,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setDataPtr( SQLPOINTER pDataPtr )
+SQLRETURN MYODBCDesRec::setDataPtr( SQLPOINTER pDataPtr )
{
MYODBCDbgEnter();
@@ -109,7 +113,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode )
+SQLRETURN MYODBCDesRec::setDatetimeIntervalCode( SQLSMALLINT nDatetimeIntervalCode )
{
MYODBCDbgEnter();
@@ -118,7 +122,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setDatetimeIntervalPrecision( SQLINTEGER
nDatetimeIntervalPrecision )
+SQLRETURN MYODBCDesRec::setDatetimeIntervalPrecision( SQLINTEGER
nDatetimeIntervalPrecision )
{
MYODBCDbgEnter();
@@ -127,7 +131,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setDisplaySize( SQLINTEGER nDisplaySize )
+SQLRETURN MYODBCDesRec::setDisplaySize( SQLINTEGER nDisplaySize )
{
MYODBCDbgEnter();
@@ -136,7 +140,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setFixedPrecScale( SQLSMALLINT nFixedPrecScale )
+SQLRETURN MYODBCDesRec::setFixedPrecScale( SQLSMALLINT nFixedPrecScale )
{
MYODBCDbgEnter();
@@ -145,7 +149,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setIndicatorPtr( SQLINTEGER *pnIndicatorPtr )
+SQLRETURN MYODBCDesRec::setIndicatorPtr( SQLINTEGER *pnIndicatorPtr )
{
MYODBCDbgEnter();
@@ -154,7 +158,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setLabel( const QString &stringLabel )
+SQLRETURN MYODBCDesRec::setLabel( const QString &stringLabel )
{
MYODBCDbgEnter();
@@ -163,7 +167,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setLength( SQLUINTEGER nLength )
+SQLRETURN MYODBCDesRec::setLength( SQLUINTEGER nLength )
{
MYODBCDbgEnter();
@@ -172,7 +176,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setLiteralPrefix( const QString &stringLiteralPrefix )
+SQLRETURN MYODBCDesRec::setLiteralPrefix( const QString &stringLiteralPrefix )
{
MYODBCDbgEnter();
@@ -181,7 +185,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setLiteralSuffix( const QString &stringLiteralSuffix )
+SQLRETURN MYODBCDesRec::setLiteralSuffix( const QString &stringLiteralSuffix )
{
MYODBCDbgEnter();
@@ -190,7 +194,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setLocalTypeName( const QString &stringLocalTypeName )
+SQLRETURN MYODBCDesRec::setLocalTypeName( const QString &stringLocalTypeName )
{
MYODBCDbgEnter();
@@ -199,7 +203,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setName( const QString &stringName )
+SQLRETURN MYODBCDesRec::setName( const QString &stringName )
{
MYODBCDbgEnter();
@@ -208,7 +212,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setNullable( SQLSMALLINT nNullable )
+SQLRETURN MYODBCDesRec::setNullable( SQLSMALLINT nNullable )
{
MYODBCDbgEnter();
@@ -217,7 +221,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setNumPrecRadix( SQLINTEGER nNumPrecRadix )
+SQLRETURN MYODBCDesRec::setNumPrecRadix( SQLINTEGER nNumPrecRadix )
{
MYODBCDbgEnter();
@@ -226,7 +230,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setOctetLength( SQLINTEGER nOctetLength )
+SQLRETURN MYODBCDesRec::setOctetLength( SQLINTEGER nOctetLength )
{
MYODBCDbgEnter();
@@ -235,7 +239,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr )
+SQLRETURN MYODBCDesRec::setOctetLengthPtr( SQLINTEGER *pnOctetLengthPtr )
{
MYODBCDbgEnter();
@@ -244,7 +248,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setParamterType( SQLSMALLINT nParamterType )
+SQLRETURN MYODBCDesRec::setParamterType( SQLSMALLINT nParamterType )
{
MYODBCDbgEnter();
@@ -253,7 +257,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setPrecision( SQLSMALLINT nPrecision )
+SQLRETURN MYODBCDesRec::setPrecision( SQLSMALLINT nPrecision )
{
MYODBCDbgEnter();
@@ -262,7 +266,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setRowver( SQLSMALLINT nRowver )
+SQLRETURN MYODBCDesRec::setRowver( SQLSMALLINT nRowver )
{
MYODBCDbgEnter();
@@ -271,7 +275,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setScale( SQLSMALLINT nScale )
+SQLRETURN MYODBCDesRec::setScale( SQLSMALLINT nScale )
{
MYODBCDbgEnter();
@@ -280,7 +284,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setSchemaName( const QString &stringSchemaName )
+SQLRETURN MYODBCDesRec::setSchemaName( const QString &stringSchemaName )
{
MYODBCDbgEnter();
@@ -289,7 +293,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setSearchable( SQLSMALLINT nSearchable )
+SQLRETURN MYODBCDesRec::setSearchable( SQLSMALLINT nSearchable )
{
MYODBCDbgEnter();
@@ -298,7 +302,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setTableName( const QString &stringTableName )
+SQLRETURN MYODBCDesRec::setTableName( const QString &stringTableName )
{
MYODBCDbgEnter();
@@ -307,7 +311,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setType( SQLSMALLINT nType )
+SQLRETURN MYODBCDesRec::setType( SQLSMALLINT nType )
{
MYODBCDbgEnter();
@@ -316,7 +320,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setTypeName( const QString &stringTypeName )
+SQLRETURN MYODBCDesRec::setTypeName( const QString &stringTypeName )
{
MYODBCDbgEnter();
@@ -325,7 +329,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setUnnamed( SQLSMALLINT nUnnamed )
+SQLRETURN MYODBCDesRec::setUnnamed( SQLSMALLINT nUnnamed )
{
MYODBCDbgEnter();
@@ -334,7 +338,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setUnsigned( SQLSMALLINT nUnsigned )
+SQLRETURN MYODBCDesRec::setUnsigned( SQLSMALLINT nUnsigned )
{
MYODBCDbgEnter();
@@ -343,7 +347,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setUpdatable( SQLSMALLINT nUpdatable )
+SQLRETURN MYODBCDesRec::setUpdatable( SQLSMALLINT nUpdatable )
{
MYODBCDbgEnter();
@@ -352,7 +356,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::getDescRec( SQLWCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr )
+SQLRETURN MYODBCDesRec::getDescRec( SQLWCHAR *pszName, SQLSMALLINT nBufferLength,
SQLSMALLINT *pnStringLengthPtr, SQLSMALLINT *pnTypePtr, SQLSMALLINT *pnSubTypePtr,
SQLINTEGER *pnLengthPtr, SQLSMALLINT *pnPrecisionPtr, SQLSMALLINT *pnScalePtr,
SQLSMALLINT *pnNullablePtr )
{
SQLRETURN nReturn;
bool bHasInfo = false;
@@ -409,7 +413,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr )
+SQLRETURN MYODBCDesRec::getDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength, SQLINTEGER *pnStringLengthPtr )
{
SQLINTEGER nStringLength;
@@ -461,7 +465,7 @@
case SQL_DESC_CATALOG_NAME:
MYODBCCstrncpy( (SQLWCHAR*)pValuePtr, nBufferLength / sizeof(SQLWCHAR),
getCatalogName().utf16(), _TRUNCATE );
- *pnStringLengthPtr = getCatalogNameName().length() * sizeof(SQLWCHAR);
+ *pnStringLengthPtr = getCatalogName().length() * sizeof(SQLWCHAR);
if ( *pnStringLengthPtr > nBufferLength )
MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
break;
@@ -617,238 +621,238 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLINTEGER MYODBCResRec::getAutoUniqueValue()
+SQLINTEGER MYODBCDesRec::getAutoUniqueValue()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nAutoUniqueValue );
}
-QString MYODBCResRec::getBaseColumnName()
+QString MYODBCDesRec::getBaseColumnName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringBaseColumnName );
}
-QString MYODBCResRec::getBaseTableName()
+QString MYODBCDesRec::getBaseTableName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringBaseTableName );
}
-SQLINTEGER MYODBCResRec::getCaseSensitive()
+SQLINTEGER MYODBCDesRec::getCaseSensitive()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nCaseSensitive );
}
-QString MYODBCResRec::getCatalogName()
+QString MYODBCDesRec::getCatalogName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringCatalogName );
}
-SQLSMALLINT MYODBCResRec::getConciseType()
+SQLSMALLINT MYODBCDesRec::getConciseType()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nConciseType );
}
-SQLPOINTER MYODBCResRec::getDataPtr()
+SQLPOINTER MYODBCDesRec::getDataPtr()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( pDataPtr );
}
-SQLSMALLINT MYODBCResRec::getDatetimeIntervalCode()
+SQLSMALLINT MYODBCDesRec::getDatetimeIntervalCode()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nDatetimeIntervalCode );
}
-SQLINTEGER MYODBCResRec::getDatetimeIntervalPrecision()
+SQLINTEGER MYODBCDesRec::getDatetimeIntervalPrecision()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nDatetimeIntervalPrecision );
}
-SQLINTEGER MYODBCResRec::getDisplaySize()
+SQLINTEGER MYODBCDesRec::getDisplaySize()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nDisplaySize );
}
-SQLSMALLINT MYODBCResRec::getFixedPrecScale()
+SQLSMALLINT MYODBCDesRec::getFixedPrecScale()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nFixedPrecScale );
}
-SQLINTEGER *MYODBCResRec::getIndicatorPtr()
+SQLINTEGER *MYODBCDesRec::getIndicatorPtr()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( pnIndicatorPtr );
}
-QString MYODBCResRec::getLabel()
+QString MYODBCDesRec::getLabel()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringLabel );
}
-SQLUINTEGER MYODBCResRec::getLength()
+SQLUINTEGER MYODBCDesRec::getLength()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nLength );
}
-QString MYODBCResRec::getLiteralPrefix()
+QString MYODBCDesRec::getLiteralPrefix()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringLiteralPrefix );
}
-QString MYODBCResRec::getLiteralSuffix()
+QString MYODBCDesRec::getLiteralSuffix()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringLiteralSuffix );
}
-QString MYODBCResRec::getLocalTypeName()
+QString MYODBCDesRec::getLocalTypeName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringLocalTypeName );
}
-QString MYODBCResRec::getName()
+QString MYODBCDesRec::getName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringName );
}
-SQLSMALLINT MYODBCResRec::getNullable()
+SQLSMALLINT MYODBCDesRec::getNullable()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nNullable );
}
-SQLINTEGER MYODBCResRec::getNumPrecRadix()
+SQLINTEGER MYODBCDesRec::getNumPrecRadix()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nNumPrecRadix );
}
-SQLINTEGER MYODBCResRec::getOctetLength()
+SQLINTEGER MYODBCDesRec::getOctetLength()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nOctetLength );
}
-SQLINTEGER *MYODBCResRec::getOctetLengthPtr()
+SQLINTEGER *MYODBCDesRec::getOctetLengthPtr()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( pnOctetLengthPtr );
}
-SQLSMALLINT MYODBCResRec::getParamterType()
+SQLSMALLINT MYODBCDesRec::getParamterType()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nParamterType );
}
-SQLSMALLINT MYODBCResRec::getPrecision()
+SQLSMALLINT MYODBCDesRec::getPrecision()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nPrecision );
}
-SQLSMALLINT MYODBCResRec::getRowver()
+SQLSMALLINT MYODBCDesRec::getRowver()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nRowver );
}
-SQLSMALLINT MYODBCResRec::getScale()
+SQLSMALLINT MYODBCDesRec::getScale()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nScale );
}
-QString MYODBCResRec::getSchemaName()
+QString MYODBCDesRec::getSchemaName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringSchemaName );
}
-SQLSMALLINT MYODBCResRec::getSearchable()
+SQLSMALLINT MYODBCDesRec::getSearchable()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nSearchable );
}
-QString MYODBCResRec::getTableName()
+QString MYODBCDesRec::getTableName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringTableName );
}
-SQLSMALLINT MYODBCResRec::getType()
+SQLSMALLINT MYODBCDesRec::getType()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nType );
}
-QString MYODBCResRec::getTypeName()
+QString MYODBCDesRec::getTypeName()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( stringTypeName );
}
-SQLSMALLINT MYODBCResRec::getUnnamed()
+SQLSMALLINT MYODBCDesRec::getUnnamed()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nUnnamed );
}
-SQLSMALLINT MYODBCResRec::getUnsigned()
+SQLSMALLINT MYODBCDesRec::getUnsigned()
{
MYODBCDbgEnter();
MYODBCDbgReturn3( nUnsigned );
}
-SQLSMALLINT MYODBCResRec::getUpdatable()
+SQLSMALLINT MYODBCDesRec::getUpdatable()
{
MYODBCDbgEnter();
@@ -856,7 +860,7 @@
}
-SQLRETURN MYODBCResRec::doUnbind()
+SQLRETURN MYODBCDesRec::doUnbind()
{
MYODBCDbgEnter();
@@ -865,7 +869,7 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MYODBCResRec::setIntervalCode( SQLSMALLINT nDateTimeIntervalCode )
+SQLRETURN MYODBCDesRec::setIntervalCode( SQLSMALLINT nDateTimeIntervalCode )
{
MYODBCDbgEnter();
@@ -1633,4 +1637,16 @@
MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY092, 0, NULL ) );
}
+SQLRETURN MYODBCDesRec::doConsistencyCheck()
+{
+ MYODBCDbgEnter();
+ /*! \todo
+
+ Most of this stuff is done when fields set but need to ensure all is
+ addressed as per spec.
+ */
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRec.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRec.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRec.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -27,14 +27,14 @@
/* forward declare */
class MYODBCDes;
-class MYODBCResRec
+class MYODBCDesRec
{
public:
- MYODBCResRec( MYODBCDes *pdes );
- ~MYODBCResRec();
+ MYODBCDesRec( MYODBCDes *pdes );
+ ~MYODBCDesRec();
/* setters */
- virtual SQLRETURN setDescRec( SQLSMALLINT nType, SQLSMALLINT nSubType, SQLINTEGER
nLength, SQLSMALLINT nPrecision, SQLSMALLINT nScale, SQLPOINTER pDataPtr, SQLINTEGER
*pnStringLengthPtr, SQLINTEGER *pnIndicatorPtr ) = 0;
+ 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 ) = 0;
virtual SQLRETURN setAutoUniqueValue( SQLINTEGER nAutoUniqueValue );
@@ -163,6 +163,8 @@
virtual SQLRETURN setTypeSQL( SQLSMALLINT nType );
virtual SQLRETURN setConciseTypeC( SQLSMALLINT nConciseType );
virtual SQLRETURN setConciseTypeSQL( SQLSMALLINT nConciseType );
+
+ virtual SQLRETURN doConsistencyCheck();
};
#endif
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -1,9 +1,30 @@
#include "MYODBCDesInternal.h"
-SQLRETURN MYODBCDesIRD::setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER pValuePtr,
SQLINTEGER nBufferLength )
+/*!
+ \brief zzzzz
+
+ zzzzz
+
+ \param zzzzz
+
+ \return zzzzz
+
+ \sa zzzzz
+*/
+MYODBCDesRecAPD::MYODBCDesRecAPD( MYODBCDesAPD *pdes )
+ : MYODBCResRec( pdes )
{
MYODBCDbgEnter();
+ Q_ASSERT( !pdes );
+
+ MYODBCDbgReturn2();
+}
+
+SQLRETURN MYODBCDesRecAPD::setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER
pValuePtr, SQLINTEGER nBufferLength )
+{
+ MYODBCDbgEnter();
+
/*! \internal ODBC Rule
If an application calls SQLSetDescField to set any field other than
SQL_DESC_COUNT or the
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecAPD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -3,14 +3,12 @@
class MYODBCDesAPD;
-class MYODBCDesRecAPD
+class MYODBCDesRecAPD : public MYODBCDesRec
{
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 */
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -1,153 +1,377 @@
#include "MYODBCDesInternal.h"
-SQLRETURN MYODBCDesIRD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
+/*!
+ \brief zzzzz
+
+ zzzzz
+
+ \param zzzzz
+
+ \return zzzzz
+
+ \sa zzzzz
+*/
+MYODBCDesRecARD::MYODBCDesRecARD( MYODBCDesARD *pdes )
+ : MYODBCResRec( pdes )
{
MYODBCDbgEnter();
- /*!
- \internal ODBC Rule
+ Q_ASSERT( !pdes );
- If an application calls SQLSetDescField to set any field other
- than SQL_DESC_COUNT or the deferred fields SQL_DESC_DATA_PTR,
- SQL_DESC_OCTET_LENGTH_PTR, or SQL_DESC_INDICATOR_PTR, the record
- becomes unbound.
+ MYODBCDbgReturn2();
+}
+
+SQLRETURN MYODBCDesRecARD::setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER
pValuePtr, SQLINTEGER nBufferLength )
+{
+ MYODBCDbgEnter();
+
+ /*! \internal ODBC Rule
+
+ If an application calls SQLSetDescField to set any field other than
SQL_DESC_COUNT or the
+ deferred fields SQL_DESC_DATA_PTR, SQL_DESC_OCTET_LENGTH_PTR, or
SQL_DESC_INDICATOR_PTR,
+ the record becomes unbound.
*/
+ if ( nFieldIdentifier != SQL_DESC_DATA_PTR &&
+ nFieldIdentifier != SQL_DESC_OCTET_LENGTH_PTR &&
+ nFieldIdentifier != SQL_DESC_INDICATOR_PTR )
+ {
+ doUnbind();
+ }
- /* the above rule is covered by the; doUnbind() calls */
-
- /* header field? */
switch ( nFieldIdentifier )
{
- case SQL_DESC_ALLOC_TYPE:
+ case SQL_DESC_AUTO_UNIQUE_VALUE:
/*!
\internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_BASE_COLUMN_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_BASE_TABLE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_CASE_SENSITIVE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_CATALOG_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- ARD: R
- APD: R
- IRD: R
- IPD: R
+ case SQL_DESC_CONCISE_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setConciseTypeC( (SQLSMALLINT)pValuePtr ) );
- case SQL_DESC_ARRAY_SIZE:
+ case SQL_DESC_DATA_PTR:
/*!
\internal ODBC Rule
+
+ ARD: R/W
+ */
+ {
+ bool bHasInfo = false;
+ SQLRETURN nReturn = setDataPtr( pValuePtr );
+ if ( nReturn == SQL_SUCCESS_WITH_INFO )
+ bHasInfo = true;
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ MYODBCDbgReturn( nReturn );
+
+ /*!
+ \internal ODBC Rule
+
+ The SQL_DESC_DATA_PTR field in the IPD can be set to force a
+ consistency check. In a subsequent call to SQLGetDescField or
+ SQLGetDescRec, the driver is not required to return the value
+ that SQL_DESC_DATA_PTR was set to.
+
+ Whenever the SQL_DESC_DATA_PTR field of an ARD, APD, or IPD is set,
+ the driver checks that the value in the SQL_DESC_TYPE field contains
+ one of the valid ODBC C data types or a driver-specific data type,
+ and that all other fields affecting the data types are consistent.
+ */
+ nReturn = doConsistencyCheck();
+ if ( nReturn == SQL_SUCCESS_WITH_INFO )
+ bHasInfo = true;
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ MYODBCDbgReturn( nReturn );
+
+ if ( bHasInfo )
+ MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
+ }
+ MYODBCDbgReturn( SQL_SUCCEEDED );
+
+ case SQL_DESC_DATETIME_INTERVAL_CODE:
+ /*!
+ \internal ODBC Rule
+
ARD: R/W
- APD: R/W
- IRD: Unused
- IPD: Unused
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setIntervalCode( (SQLSMALLINT)pValuePtr ) );
- case SQL_DESC_ARRAY_STATUS_PTR:
+ case SQL_DESC_DATETIME_INTERVAL_PRECISION:
/*!
\internal ODBC Rule
+
+ ARD: R/W
+ */
+ /*!
+ \internal ODBC Rule
+
+ The number of digits for an exact numeric type, the number
+ of bits in the mantissa (binary precision) for an approximate
+ numeric type, or the numbers of digits in the fractional
+ seconds component for the SQL_TYPE_TIME, SQL_TYPE_TIMESTAMP,
+ or SQL_INTERVAL_SECOND data type. This field is undefined for
+ all other data types.
+ */
+ MYODBCDbgReturn( setDatetimeIntervalPrecision( (SQLSMALLINT)pValuePtr ) );
+
+ case SQL_DESC_DISPLAY_SIZE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_FIXED_PREC_SCALE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+
+ case SQL_DESC_INDICATOR_PTR:
+ /*!
+ \internal ODBC Rule
+
ARD: R/W
- APD: R/W
- IRD: R/W
- IPD: R/W
- */
- MYODBCDbgReturn( setArrayStatusPtr( (SQLUSMALLINT*)pValuePtr ) );
+ */
+ MYODBCDbgReturn( setIndicatorPtr( (SQLINTEGER*)pValuePtr ) );
- case SQL_DESC_BIND_OFFSET_PTR:
- /*!
+ case SQL_DESC_LABEL:
+ /*!
\internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ case SQL_DESC_LENGTH:
+ /*!
+ \internal ODBC Rule
+
ARD: R/W
- APD: R/W
- IRD: Unused
- IPD: Unused
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setLength( (SQLUINTEGER)pValuePtr ) );
- case SQL_DESC_BIND_TYPE:
+ case SQL_DESC_LITERAL_PREFIX:
/*!
\internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_LITERAL_SUFFIX:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_LOCAL_TYPE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_NULLABLE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ case SQL_DESC_NUM_PREC_RADIX:
+ /*!
+ \internal ODBC Rule
+
ARD: R/W
- APD: R/W
- IRD: Unused
- IPD: Unused
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- case SQL_DESC_COUNT:
+ /*!
+ \internal ODBC Rule
+
+ This SQLINTEGER field contains a value of 2 if the data type in
+ the SQL_DESC_TYPE field is an approximate numeric data type,
+ because the SQL_DESC_PRECISION field contains the number of bits.
+ This field contains a value of 10 if the data type in the
+ SQL_DESC_TYPE field is an exact numeric data type, because the
+ SQL_DESC_PRECISION field contains the number of decimal digits.
+ This field is set to 0 for all non-numeric data types.
+ */
+ {
+ SQLINTEGER n = (SQLINTEGER)pValuePtr;
+
+ if ( n != 0 && n != 2 && n != 10 )
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY092, 0, NULL )
);
+ }
+
+ MYODBCDbgReturn( setNumPrecRadix( (SQLINTEGER)pValuePtr ) );
+
+ case SQL_DESC_OCTET_LENGTH:
/*!
\internal ODBC Rule
+
+ ARD: R/W
+ */
+ /*!
+ \internal ODBC Rule
+
+ For ARDs, this field is defined only for output or input/output
+ parameters.
+ */
+ MYODBCDbgReturn( setOctetLength( (SQLINTEGER)pValuePtr ) );
+
+ case SQL_DESC_OCTET_LENGTH_PTR:
+ /*!
+ \internal ODBC Rule
+
ARD: R/W
- APD: R/W
- IRD: R
- IPD: R/W
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setOctetLengthPtr( (SQLINTEGER*)pValuePtr ) );
- case SQL_DESC_ROWS_PROCESSED_PTR:
+ case SQL_DESC_PARAMETER_TYPE:
/*!
\internal ODBC Rule
-
+
ARD: Unused
- APD: Unused
- IRD: R/W
- IPD: R/W
- */
- MYODBCDbgReturn( setRowsProcessedPtr( (SQLUINTEGER*)pValuePtr ) );
- } /* switch (for header fields) */
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- /* record field needs a valid record */
- if ( nRecord < 0 || nRecord >= listRecords.count() )
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+ case SQL_DESC_PRECISION:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ */
- /* handle as record field */
- MYODBCDbgReturn( listRecords[nRecord]->setDescField( nFieldIdentifier, pValuePtr,
nBufferLength ) );
-}
+ /*!
+ \internal ODBC Rule
+
+ This SQLSMALLINT pDesRec field contains the number of digits
+ for an exact numeric type, the number of bits in the mantissa
+ (binary precision) for an approximate numeric type, or the numbers
+ of digits in the fractional seconds component for the SQL_TYPE_TIME,
+ SQL_TYPE_TIMESTAMP, or SQL_INTERVAL_SECOND data type. This field
+ is undefined for all other data types.
+ */
+ MYODBCDbgReturn( setPrecision( (SQLSMALLINT)pValuePtr ) );
-/*!
- \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.
+ case SQL_DESC_ROWVER:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- \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
+ case SQL_DESC_SCALE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ */
- \retval MYODBC_C_TRUE success (its possible to have success but count <
- SQL_DESC_COUNT)
- \retval MYODBC_C_FALSE failed
-*/
-SQLRETURN MYODBCDesIRD::setCount( SQLSMALLINT nCount, bool bUnbind )
-{
- MYODBCDbgEnter();
+ /*!
+ \internal ODBC Rule
+
+ This SQLSMALLINT pDesRec field contains the defined scale for
+ decimal and numeric data types. The field is undefined for all
+ other data types.
+ */
+ MYODBCDbgReturn( setScale( (SQLSMALLINT)pValuePtr ) );
- /* We should always have a bookmark record at index 0. */
- if ( nCount < 0 )
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+ case SQL_DESC_SCHEMA_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_SEARCHABLE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_TABLE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- /* append */
- while ( nCount > listRecords.count() )
- {
- new MYODBCDesRecIRD( this );
- }
+ case SQL_DESC_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: R/W
+ */
+ MYODBCDbgReturn( setTypeC( (SQLSMALLINT)pValuePtr ) );
- /* truncate */
- while ( listRecords.count() > nCount )
- {
- /* do not delete bound records */
- if ( listRecords.last()->getDataPtr() && !bUnbind )
- break;
+ case SQL_DESC_TYPE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_UNNAMED:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_UNSIGNED:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ case SQL_DESC_UPDATABLE:
+ /*!
+ \internal ODBC Rule
+
+ ARD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ }
- delete listRecords.last();
- }
-
- MYODBCDbgReturn( SQL_SUCCESS );
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
}
-
-
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecARD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -3,14 +3,12 @@
class MYODBCDesARD;
-class MYODBCDesRecARD
+class MYODBCDesRecARD : public MYODBCDesRec
{
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 */
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -1,153 +1,377 @@
#include "MYODBCDesInternal.h"
-SQLRETURN MYODBCDesIRD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
+/*!
+ \brief zzzzz
+
+ zzzzz
+
+ \param zzzzz
+
+ \return zzzzz
+
+ \sa zzzzz
+*/
+MYODBCDesRecIPD::MYODBCDesRecIPD( MYODBCDesIPD *pdes )
+ : MYODBCResRec( pdes )
{
MYODBCDbgEnter();
- /*!
- \internal ODBC Rule
+ Q_ASSERT( !pdes );
- If an application calls SQLSetDescField to set any field other
- than SQL_DESC_COUNT or the deferred fields SQL_DESC_DATA_PTR,
- SQL_DESC_OCTET_LENGTH_PTR, or SQL_DESC_INDICATOR_PTR, the record
- becomes unbound.
+ MYODBCDbgReturn2();
+}
+
+SQLRETURN MYODBCDesRecIPD::setDescField( SQLSMALLINT nFieldIdentifier, SQLPOINTER
pValuePtr, SQLINTEGER nBufferLength )
+{
+ MYODBCDbgEnter();
+
+ /*! \internal ODBC Rule
+
+ If an application calls SQLSetDescField to set any field other than
SQL_DESC_COUNT or the
+ deferred fields SQL_DESC_DATA_PTR, SQL_DESC_OCTET_LENGTH_PTR, or
SQL_DESC_INDICATOR_PTR,
+ the record becomes unbound.
*/
+ if ( nFieldIdentifier != SQL_DESC_DATA_PTR &&
+ nFieldIdentifier != SQL_DESC_OCTET_LENGTH_PTR &&
+ nFieldIdentifier != SQL_DESC_INDICATOR_PTR )
+ {
+ doUnbind();
+ }
- /* the above rule is covered by the; doUnbind() calls */
-
- /* header field? */
switch ( nFieldIdentifier )
{
- case SQL_DESC_ALLOC_TYPE:
+ case SQL_DESC_AUTO_UNIQUE_VALUE:
/*!
\internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_BASE_COLUMN_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_BASE_TABLE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_CASE_SENSITIVE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_CATALOG_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- ARD: R
- APD: R
- IRD: R
- IPD: R
+ case SQL_DESC_CONCISE_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setConciseTypeC( (SQLSMALLINT)pValuePtr ) );
- case SQL_DESC_ARRAY_SIZE:
+ case SQL_DESC_DATA_PTR:
/*!
\internal ODBC Rule
+
+ IPD: R/W
+ */
+ {
+ bool bHasInfo = false;
+ SQLRETURN nReturn = setDataPtr( pValuePtr );
- ARD: R/W
- APD: R/W
- IRD: Unused
- IPD: Unused
+ if ( nReturn == SQL_SUCCESS_WITH_INFO )
+ bHasInfo = true;
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ MYODBCDbgReturn( nReturn );
+
+ /*!
+ \internal ODBC Rule
+
+ The SQL_DESC_DATA_PTR field in the IPD can be set to force a
+ consistency check. In a subsequent call to SQLGetDescField or
+ SQLGetDescRec, the driver is not required to return the value
+ that SQL_DESC_DATA_PTR was set to.
+
+ Whenever the SQL_DESC_DATA_PTR field of an IPD, APD, or IPD is set,
+ the driver checks that the value in the SQL_DESC_TYPE field contains
+ one of the valid ODBC C data types or a driver-specific data type,
+ and that all other fields affecting the data types are consistent.
+ */
+ nReturn = doConsistencyCheck();
+ if ( nReturn == SQL_SUCCESS_WITH_INFO )
+ bHasInfo = true;
+ if ( !SQL_SUCCEEDED( nReturn ) )
+ MYODBCDbgReturn( nReturn );
+
+ if ( bHasInfo )
+ MYODBCDbgReturn( SQL_SUCCESS_WITH_INFO );
+ }
+ MYODBCDbgReturn( SQL_SUCCEEDED );
+
+ case SQL_DESC_DATETIME_INTERVAL_CODE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( setIntervalCode( (SQLSMALLINT)pValuePtr ) );
- case SQL_DESC_ARRAY_STATUS_PTR:
+ case SQL_DESC_DATETIME_INTERVAL_PRECISION:
/*!
\internal ODBC Rule
+
+ IPD: R/W
+ */
- ARD: R/W
- APD: R/W
- IRD: R/W
- IPD: R/W
- */
- MYODBCDbgReturn( setArrayStatusPtr( (SQLUSMALLINT*)pValuePtr ) );
+ /*!
+ \internal ODBC Rule
+
+ The number of digits for an exact numeric type, the number
+ of bits in the mantissa (binary precision) for an approximate
+ numeric type, or the numbers of digits in the fractional
+ seconds component for the SQL_TYPE_TIME, SQL_TYPE_TIMESTAMP,
+ or SQL_INTERVAL_SECOND data type. This field is undefined for
+ all other data types.
+ */
+ MYODBCDbgReturn( setDatetimeIntervalPrecision( (SQLSMALLINT)pValuePtr ) );
- case SQL_DESC_BIND_OFFSET_PTR:
- /*!
+ case SQL_DESC_DISPLAY_SIZE:
+ /*!
\internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_FIXED_PREC_SCALE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- ARD: R/W
- APD: R/W
- IRD: Unused
+ case SQL_DESC_INDICATOR_PTR:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
+ */
+ MYODBCDbgReturn( setIndicatorPtr( (SQLINTEGER*)pValuePtr ) );
+
+ case SQL_DESC_LABEL:
+ /*!
+ \internal ODBC Rule
+
IPD: Unused
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- case SQL_DESC_BIND_TYPE:
+ case SQL_DESC_LENGTH:
/*!
\internal ODBC Rule
+
+ IPD: R/W
+ */
+ MYODBCDbgReturn( setLength( (SQLUINTEGER)pValuePtr ) );
- ARD: R/W
- APD: R/W
- IRD: Unused
+ case SQL_DESC_LITERAL_PREFIX:
+ /*!
+ \internal ODBC Rule
+
IPD: Unused
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ case SQL_DESC_LITERAL_SUFFIX:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_LOCAL_TYPE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_NULLABLE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- case SQL_DESC_COUNT:
+ case SQL_DESC_NUM_PREC_RADIX:
/*!
\internal ODBC Rule
+
+ IPD: R/W
+ */
- ARD: R/W
- APD: R/W
- IRD: R
+ /*!
+ \internal ODBC Rule
+
+ This SQLINTEGER field contains a value of 2 if the data type in
+ the SQL_DESC_TYPE field is an approximate numeric data type,
+ because the SQL_DESC_PRECISION field contains the number of bits.
+ This field contains a value of 10 if the data type in the
+ SQL_DESC_TYPE field is an exact numeric data type, because the
+ SQL_DESC_PRECISION field contains the number of decimal digits.
+ This field is set to 0 for all non-numeric data types.
+ */
+ {
+ SQLINTEGER n = (SQLINTEGER)pValuePtr;
+
+ if ( n != 0 && n != 2 && n != 10 )
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY092, 0, NULL )
);
+ }
+
+ MYODBCDbgReturn( setNumPrecRadix( (SQLINTEGER)pValuePtr ) );
+
+ case SQL_DESC_OCTET_LENGTH:
+ /*!
+ \internal ODBC Rule
+
IPD: R/W
*/
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- case SQL_DESC_ROWS_PROCESSED_PTR:
/*!
\internal ODBC Rule
+
+ For IPDs, this field is defined only for output or input/output
+ parameters.
+ */
+ MYODBCDbgReturn( setOctetLength( (SQLINTEGER)pValuePtr ) );
- ARD: Unused
- APD: Unused
- IRD: R/W
- IPD: R/W
- */
- MYODBCDbgReturn( setRowsProcessedPtr( (SQLUINTEGER*)pValuePtr ) );
- } /* switch (for header fields) */
+ case SQL_DESC_OCTET_LENGTH_PTR:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
+ */
+ MYODBCDbgReturn( setOctetLengthPtr( (SQLINTEGER*)pValuePtr ) );
- /* record field needs a valid record */
- if ( nRecord < 0 || nRecord >= listRecords.count() )
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+ case SQL_DESC_PARAMETER_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- /* handle as record field */
- MYODBCDbgReturn( listRecords[nRecord]->setDescField( nFieldIdentifier, pValuePtr,
nBufferLength ) );
-}
+ case SQL_DESC_PRECISION:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
+ */
-/*!
- \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.
+ /*!
+ \internal ODBC Rule
+
+ This SQLSMALLINT pDesRec field contains the number of digits
+ for an exact numeric type, the number of bits in the mantissa
+ (binary precision) for an approximate numeric type, or the numbers
+ of digits in the fractional seconds component for the SQL_TYPE_TIME,
+ SQL_TYPE_TIMESTAMP, or SQL_INTERVAL_SECOND data type. This field
+ is undefined for all other data types.
+ */
+ MYODBCDbgReturn( setPrecision( (SQLSMALLINT)pValuePtr ) );
- \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
+ case SQL_DESC_ROWVER:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- \retval MYODBC_C_TRUE success (its possible to have success but count <
- SQL_DESC_COUNT)
- \retval MYODBC_C_FALSE failed
-*/
-SQLRETURN MYODBCDesIRD::setCount( SQLSMALLINT nCount, bool bUnbind )
-{
- MYODBCDbgEnter();
+ case SQL_DESC_SCALE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
+ */
- /* We should always have a bookmark record at index 0. */
- if ( nCount < 0 )
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+ /*!
+ \internal ODBC Rule
+
+ This SQLSMALLINT pDesRec field contains the defined scale for
+ decimal and numeric data types. The field is undefined for all
+ other data types.
+ */
+ MYODBCDbgReturn( setScale( (SQLSMALLINT)pValuePtr ) );
- /* append */
- while ( nCount > listRecords.count() )
- {
- new MYODBCDesRecIRD( this );
- }
+ case SQL_DESC_SCHEMA_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_SEARCHABLE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_TABLE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
- /* truncate */
- while ( listRecords.count() > nCount )
- {
- /* do not delete bound records */
- if ( listRecords.last()->getDataPtr() && !bUnbind )
- break;
+ case SQL_DESC_TYPE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: R/W
+ */
+ MYODBCDbgReturn( setTypeC( (SQLSMALLINT)pValuePtr ) );
- delete listRecords.last();
- }
+ case SQL_DESC_TYPE_NAME:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_UNNAMED:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_UNSIGNED:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ case SQL_DESC_UPDATABLE:
+ /*!
+ \internal ODBC Rule
+
+ IPD: Unused
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
+ }
- MYODBCDbgReturn( SQL_SUCCESS );
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
}
-
-
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIPD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -3,14 +3,12 @@
class MYODBCDesIPD;
-class MYODBCDesRecIPD
+class MYODBCDesRecIPD : public MYODBCDesRec
{
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 */
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.cpp
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.cpp 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.cpp 2006-01-05 05:07:04 UTC (rev 29)
@@ -1,153 +1,35 @@
#include "MYODBCDesInternal.h"
-SQLRETURN MYODBCDesIRD::setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT
nFieldIdentifier, SQLPOINTER pValuePtr, SQLINTEGER nBufferLength )
-{
- MYODBCDbgEnter();
+/*!
+ \brief zzzzz
+
+ zzzzz
- /*!
- \internal ODBC Rule
+ \param zzzzz
- If an application calls SQLSetDescField to set any field other
- than SQL_DESC_COUNT or the deferred fields SQL_DESC_DATA_PTR,
- SQL_DESC_OCTET_LENGTH_PTR, or SQL_DESC_INDICATOR_PTR, the record
- becomes unbound.
- */
+ \return zzzzz
- /* the above rule is covered by the; doUnbind() calls */
+ \sa zzzzz
+*/
+MYODBCDesRecIRD::MYODBCDesRecIRD( MYODBCDesIRD *pdes )
+ : MYODBCResRec( pdes )
+{
+ MYODBCDbgEnter();
- /* header field? */
- switch ( nFieldIdentifier )
- {
- case SQL_DESC_ALLOC_TYPE:
- /*!
- \internal ODBC Rule
+ Q_ASSERT( !pdes );
- 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( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
-
- 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( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
-
- case SQL_DESC_BIND_TYPE:
- /*!
- \internal ODBC Rule
-
- ARD: R/W
- APD: R/W
- IRD: Unused
- IPD: Unused
- */
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
-
- case SQL_DESC_COUNT:
- /*!
- \internal ODBC Rule
-
- ARD: R/W
- APD: R/W
- IRD: R
- IPD: R/W
- */
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_HY091, 0, NULL ) );
-
- case SQL_DESC_ROWS_PROCESSED_PTR:
- /*!
- \internal ODBC Rule
-
- ARD: Unused
- APD: Unused
- IRD: R/W
- IPD: R/W
- */
- MYODBCDbgReturn( setRowsProcessedPtr( (SQLUINTEGER*)pValuePtr ) );
- } /* 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 ) );
+ MYODBCDbgReturn2();
}
-/*!
- \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 MYODBCDesIRD::setCount( SQLSMALLINT nCount, bool bUnbind )
+SQLRETURN MYODBCDesRecIRD::setDescField( SQLSMALLINT /* nFieldIdentifier */, SQLPOINTER
/* pValuePtr */, SQLINTEGER /* nBufferLength */ )
{
MYODBCDbgEnter();
- /* We should always have a bookmark record at index 0. */
- if ( nCount < 0 )
- MYODBCDbgReturn( dia.doAppend( MYODBC_DIA_07009, 0, NULL ) );
+ /*! \internal ODBC Rule
- /* append */
- while ( nCount > listRecords.count() )
- {
- new MYODBCDesRecIRD( this );
- }
-
- /* truncate */
- while ( listRecords.count() > nCount )
- {
- /* do not delete bound records */
- if ( listRecords.last()->getDataPtr() && !bUnbind )
- break;
-
- delete listRecords.last();
- }
-
- MYODBCDbgReturn( SQL_SUCCESS );
+ The DescriptorHandle argument was associated with an IRD, and the FieldIdentifier
+ argument was not SQL_DESC_ARRAY_STATUS_PTR or SQL_DESC_ROWS_PROCESSED_PTR.
+ */
+ MYODBCDbgReturn( pdes->dia.doAppend( MYODBC_DIA_HY016, 0, NULL ) );
}
-
-
Modified: MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h
===================================================================
--- MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/MYODBCDesLib/MYODBCDesRecIRD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -3,14 +3,12 @@
class MYODBCDesIRD;
-class MYODBCDesRecIRD
+class MYODBCDesRecIRD : public MYODBCDesRec
{
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 */
Modified: MYODBCDes/include/MYODBCDes.h
===================================================================
--- MYODBCDes/include/MYODBCDes.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/include/MYODBCDes.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -138,7 +138,7 @@
virtual SQLUINTEGER getArraySize();
virtual SQLUSMALLINT *getArrayStatusPtr();
virtual SQLINTEGER *getBindOffsetPtr();
- virtual SQLINTEGER getBindType();
+ virtual SQLUINTEGER getBindType();
virtual SQLSMALLINT getCount();
virtual SQLUINTEGER *getRowsProcessedPtr();
@@ -180,27 +180,19 @@
/* misc */
SQLHANDLE getOwner();
- MYODBC_RTTI_DES_TYPE getDesType();
protected:
- MYODBC_RTTI_DES_TYPE nTypeSubID; /*!< MYODBC_RTTI_DES_UND, APD, IPD,
ARD, or IRD */
SQLHANDLE hOwner; /*!< dbc if explicit else stmt
*/
MYODBCDia dia; /*!< errors, warnings, etc
*/
- SQLSMALLINT nAllocType;
- SQLUINTEGER nArraySize;
- SQLUSMALLINT * pnArrayStatusPtr;
- SQLINTEGER * pnBindOffsetPtr;
- SQLINTEGER nBindType;
- /* SQLSMALLINT nCount; */ /*!< Highest viable index (-1 if
none).
- The app sees SQL_DESC_COUNT as 1
based but
- because we have a "hidden" record at
index 0
- it is, for most of what we do, 0
based.
- This var is purposefully independent
of
- records->elements.
*/
- SQLUINTEGER * pnRowsProcessedPtr;
+ SQLSMALLINT nAllocType;
+ SQLUINTEGER nArraySize;
+ SQLUSMALLINT * pnArrayStatusPtr;
+ SQLINTEGER * pnBindOffsetPtr;
+ SQLUINTEGER nBindType;
+ SQLUINTEGER * pnRowsProcessedPtr;
- QList<MYODBCResRec*> 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.
*/
};
@@ -210,308 +202,6 @@
#include "MYODBCDesIPD.h"
#include "MYODBCDesIRD.h"
-+++++++++++++++++++++++++
-
-/*!
- \brief Gets length information from the desired descriptor record.
-
- The length is determined by a set of rules which revolve
- around the data type.
-
- The values returned by these functions for the column or parameter
- size correspond to "precision" as defined in ODBC 2.x. However, the
- values do not necessarily correspond to the values returned in
- SQL_DESC_PRECISION or any other one descriptor field. The same is
- true for decimal digits, which correspond to "scale" as defined in
- ODBC 2.x. It does not necessarily correspond to the values returned
- in SQL_DESC_SCALE or any other one descriptor field, but comes from
- different descriptor fields depending on the data type.
-
- The values returned for the column (or parameter) size do not correspond
- to the values in any one descriptor field. The values can come from
- either the SQL_DESC_PRECISION or the SQL_DESC_LENGTH field, depending
- on the type of data, as shown in the following table.
-
-
- SQL type Descriptor field corresponding to
- column or parameter size
-
- All character and binary types LENGTH
- All numeric types PRECISION
- All datetime and interval types LENGTH
- SQL_BIT LENGTH
-
- \param
-*/
-SQLRETURN MYODBCDesGetLength( MYODBC_DES_PTR pDes,
- SQLUSMALLINT nRecord,
- SQLSMALLINT * pnDataTypePtr,
- SQLUINTEGER * pnColumnSizePtr,
- SQLSMALLINT * pnDecimalDigitsPtr );
-/*!
- \brief Adjusts given descriptor such that it is ready to be of the specified type.
-
- This function has been created to support SQLDescCopy().
-
- \todo At this time this just "resets" the des so as to be ok as
MYODBC_RTTI_DES_UND. In
- the future this should be capable of morphing to and from various
combinations of
- des types. On the other hand - this may only be possible in the driver
itself.
-
- \param pDes A viable descriptor. This was probably just created - a copy of
an
- existing descriptor.
- \param nDesType The descriptor type. Only MYODBC_RTTI_DES_UND supported at this
time.
-
- \return void
-
- \sa SQLDescCopy
-*/
-void MYODBCDesMorph( MYODBC_DES_PTR pDes,
- MYODBC_RTTI_DES_TYPE nDesType );
-
-
-/*!
- \brief Sets SQL_DESC_CONCISE_TYPE field of the given
- descriptor record.
-
- Call this function to set the concise type -
- ensuring that related fields are synchronized as
- needed.
-
- This convenience function saves the caller from
- having to determine whether to call
- MYODBCDesRecConciseTypeSQL() or to call
- MYODBCDesRecConciseTypeC() - this function
- can determine this based upon the descriptor type.
-
- \param pRecord A viable MYODBC_DES_REC_PTR.
- \param nConciseType The concise type. SQL concise type if
- descriptor is an IRD or IPD. C
- concise type if descriptor is an ARD
- or APD.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS Concise type was set and other fields
- synchronized as required.
- \retval !SQL_SUCCESS Error setting concise type. Check
- diagnostic information for details.
-*/
-SQLRETURN MYODBCDesRecConciseType( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nConciseType );
-
-/*!
- \brief Sets SQL_DESC_CONCISE_TYPE - only allow C types.
-
- Sets SQL_DESC_CONCISE_TYPE and synchronises related fields.
-
- \param pRecord A viable MYODBC_DES_REC_PTR. Should be a;
- MYODBC_RTTI_DES_ARD or MYODBC_RTTI_DES_APD.
- \param nConciseType A concise C-type. For example; SQL_C_CHAR.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS
- \retval !SQL_SUCCESS with diagnostic info
-
- \sa MYODBCDesRecConciseType
-*/
-SQLRETURN MYODBCDesRecConciseTypeC( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nValue );
-
-/*!
- \brief Sets SQL_DESC_CONCISE_TYPE - only allow SQL types.
-
- Sets SQL_DESC_CONCISE_TYPE and synchronises related fields.
-
- \param pRecord A viable MYODBC_DES_REC_PTR. Should be a;
- MYODBC_RTTI_DES_IRD or MYODBC_RTTI_DES_IPD.
- \param nConciseType A concise SQL-type. For example; SQL_CHAR.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS
- \retval !SQL_SUCCESS with diagnostic info
-
- \sa MYODBCDesRecConciseType
-*/
-SQLRETURN MYODBCDesRecConciseTypeSQL( MYODBC_DES_REC * pRecord,
- SQLSMALLINT nConciseType );
-
-/*!
- \brief Get desired record.
-
- Get the desired record while accounting for the automatic expansion of
- record array sometimes needed according to ODBC spec.
-
- \param pDes A viable MYODBC_DES_PTR.
- \param nRecord 0 based record (0 = bookmark record)
- \param bAppend - True - IF rec_num > SQL_DESC_COUNT THEN append enough recs
to make rec_num viable
- - False - IF rec_num > SQL_DESC_COUNT THEN return NULL
-
- \return MYODBC_DES_REC_PTR
-*/
-MYODBC_DES_REC_PTR MYODBCDesRecGet( MYODBC_DES_PTR pDes,
- SQLSMALLINT nRecord,
- MYODBC_C_BOOL bAppend );
-
-/*!
- \brief Sets SQL_DESC_DATETIME_INTERVAL_CODE for the given record.
-
- Sets SQL_DESC_DATETIME_INTERVAL_CODE for the given record
- with validation.
-
- \param pRecord A viable MYODBC_DES_REC_PTR.
- \param nDateTimeIntervalCode The desired SQL_DESC_DATETIME_INTERVAL_CODE.
- For example; SQL_CODE_YEAR.
- \return SQLRETURN
- \retval SQL_SUCCESS
- \retval !SQL_SUCCESS With diagnostic info.
-*/
-SQLRETURN MYODBCDesRecIntervalCode( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nDateTimeIntervalCode );
-
-/*!
- \internal
- \brief Initializes an IRD record describing an INTEGER.
-
- This function has been created to reduce the amount of code
- needed to initialize IRD records - such as when we are
- creating internal results.
-
- \param pDesRec Viable, uninitialized, IRD record.
- \param pszColumnName Value for; desc_base_column_name, desc_label, desc_name.
- \param nNullable Value for; desc_nullable.
- \param nUnsigned Value for; desc_unsigned.
-
- \return void
-
- \sa MYODBCDesRecIrdSmallInt
- MYODBCDesRecIrdVarChar
-*/
-void MYODBCDesRecIrdInteger( MYODBC_DES_REC_PTR pDesRec,
- SQLCHAR * pszColumnName,
- SQLSMALLINT nNullable,
- SQLSMALLINT nUnsigned );
-/*!
- \internal
- \brief Initializes an IRD record describing a SMALLINT.
-
- This function has been created to reduce the amount of code
- needed to initialize IRD records - such as when we are
- creating internal results.
-
- \param pDesRec Viable, uninitialized, IRD record.
- \param pszColumnName Value for; desc_base_column_name, desc_label, desc_name.
- \param nNullable Value for; desc_nullable.
- \param nUnsigned Value for; desc_unsigned.
-
- \return void
-
- \sa MYODBCDesRecIrdVarChar
- MYODBCDesRecIrdInteger
-*/
-void MYODBCDesRecIrdSmallInt( MYODBC_DES_REC_PTR pDesRec,
- SQLCHAR * pszColumnName,
- SQLSMALLINT nNullable,
- SQLSMALLINT nUnsigned );
-/*!
- \internal
- \brief Initializes an IRD record describing a VARCHAR.
-
- This function has been created to reduce the amount of code
- needed to initialize IRD records - such as when we are
- creating internal results.
-
- \param pDesRec Viable, uninitialized, IRD record.
- \param pszColumnName Value for; desc_base_column_name, desc_label, desc_name.
- \param nNullable Value for; desc_nullable.
-
- \return void
-
- \sa MYODBCDesRecIrdSmallInt
- MYODBCDesRecIrdInteger
-*/
-void MYODBCDesRecIrdVarChar( MYODBC_DES_REC_PTR pDesRec,
- SQLCHAR * pszColumnName,
- SQLSMALLINT nNullable );
-
-/*!
- \brief Sets SQL_DESC_TYPE field of the given
- descriptor record.
-
- Call this function to set the type -
- ensuring that related fields are synchronized as
- needed.
-
- This convenience function saves the caller from
- having to determine whether to call
- MYODBCDesRecTypeSQL() or to call
- MYODBCDesRecTypeC() - this function
- can determine this based upon the descriptor type.
-
- \param pRecord A viable MYODBC_DES_REC_PTR.
- \param nType The type. SQL type if descriptor
- is an IRD or IPD. C type if
- descriptor is an ARD or APD.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS Type was set and other fields
- synchronized as required.
- \retval !SQL_SUCCESS Error/warning setting type. Check
- diagnostic information for details.
-*/
-SQLRETURN MYODBCDesRecType( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nType );
-
-/*!
- \brief Sets SQL_DESC_TYPE - only allow C types.
-
- Sets SQL_DESC_TYPE and synchronises related fields.
-
- \note Most of the C-type define values are same as corresponding
- SQL-type define values but some are different (at least
- on unixODBC).
-
- \todo There are opportunities to optimize here (reduce code and
- improve response). Current form is for readability.
-
- \param pRecord A viable MYODBC_DES_REC_PTR. Should be a;
- MYODBC_RTTI_DES_ARD or MYODBC_RTTI_DES_APD.
- \param nType A C-type. For example; SQL_C_CHAR.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS
- \retval !SQL_SUCCESS with diagnostic info
-
- \sa MYODBCDesRecType
-*/
-SQLRETURN MYODBCDesRecTypeC( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nType );
-
-/*!
- \brief Sets SQL_DESC_TYPE - only allow SQL types.
-
- Sets SQL_DESC_TYPE and synchronises related fields.
-
- \todo There are opportunities to optimize here (reduce code and
- improve response). Current form is for readability.
-
- \param pRecord A viable MYODBC_DES_REC_PTR. Should be a;
- MYODBC_RTTI_DES_IRD or MYODBC_RTTI_DES_IPD.
- \param nType A SQL-type. For example; SQL_CHAR.
-
- \return SQLRETURN
-
- \retval SQL_SUCCESS
- \retval !SQL_SUCCESS with diagnostic info
-
- \sa MYODBCDesRecType
-*/
-SQLRETURN MYODBCDesRecTypeSQL( MYODBC_DES_REC_PTR pRecord,
- SQLSMALLINT nType );
-
#endif
Modified: MYODBCDes/include/MYODBCDesAPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesAPD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/include/MYODBCDesAPD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -8,18 +8,16 @@
#define MYODBC_DES_APD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecAPD.h"
/*!
\brief
\sa
*/
-class MYODBCDesAPD
+class MYODBCDesAPD : public MYODBCDes
{
friend class MYODBCResRecAPD;
public:
MYODBCDesAPD( SQLHANDLE hOwner );
- ~MYODBCDesAPD();
/* setters */
SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
Modified: MYODBCDes/include/MYODBCDesARD.h
===================================================================
--- MYODBCDes/include/MYODBCDesARD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/include/MYODBCDesARD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -8,18 +8,16 @@
#define MYODBC_DES_ARD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecARD.h"
/*!
\brief
\sa
*/
-class MYODBCDesARD
+class MYODBCDesARD : public MYODBCDes
{
friend class MYODBCResRecARD;
public:
MYODBCDesARD( SQLHANDLE hOwner );
- ~MYODBCDesARD();
/* setters */
SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
Modified: MYODBCDes/include/MYODBCDesIPD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIPD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/include/MYODBCDesIPD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -8,18 +8,16 @@
#define MYODBC_DES_IPD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecIPD.h"
/*!
\brief
\sa
*/
-class MYODBCDesIPD
+class MYODBCDesIPD : public MYODBCDes
{
friend class MYODBCResRecIPD;
public:
MYODBCDesIPD( SQLHANDLE hOwner );
- ~MYODBCDesIPD();
/* setters */
SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
Modified: MYODBCDes/include/MYODBCDesIRD.h
===================================================================
--- MYODBCDes/include/MYODBCDesIRD.h 2006-01-04 06:58:46 UTC (rev 28)
+++ MYODBCDes/include/MYODBCDesIRD.h 2006-01-05 05:07:04 UTC (rev 29)
@@ -8,21 +8,20 @@
#define MYODBC_DES_IRD_H
#include "MYODBCDes.h"
-#include "MYODBCResRecIRD.h"
/*!
\brief
\sa
*/
-class MYODBCDesIRD
+class MYODBCDesIRD : public MYODBCDes
{
friend class MYODBCResRecIRD;
public:
MYODBCDesIRD( SQLHANDLE hOwner );
- ~MYODBCDesIRD();
/* setters */
SQLRETURN setDescField( SQLSMALLINT nRecNumber, SQLSMALLINT nFieldIdentifier,
SQLPOINTER pValuePtr, SQLINTEGER nBufferLength );
+
SQLRETURN setCount( SQLSMALLINT nCount, bool bUnbind );
/* getters */
| Thread |
|---|
| • Connector/ODBC 5 commit: r29 - MYODBCDbg/include MYODBCDes/MYODBCDesLib MYODBCDes/include | pharvey | 5 Jan |