Modified:
trunk/SDK/MYSQLPlus/Library/MDescriptor.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorAPD.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorARD.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorIPD.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorIRD.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.cpp
trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h
trunk/SDK/MYSQLPlus/include/MDescriptor.h
Log:
removed parent use and QObject base class from MDescriptorRecord, and children use from
MDescriptor
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptor.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptor.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptor.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -18,13 +18,6 @@
setObjectName( "MDescriptor" ); // we avoid Q_OBJECT by avoiding className
- /*!
- \internal
- \note
-
- We only want MDescriptorRecord* children so create MDiagnostic without it being a
child of this. We
- do this to help with performance.
- */
pDiagnostic = new MDiagnostic( NULL, odbcVersion );
nAllocType = allocType;
doInit();
@@ -235,9 +228,9 @@
descriptor.pnRowsProcessedPtr = pnRowsProcessedPtr;
descriptor.setCount( getCount(), true );
- for ( int nRecord = 0; nRecord < children().count(); nRecord++ )
+ for ( int nRecord = 0; nRecord < records.count(); nRecord++ )
{
- *((MDescriptorRecord*)(descriptor.children()[nRecord])) =
*((MDescriptorRecord*)(children()[nRecord]));
+ *(descriptor.records[nRecord]) = *records[nRecord];
}
MYODBCDbgReturn2();
@@ -346,20 +339,12 @@
}
// truncate
+ while ( getCount() > nCount )
{
- QList<MDescriptorRecord*> listRecords =
findChildren<MDescriptorRecord*>();
- QMutableListIterator<MDescriptorRecord*> i( listRecords );
- i.toBack();
- while ( getCount() > nCount && i.hasPrevious() )
- {
- MDescriptorRecord *pDescriptorRecord = i.previous();
-
- if ( pDescriptorRecord->isBound() && !bUnbind )
- break;
-
- i.remove();
- delete pDescriptorRecord;
- }
+ MDescriptorRecord *rec = records.last();
+ if ( rec->isBound() && !bUnbind )
+ break;
+ delete records.takeLast();
}
MYODBCDbgReturn( SQL_SUCCESS );
@@ -404,8 +389,8 @@
MDescriptorRecord *MDescriptor::getRecord( SQLSMALLINT nRecord )
{
MYODBCDbgEnter();
- /* this works because we only have MDescriptorRecord* children */
- MYODBCDbgReturn3( "%p", ((MDescriptorRecord*)(children().at( nRecord ))) );
+
+ MYODBCDbgReturn3( "%p", records[nRecord] );
}
SQLSMALLINT MDescriptor::getAllocType()
@@ -459,9 +444,7 @@
record something of a hidden record).
*/
-// We assume, for the sake of performance, that all children are MDescriptorRecord based.
-
- MYODBCDbgReturn3( "%d", (children().count() - 1) );
+ MYODBCDbgReturn3( "%d", (records.size() - 1) );
}
SQLUINTEGER *MDescriptor::getRowsProcessedPtr()
@@ -476,10 +459,8 @@
MYODBCDbgEnter();
/* delete records */
- while ( children().count() )
- {
- delete ((QObjectList)children()).takeLast();
- }
+ while ( records.count() )
+ delete records.takeLast();
/* reinit header fields */
doInit();
@@ -493,6 +474,7 @@
MYODBCDbgEnter();
MDescriptorRecord *pDescriptorRecord = new MDescriptorRecord( this );
+ records.append( pDescriptorRecord );
MYODBCDbgReturn3( "%p", pDescriptorRecord );
}
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorAPD.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorAPD.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorAPD.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -101,7 +101,8 @@
setCount( nRecNumber );
/* handle as record field */
- MYODBCDbgReturn( ((MDescriptorRecord*)(children()[nRecNumber]))->setDescField(
nFieldIdentifier, pValuePtr, nBufferLength ) );
+ MYODBCDbgReturn( records[nRecNumber]->
+ setDescField( nFieldIdentifier, pValuePtr, nBufferLength ) );
}
MDescriptorRecord *MDescriptorAPD::doAppend()
@@ -109,6 +110,7 @@
MYODBCDbgEnter();
MDescriptorRecordAPD *pDescriptorRecord = new MDescriptorRecordAPD( this );
+ records.append( pDescriptorRecord );
MYODBCDbgReturn3( "%p", pDescriptorRecord );
}
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorARD.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorARD.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorARD.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -125,7 +125,8 @@
setCount( nRecNumber );
/* handle as record field */
- MYODBCDbgReturn( ((MDescriptorRecord*)(children()[nRecNumber]))->setDescField(
nFieldIdentifier, pValuePtr, nBufferLength ) );
+ MYODBCDbgReturn( records[nRecNumber]->
+ setDescField( nFieldIdentifier, pValuePtr, nBufferLength ) );
}
MDescriptorRecord *MDescriptorARD::doAppend()
@@ -133,8 +134,8 @@
MYODBCDbgEnter();
MDescriptorRecordARD *pDescriptorRecord = new MDescriptorRecordARD( this );
+ records.append( pDescriptorRecord );
MYODBCDbgReturn3( "%p", pDescriptorRecord );
}
-
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorIPD.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorIPD.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorIPD.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -121,8 +121,8 @@
setCount( nRecNumber );
/* handle as record field */
- MDescriptorRecord *rec = (MDescriptorRecord*)children().at( nRecNumber );
- MYODBCDbgReturn( rec->setDescField( nFieldIdentifier, pValuePtr, nBufferLength )
);
+ MYODBCDbgReturn( records[nRecNumber]->
+ setDescField( nFieldIdentifier, pValuePtr, nBufferLength ) );
}
MDescriptorRecord *MDescriptorIPD::doAppend()
@@ -130,6 +130,7 @@
MYODBCDbgEnter();
MDescriptorRecordIPD *pDescriptorRecord = new MDescriptorRecordIPD( this );
+ records.append( pDescriptorRecord );
MYODBCDbgReturn3( "%p", pDescriptorRecord );
}
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorIRD.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorIRD.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorIRD.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -80,17 +80,17 @@
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::STATE_07009A ) );
/* handle as record field */
- MYODBCDbgReturn( ((MDescriptorRecord*)(children()[nRecNumber]))->setDescField(
nFieldIdentifier, pValuePtr, nBufferLength ) );
+ MYODBCDbgReturn( records[nRecNumber]->
+ setDescField( nFieldIdentifier, pValuePtr, nBufferLength ) );
}
-
MDescriptorRecord *MDescriptorIRD::doAppend()
{
MYODBCDbgEnter();
MDescriptorRecordIRD *pDescriptorRecord = new MDescriptorRecordIRD( this );
+ records.append( pDescriptorRecord );
MYODBCDbgReturn3( "%p", pDescriptorRecord );
}
-
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.cpp 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.cpp 2007-03-27 22:10:29 UTC (rev 820)
@@ -13,12 +13,11 @@
\sa MYODBCDesRecFree
*/
MDescriptorRecord::MDescriptorRecord( MDescriptor *pDescriptor )
- : QObject( pDescriptor )
+ : descriptor( pDescriptor )
{
MYODBCDbgEnter();
Q_ASSERT( pDescriptor );
- setObjectName( "MDescriptorRecord" ); // we avoid Q_OBJECT by avoiding className
nConciseType = SQL_C_DEFAULT;
pDataPtr = NULL;
@@ -1157,7 +1156,7 @@
{
MYODBCDbgEnter();
- MYODBCDbgReturn3( "%p", (MDescriptor*)(parent()) );
+ MYODBCDbgReturn3( "%p", descriptor );
}
SQLRETURN MDescriptorRecord::getColumnSizeSQL( SQLUINTEGER *pnColumnSize, SQLSMALLINT
*pnDecimalDigits )
@@ -1230,7 +1229,11 @@
*pnDecimalDigits = 0;
break;
default:
- MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
MDiagnostic::STATE_HY000, 0, QString( "%1 %2" ).arg( tr("Unexpected SQL type") ).arg(
getType() ) ) );
+ MYODBCDbgReturn( getDescriptor()->getDiagnostic()->doAppend(
+ MDiagnostic::STATE_HY000, 0,
+ QString( "%1 %2" )
+ .arg( QObject::tr("Unexpected SQL type") )
+ .arg( getType() ) ) );
}
MYODBCDbgReturn( SQL_SUCCESS );
@@ -2639,4 +2642,3 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-
Modified: trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/Library/MDescriptorRecord.h 2007-03-27 22:10:29 UTC (rev 820)
@@ -28,7 +28,7 @@
\sa MDescriptor
*/
-class MDescriptorRecord : public QObject
+class MDescriptorRecord
{
friend class MStatement;
friend class MDescriptor;
@@ -191,6 +191,7 @@
SQLSMALLINT nUnnamed; /*!< */
SQLSMALLINT nUnsigned; /*!< */
SQLSMALLINT nUpdatable; /*!< */
+ MDescriptor *descriptor;
/* getters */
QString getTypeNameSQL( SQLSMALLINT nType );
Modified: trunk/SDK/MYSQLPlus/include/MDescriptor.h
===================================================================
--- trunk/SDK/MYSQLPlus/include/MDescriptor.h 2007-03-27 00:10:22 UTC (rev 819)
+++ trunk/SDK/MYSQLPlus/include/MDescriptor.h 2007-03-27 22:10:29 UTC (rev 820)
@@ -129,6 +129,8 @@
void doInit();
+ QList<MDescriptorRecord *> records;
+
private:
MDiagnostic * pDiagnostic; /*!< our diagnostic information
*/
MDiagnostic * pDiagnosticCaller; /*!< our callers diagnostic information
(send diag here if !NULL) */
| Thread |
|---|
| • Connector/ODBC 5 commit: r820 - in trunk/SDK/MYSQLPlus: Library include | jbalint | 28 Mar |