List:Commits« Previous MessageNext Message »
From:jbalint Date:March 28 2007 12:10am
Subject:Connector/ODBC 5 commit: r820 - in trunk/SDK/MYSQLPlus: Library include
View as plain text  
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 includejbalint28 Mar