List:Commits« Previous MessageNext Message »
From:pharvey Date:January 27 2006 5:46am
Subject:Connector/ODBC 5 commit: r50 - in MYODBCRes: MYODBCResLib include
View as plain text  
Modified:
   MYODBCRes/MYODBCResLib/MYODBCRes.cpp
   MYODBCRes/MYODBCResLib/MYODBCResDriver.cpp
   MYODBCRes/MYODBCResLib/MYODBCResLib.pro
   MYODBCRes/MYODBCResLib/MYODBCResServer.cpp
   MYODBCRes/include/MYODBCRes.h
   MYODBCRes/include/MYODBCResDriver.h
   MYODBCRes/include/MYODBCResServer.h
Log:
UNICODE:
- start using new MYODBCAttStatement in MYODBCRes stuff

Modified: MYODBCRes/MYODBCResLib/MYODBCRes.cpp
===================================================================
--- MYODBCRes/MYODBCResLib/MYODBCRes.cpp	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/MYODBCResLib/MYODBCRes.cpp	2006-01-27 05:46:29 UTC (rev 50)
@@ -43,15 +43,13 @@
 
     \sa     MYODBCResFree
 */
-MYODBCRes::MYODBCRes( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql )
+MYODBCRes::MYODBCRes( MYODBCAttStatement *patt, MYSQL *pmysql )
 {
     MYODBCDbgEnter();
 
-    Q_ASSERT( !pdia );
-    Q_ASSERT( !pdesIRD );
+    Q_ASSERT( !patt );
 
-    this->pdia      = pdia;
-    this->pdesIRD   = pdesIRD;
+    this->patt      = patt;
     this->pmysql    = pmysql;
 
     MYODBCDbgReturn2();
@@ -64,20 +62,48 @@
     MYODBCDbgReturn2();
 }
 
-MYODBCDes * MYODBCRes::getDesIRD()
+MYODBCDes * MYODBCRes::getAppParamDesc()
 {
     MYODBCDbgEnter();
 
-    MYODBCDbgReturn3( "%p", pdesIRD );
+    MYODBCDbgReturn3( "%p", patt->getAppParamDesc() );
 }
 
+MYODBCDes * MYODBCRes::getAppRowDesc()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%p", patt->getAppRowDesc() );
+}
+
+MYODBCDes * MYODBCRes::getImpParamDesc()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%p", patt->getImpParamDesc() );
+}
+
+MYODBCDes * MYODBCRes::getImpRowDesc()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%p", patt->getImpRowDesc() );
+}
+
+MYODBCDia * MYODBCRes::getDia()
+{
+    MYODBCDbgEnter();
+
+    MYODBCDbgReturn3( "%p", patt->getDia() );
+}
+
 bool MYODBCRes::isValidColumn( uint nColumn )
 {
     bool b;
 
     MYODBCDbgEnter();
 
-    b = ( nColumn <= (uint)pdesIRD->getCount() );
+    b = ( nColumn <= (uint)getImpRowDesc()->getCount() );
 
     MYODBCDbgReturn3( "%d", b );
 }

Modified: MYODBCRes/MYODBCResLib/MYODBCResDriver.cpp
===================================================================
--- MYODBCRes/MYODBCResLib/MYODBCResDriver.cpp	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/MYODBCResLib/MYODBCResDriver.cpp	2006-01-27 05:46:29 UTC (rev 50)
@@ -1,7 +1,7 @@
 #include "MYODBCResInternal.h"
 
-MYODBCResDriver::MYODBCResDriver( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql )
-    : MYODBCRes( pdia, pdesIRD, pmysql )
+MYODBCResDriver::MYODBCResDriver( MYODBCAttStatement *patt, MYSQL *pmysql )
+    : MYODBCRes( patt, pmysql )
 {
     MYODBCDbgEnter();
 
@@ -48,7 +48,7 @@
 
     Q_ASSERT( !pnColumns );
 
-    *pnColumns = pdesIRD->getCount();
+    *pnColumns = getImpRowDesc()->getCount();
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -95,7 +95,7 @@
     MYODBCDbgEnter();
 
     /* allocate row - no bookmark column allocated */
-    listResults.append( QVector<QVariant>( pdesIRD->getCount() - 1 ) );
+    listResults.append( QVector<QVariant>( getImpRowDesc()->getCount() - 1 ) );
     nRow = listResults.count();
 
     MYODBCDbgReturn( SQL_SUCCESS );
@@ -126,7 +126,7 @@
 {
     MYODBCDbgEnter();
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Execute a statement is not
relevant for driver generated resultsets." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Execute a statement is
not relevant for driver generated resultsets." ) );
 }
 
 SQLRETURN MYODBCResDriver::doFirst()
@@ -152,11 +152,11 @@
 
     if ( nRow == 0 )
     {
-        listResults.insert( nRow, QVector<QVariant>( pdesIRD->getCount() - 1 )
);
+        listResults.insert( nRow, QVector<QVariant>( getImpRowDesc()->getCount()
- 1 ) );
         doFirst();
     }
     else
-        listResults.insert( nRow - 1, QVector<QVariant>( pdesIRD->getCount() - 1
) );
+        listResults.insert( nRow - 1, QVector<QVariant>(
getImpRowDesc()->getCount() - 1 ) );
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -190,7 +190,7 @@
 {
     MYODBCDbgEnter();
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Prepare a statement is not
relevant for driver generated resultsets." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Prepare a statement is
not relevant for driver generated resultsets." ) );
 }
 
 SQLRETURN MYODBCResDriver::doPrev()

Modified: MYODBCRes/MYODBCResLib/MYODBCResLib.pro
===================================================================
--- MYODBCRes/MYODBCResLib/MYODBCResLib.pro	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/MYODBCResLib/MYODBCResLib.pro	2006-01-27 05:46:29 UTC (rev 50)
@@ -13,6 +13,7 @@
 INCLUDEPATH	+= ../../MYODBCRtti/include
 INCLUDEPATH	+= ../../MYODBCDia/include
 INCLUDEPATH	+= ../../MYODBCDes/include
+INCLUDEPATH	+= ../../MYODBCAtt/include
 
 include( ../../mysql.pri )
 

Modified: MYODBCRes/MYODBCResLib/MYODBCResServer.cpp
===================================================================
--- MYODBCRes/MYODBCResLib/MYODBCResServer.cpp	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/MYODBCResLib/MYODBCResServer.cpp	2006-01-27 05:46:29 UTC (rev 50)
@@ -1,7 +1,7 @@
 #include "MYODBCResInternal.h"
 
-MYODBCResServer::MYODBCResServer( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql )
-    : MYODBCRes( pdia, pdesIRD, pmysql )
+MYODBCResServer::MYODBCResServer( MYODBCAttStatement *patt, MYSQL *pmysql )
+    : MYODBCRes( patt, pmysql )
 {
     MYODBCDbgEnter();
 
@@ -24,18 +24,18 @@
     MYODBCDbgEnter();
 
     if ( !isValidRow() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
 
     if ( !isValidColumn( nColumn ) )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid column." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid column." )
);
 
     // can not write this column (and it does not really exist anyway as bookmark is row
num)
     if (  nColumn == 0 )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid column.
Bookmark column is read-only." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid column.
Bookmark column is read-only." ) );
 
     /*! \todo */
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "setData not supported here
at this time." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "setData not supported
here at this time." ) );
 }
 
 SQLRETURN MYODBCResServer::setRow( qulonglong nRow )
@@ -43,12 +43,12 @@
     MYODBCDbgEnter();
 
     if ( !isValidRow() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
 
     if ( bBuffered )
     {
         if ( !isValidRow() )
-            MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
+            MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." )
);
 
         mysql_stmt_data_seek( pstm, nRow );
 
@@ -65,9 +65,9 @@
     Q_ASSERT( !pnColumns );
 
     if ( stringStatement.isEmpty() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, "No statement prepared."
) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, "No statement
prepared." ) );
 
-    *pnColumns = pdesIRD->getCount();
+    *pnColumns = getImpRowDesc()->getCount();
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -77,17 +77,17 @@
     MYODBCDbgEnter();
 
     if ( !isValidRow() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid row." ) );
 
     if ( !isValidColumn( nColumn ) )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Invalid column." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Invalid column." )
);
 
     if ( nColumn == 0 )
         variantData = nRow; // bookmark is row num - obvious limitations apply
     else
         variantData = xxxx;
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "getData not supported here
yet - use SELECT with bound columns." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "getData not supported
here yet - use SELECT with bound columns." ) );
 }
 
 SQLRETURN MYODBCResServer::getRow( qulonglong *pnRow )
@@ -97,7 +97,7 @@
     Q_ASSERT( !pnRow );
 
     if ( stringStatement.isEmpty() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, "No statement prepared."
) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, "No statement
prepared." ) );
 
     *pnRow = nRow;
 
@@ -111,7 +111,7 @@
     Q_ASSERT( !pnRow );
 
     if ( stringStatement.isEmpty() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, "No statement prepared."
) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, "No statement
prepared." ) );
 
     *pnRows = mysql_stmt_num_rows( pstm );
 
@@ -122,14 +122,14 @@
 {
     MYODBCDbgEnter();
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "doAppend not supported here
at this time." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "doAppend not supported
here at this time." ) );
 }
 
 SQLRETURN MYODBCResServer::doClear()
 {
     MYODBCDbgEnter();
 
-    pdesIRD->doClear();
+    getImpRowDesc()->doClear();
     mysql_stmt_close( pstm );
     doInit();
 
@@ -142,7 +142,7 @@
 
     Q_ASSERT( !isValidRow() );
 
-    MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "doDelete not supported here
at this time." ) );
+    MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "doDelete not supported
here at this time." ) );
 }
 
 SQLRETURN MYODBCResServer::doExecute()
@@ -150,18 +150,18 @@
     MYODBCDbgEnter();
 
     if ( !pstmt )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
 
     if ( stringStatement.isEmpty() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
 
     if ( mysql_stmt_execute( pstm ) )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm ),
mysql_stmt_error( pstm ) ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm
), mysql_stmt_error( pstm ) ) );
 
     if ( bBuffered )
     {
         if ( mysql_stmt_store_result( pstm ) )
-            MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm
), mysql_stmt_error( pstm ) ) );
+            MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno(
pstm ), mysql_stmt_error( pstm ) ) );
     }
 
     MYODBCDbgReturn( SQL_SUCCESS );
@@ -188,11 +188,11 @@
 
     if ( nRow == 0 )
     {
-        listResults.insert( nRow, QVector<QVariant>( pdesIRD->getCount() - 1 )
);
+        listResults.insert( nRow, QVector<QVariant>( getImpRowDesc()->getCount()
- 1 ) );
         doFirst();
     }
     else
-        listResults.insert( nRow - 1, QVector<QVariant>( pdesIRD->getCount() - 1
) );
+        listResults.insert( nRow - 1, QVector<QVariant>(
getImpRowDesc()->getCount() - 1 ) );
 
     MYODBCDbgReturn( SQL_SUCCESS );
 }
@@ -202,7 +202,7 @@
     MYODBCDbgEnter();
 
     if ( stringStatement.isEmpty() )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, "No statement prepared."
) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, "No statement
prepared." ) );
 
 ++++
     nRow = listResults.count();
@@ -231,13 +231,13 @@
     MYODBCDbgEnter();
 
     if ( !pstmt )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY010, 0, NULL ) );
 
     /* not prepared */
     this->stringStatement = QString::null;
 
     if ( mysql_stmt_prepare( pstm, stringStatement, stringStatement.length() ) )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm ),
mysql_stmt_error( pstm ) ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm
), mysql_stmt_error( pstm ) ) );
 
     /* now we are prepared */
     this->stringStatement = stringStatement;
@@ -326,13 +326,13 @@
 
     MYODBCDbgEnter();
 
-    pdesIRD->doClear();
+    getImpRowDesc()->doClear();
 
     pMetaData = mysql_stmt_result_metadata( pstm );
     if ( !pMetaData )
     {
         if ( mysql_stmt_error( pstm ) )
-            MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm
), mysql_stmt_error( pstm ) ) );
+            MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno(
pstm ), mysql_stmt_error( pstm ) ) );
         else
             MYODBCDbgReturn( SQL_SUCCESS );
     }
@@ -344,7 +344,7 @@
         unsigned int    nField;
         MYSQL_FIELD *   pField;
 
-        pdesIRD->setCount( nFields, true );
+        getImpRowDesc()->setCount( nFields, true );
 
         pstm->pbindColumns = MYODBCCCalloc( nFields, sizeof(MYSQL_BIND) );
 
@@ -356,7 +356,7 @@
             if ( !SQL_SUCCEEDED( nReturn ) )
             {
                 mysql_free_result( pMetaData );
-                MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Failed to store
field descriptor information." ) );
+                MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Failed to
store field descriptor information." ) );
             }
 
             /* 
@@ -371,7 +371,7 @@
 
         if ( mysql_stmt_bind_result( pstm, pstm->pbindColumns ) )
         {
-            pdia->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm ),
mysql_stmt_error( pstm ) );
+            getDia()->doAppend( MYODBC_DIA_HY000, mysql_stmt_errno( pstm ),
mysql_stmt_error( pstm ) );
             mysql_free_result( pMetaData );
             MYODBCDbgReturn( SQL_ERROR );
         }
@@ -385,7 +385,7 @@
     MYODBCDbgEnter();
 
     if ( !pField )
-        MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, "Failed to store field
descriptor information." ) );
+        MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, "Failed to store
field descriptor information." ) );
 
     /*
         WARNING!!!
@@ -411,40 +411,40 @@
         cases the values set here are replaced depending upon the type -
         but only sometimes.
     */
-    pdesIRD->setAutoUniqueValue( nField, (pField->flags &&
AUTO_INCREMENT_FLAG) ? SQL_TRUE : SQL_FALSE ) );
-    pdesIRD->setBaseColumnName( nField, (pField->org_name ? pField->org_name :
"") );
-    pdesIRD->setBaseTableName( nField, (pField->org_table ? pField->org_table :
"") );
-    pdesIRD->setCaseSensitive( nField, (pField->flags & BINARY_FLAG ? SQL_FALSE
: SQL_TRUE) );
-    pdesIRD->setCatalogName( nField, (pField->catalog ? pField->catalog : "") );
-/*  pdesIRD->setconcise_type;                 - type specific     */
-/*  pdesIRD->setdata_ptr;                     - N/A               */
-/*  pdesIRD->setdatetime_interval_code;       - type specific     */
-    pdesIRD->setDatetimeIntervalPrecision( nField, 10 );       /* this is a
conservative guess - not sure what precision we get when we diff 2 times */
-    pdesIRD->setDisplaySize( nField, pField->max_length );   /* - also type
specific   */
-    pdesIRD->setFixedPrecScale( nField, SQL_FALSE );            /* - also type
specific   */
-/*  pdesIRD->setindicator_ptr;                - N/A               */
-    pdesIRD->setLabel( nField, pField->name );
-/*  pdesIRD->setlength;                       - type specific     */
-/*  pdesIRD->setliteral_prefix;               - type specific     */
-/*  pdesIRD->setliteral_suffix;               - type specific     */
-    pdesIRD->setLocalTypeName( nField, "" );
-    pdesIRD->setName( nField pField->name );
-    pdesIRD->setNullable( nField, ((pField->flags && NOT_NULL_FLAG) ?
SQL_NO_NULLS : SQL_NULLABLE) );
-/*  pdesIRD->setnum_prec_radix;               - type specific     */   
-/*  pdesIRD->setoctet_length;                 - type specific     */
-/*  pdesIRD->setoctet_length_ptr;             - N/A               */
-/*  pdesIRD->setparamter_type;                - N/A               */
-/*  pdesIRD->setprecision;                    - type specific     */   
-    pdesIRD->setRowver( nField, SQL_FALSE );            /* - also type specific   */
-    pdesIRD->setScale( nField, pField->decimals );
-    pdesIRD->setSchemaName( nField, pField->db );
-    pdesIRD->setSearchable( nField, SQL_PRED_SEARCHABLE );
-    pdesIRD->setTableName( nField, pField->table );
-/*  pdesIRD->settype;                         - type specific     */
-/*  pdesIRD->settype_name;                    - type specific     */
-    pdesIRD->setUnnamed( nField, SQL_NAMED );
-    pdesIRD->setUnsigned( nField, (pField->flags & UNSIGNED_FLAG ? SQL_TRUE :
SQL_FALSE) );
-    pdesIRD->setUpdatable( nField, (pField->table && pField->table[0] ?
SQL_ATTR_READWRITE_UNKNOWN : SQL_ATTR_READONLY) );
+    getImpRowDesc()->setAutoUniqueValue( nField, (pField->flags &&
AUTO_INCREMENT_FLAG) ? SQL_TRUE : SQL_FALSE ) );
+    getImpRowDesc()->setBaseColumnName( nField, (pField->org_name ?
pField->org_name : "") );
+    getImpRowDesc()->setBaseTableName( nField, (pField->org_table ?
pField->org_table : "") );
+    getImpRowDesc()->setCaseSensitive( nField, (pField->flags & BINARY_FLAG ?
SQL_FALSE : SQL_TRUE) );
+    getImpRowDesc()->setCatalogName( nField, (pField->catalog ? pField->catalog
: "") );
+/*  getImpRowDesc()->setconcise_type;                 - type specific     */
+/*  getImpRowDesc()->setdata_ptr;                     - N/A               */
+/*  getImpRowDesc()->setdatetime_interval_code;       - type specific     */
+    getImpRowDesc()->setDatetimeIntervalPrecision( nField, 10 );       /* this is a
conservative guess - not sure what precision we get when we diff 2 times */
+    getImpRowDesc()->setDisplaySize( nField, pField->max_length );   /* - also type
specific   */
+    getImpRowDesc()->setFixedPrecScale( nField, SQL_FALSE );            /* - also type
specific   */
+/*  getImpRowDesc()->setindicator_ptr;                - N/A               */
+    getImpRowDesc()->setLabel( nField, pField->name );
+/*  getImpRowDesc()->setlength;                       - type specific     */
+/*  getImpRowDesc()->setliteral_prefix;               - type specific     */
+/*  getImpRowDesc()->setliteral_suffix;               - type specific     */
+    getImpRowDesc()->setLocalTypeName( nField, "" );
+    getImpRowDesc()->setName( nField pField->name );
+    getImpRowDesc()->setNullable( nField, ((pField->flags && NOT_NULL_FLAG)
? SQL_NO_NULLS : SQL_NULLABLE) );
+/*  getImpRowDesc()->setnum_prec_radix;               - type specific     */   
+/*  getImpRowDesc()->setoctet_length;                 - type specific     */
+/*  getImpRowDesc()->setoctet_length_ptr;             - N/A               */
+/*  getImpRowDesc()->setparamter_type;                - N/A               */
+/*  getImpRowDesc()->setprecision;                    - type specific     */   
+    getImpRowDesc()->setRowver( nField, SQL_FALSE );            /* - also type
specific   */
+    getImpRowDesc()->setScale( nField, pField->decimals );
+    getImpRowDesc()->setSchemaName( nField, pField->db );
+    getImpRowDesc()->setSearchable( nField, SQL_PRED_SEARCHABLE );
+    getImpRowDesc()->setTableName( nField, pField->table );
+/*  getImpRowDesc()->settype;                         - type specific     */
+/*  getImpRowDesc()->settype_name;                    - type specific     */
+    getImpRowDesc()->setUnnamed( nField, SQL_NAMED );
+    getImpRowDesc()->setUnsigned( nField, (pField->flags & UNSIGNED_FLAG ?
SQL_TRUE : SQL_FALSE) );
+    getImpRowDesc()->setUpdatable( nField, (pField->table &&
pField->table[0] ? SQL_ATTR_READWRITE_UNKNOWN : SQL_ATTR_READONLY) );
 
     /* 
         set type specific values here 
@@ -462,310 +462,310 @@
     switch ( pField->type )
     {
         case MYSQL_TYPE_BLOB:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
             if ( pField->flags & BINARY_FLAG )
             {
-                pdesIRD->setLiteralPrefix( nField, "" );
-                pdesIRD->setLiteralSuffix( nField, "" );
-                pdesIRD->setTypeName( nField, "blob" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARBINARY );
+                getImpRowDesc()->setLiteralPrefix( nField, "" );
+                getImpRowDesc()->setLiteralSuffix( nField, "" );
+                getImpRowDesc()->setTypeName( nField, "blob" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARBINARY );
             }
             else
             {
-                pdesIRD->setLiteralPrefix( nField, "\"'" );
-                pdesIRD->setLiteralSuffix( nField, "\"'" );
-                pdesIRD->setTypeName( nField, "text" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARCHAR );
+                getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+                getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+                getImpRowDesc()->setTypeName( nField, "text" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARCHAR );
             }
             break;
         case MYSQL_TYPE_DATE:
-            pdesIRD->setDisplaySize( nField, 10 );
-            pdesIRD->setLength( nField, 10 );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, 10 );
-            pdesIRD->setTypeName( nField, "date" );
-            pdesIRD->setConciseType( nField, SQL_TYPE_DATE );
+            getImpRowDesc()->setDisplaySize( nField, 10 );
+            getImpRowDesc()->setLength( nField, 10 );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, 10 );
+            getImpRowDesc()->setTypeName( nField, "date" );
+            getImpRowDesc()->setConciseType( nField, SQL_TYPE_DATE );
             break;
         case MYSQL_TYPE_DATETIME:
-            pdesIRD->setDisplaySize( nField, 19 );
-            pdesIRD->setLength( nField, 19 );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, 19 );
-            pdesIRD->setTypeName( nField, "datetime" );
-            pdesIRD->setConciseType( nField, SQL_TYPE_TIMESTAMP );
+            getImpRowDesc()->setDisplaySize( nField, 19 );
+            getImpRowDesc()->setLength( nField, 19 );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, 19 );
+            getImpRowDesc()->setTypeName( nField, "datetime" );
+            getImpRowDesc()->setConciseType( nField, SQL_TYPE_TIMESTAMP );
             break;
         case MYSQL_TYPE_DECIMAL:
-            pdesIRD->setDisplaySize( nField, max( pField->length,
pField->max_length ) - test( !( pField->flags & UNSIGNED_FLAG ) ) - test(
pField->decimals ) );
-            pdesIRD->setFixedPrecScale( nField, pField->decimals ? SQL_TRUE :
SQL_FALSE );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 10 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)max( pField->length,
pField->max_length ) - test( !( pField->flags & UNSIGNED_FLAG ) ) - test(
pField->decimals ) );
-            pdesIRD->setTypeName( nField, "decimal" );
-            pdesIRD->setConciseType( nField, SQL_DECIMAL );
+            getImpRowDesc()->setDisplaySize( nField, max( pField->length,
pField->max_length ) - test( !( pField->flags & UNSIGNED_FLAG ) ) - test(
pField->decimals ) );
+            getImpRowDesc()->setFixedPrecScale( nField, pField->decimals ? SQL_TRUE
: SQL_FALSE );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 10 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)max(
pField->length, pField->max_length ) - test( !( pField->flags &
UNSIGNED_FLAG ) ) - test( pField->decimals ) );
+            getImpRowDesc()->setTypeName( nField, "decimal" );
+            getImpRowDesc()->setConciseType( nField, SQL_DECIMAL );
             break;
         case MYSQL_TYPE_DOUBLE:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & UNSIGNED_FLAG )
-                pdesIRD->setTypeName( nField, "double unsigned" );
+                getImpRowDesc()->setTypeName( nField, "double unsigned" );
             else
-                pdesIRD->setTypeName( nField, "double" );
-            pdesIRD->setConciseType( nField, SQL_DOUBLE );
+                getImpRowDesc()->setTypeName( nField, "double" );
+            getImpRowDesc()->setConciseType( nField, SQL_DOUBLE );
             break;
         case MYSQL_TYPE_ENUM:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setTypeName( nField, "enum" );
-            pdesIRD->setConciseType( nField, SQL_CHAR );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setTypeName( nField, "enum" );
+            getImpRowDesc()->setConciseType( nField, SQL_CHAR );
             break;
         case MYSQL_TYPE_FLOAT:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & UNSIGNED_FLAG )
-                pdesIRD->setTypeName( nField, "float unsigned" );
+                getImpRowDesc()->setTypeName( nField, "float unsigned" );
             else
-                pdesIRD->setTypeName( nField, "float" );
-            pdesIRD->setConciseType( nField, SQL_REAL );
+                getImpRowDesc()->setTypeName( nField, "float" );
+            getImpRowDesc()->setConciseType( nField, SQL_REAL );
             break;
         case MYSQL_TYPE_GEOMETRY:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setTypeName( nField, "blob" );
-            pdesIRD->setConciseType( nField, SQL_LONGVARBINARY );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setTypeName( nField, "blob" );
+            getImpRowDesc()->setConciseType( nField, SQL_LONGVARBINARY );
             break;
         case MYSQL_TYPE_INT24:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & UNSIGNED_FLAG )
-                pdesIRD->setTypeName( nField, "mediumint unsigned" );
+                getImpRowDesc()->setTypeName( nField, "mediumint unsigned" );
             else
-                pdesIRD->setTypeName( nField, "mediumint" );
-            pdesIRD->setConciseType( nField, SQL_INTEGER );
+                getImpRowDesc()->setTypeName( nField, "mediumint" );
+            getImpRowDesc()->setConciseType( nField, SQL_INTEGER );
             break;
         case MYSQL_TYPE_LONG:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & UNSIGNED_FLAG )
-                pdesIRD->setTypeName( nField, "integer unsigned" );
+                getImpRowDesc()->setTypeName( nField, "integer unsigned" );
             else
-                pdesIRD->setTypeName( nField, "integer" );
-            pdesIRD->setConciseType( nField, SQL_TINYINT );
+                getImpRowDesc()->setTypeName( nField, "integer" );
+            getImpRowDesc()->setConciseType( nField, SQL_TINYINT );
             break;
         case MYSQL_TYPE_LONG_BLOB:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
             if (pField->flags & BINARY_FLAG)
             {
-                pdesIRD->setTypeName( nField, "longblob" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARBINARY );
+                getImpRowDesc()->setTypeName( nField, "longblob" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARBINARY );
             }
             else
             {
-                pdesIRD->setTypeName( nField, "longtext" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARCHAR );
+                getImpRowDesc()->setTypeName( nField, "longtext" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARCHAR );
             }
             break;
         case MYSQL_TYPE_LONGLONG:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
             if ( pField->flags & UNSIGNED_FLAG )
             {
-                pdesIRD->setPrecision( nField, 20 );
-                pdesIRD->setTypeName( nField, "bigint unsigned" );
+                getImpRowDesc()->setPrecision( nField, 20 );
+                getImpRowDesc()->setTypeName( nField, "bigint unsigned" );
             }
             else
             {
-                pdesIRD->setPrecision( nField, 19 );
-                pdesIRD->setTypeName( nField, "bigint" );
+                getImpRowDesc()->setPrecision( nField, 19 );
+                getImpRowDesc()->setTypeName( nField, "bigint" );
             }
-            pdesIRD->setConciseType( nField, SQL_BIGINT );
+            getImpRowDesc()->setConciseType( nField, SQL_BIGINT );
             break;
         case MYSQL_TYPE_MEDIUM_BLOB:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
             if ( pField->flags & BINARY_FLAG )
             {
-                pdesIRD->setTypeName( nField, "mediumblob" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARBINARY );
+                getImpRowDesc()->setTypeName( nField, "mediumblob" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARBINARY );
             }
             else
             {
-                pdesIRD->setTypeName( nField, "mediumtext" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARCHAR );
+                getImpRowDesc()->setTypeName( nField, "mediumtext" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARCHAR );
             }
             break;
         case MYSQL_TYPE_NEWDATE:
-            pdesIRD->setDisplaySize( nField, 10 );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, 10 );
-            pdesIRD->setTypeName( nField, "date" );
-            pdesIRD->setConciseType( nField, SQL_TYPE_DATE );
+            getImpRowDesc()->setDisplaySize( nField, 10 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, 10 );
+            getImpRowDesc()->setTypeName( nField, "date" );
+            getImpRowDesc()->setConciseType( nField, SQL_TYPE_DATE );
             break;
         case MYSQL_TYPE_NULL:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setTypeName( nField, "null" );
-            pdesIRD->setConciseType( nField, SQL_VARCHAR );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setTypeName( nField, "null" );
+            getImpRowDesc()->setConciseType( nField, SQL_VARCHAR );
             break;
         case MYSQL_TYPE_SHORT:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & UNSIGNED_FLAG )
-                pdesIRD->setTypeName( nField, "smallint unsigned" );
+                getImpRowDesc()->setTypeName( nField, "smallint unsigned" );
             else
-                pdesIRD->setTypeName( nField, "smallint" );
-            pdesIRD->setConciseType( nField, SQL_SMALLINT );
+                getImpRowDesc()->setTypeName( nField, "smallint" );
+            getImpRowDesc()->setConciseType( nField, SQL_SMALLINT );
             break;
         case MYSQL_TYPE_TIME:
-            pdesIRD->setDisplaySize( nField, 8 );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, 8 );
-            pdesIRD->setTypeName( nField, "time" );
-            pdesIRD->setConciseType( nField, SQL_TYPE_TIME );
+            getImpRowDesc()->setDisplaySize( nField, 8 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, 8 );
+            getImpRowDesc()->setTypeName( nField, "time" );
+            getImpRowDesc()->setConciseType( nField, SQL_TYPE_TIME );
             break;
         case MYSQL_TYPE_TIMESTAMP:
-            pdesIRD->setDisplaySize( nField, 19 );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, 19 );
-            pdesIRD->setRowver( nField, SQL_TRUE );
-            pdesIRD->setTypeName( nField, "timestamp" );
-            pdesIRD->setConciseType( nField, SQL_TYPE_TIMESTAMP );
+            getImpRowDesc()->setDisplaySize( nField, 19 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, 19 );
+            getImpRowDesc()->setRowver( nField, SQL_TRUE );
+            getImpRowDesc()->setTypeName( nField, "timestamp" );
+            getImpRowDesc()->setConciseType( nField, SQL_TYPE_TIMESTAMP );
             break;
         case MYSQL_TYPE_SET:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setTypeName( nField, "set" );
-            pdesIRD->setConciseType( nField, SQL_CHAR );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setTypeName( nField, "set" );
+            getImpRowDesc()->setConciseType( nField, SQL_CHAR );
             break;
         case MYSQL_TYPE_STRING:
-            pdesIRD->setDisplaySize( nField, pField->length ? pField->length :
255 );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setTypeName( nField, "char" );
-            pdesIRD->setConciseType( nField, SQL_CHAR );
+            getImpRowDesc()->setDisplaySize( nField, pField->length ?
pField->length : 255 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setTypeName( nField, "char" );
+            getImpRowDesc()->setConciseType( nField, SQL_CHAR );
             break;
         case MYSQL_TYPE_TINY: 
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 2 );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 2 );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
             if ( pField->flags & NUM_FLAG )
             {
                 if ( pField->flags & UNSIGNED_FLAG )
-                    pdesIRD->setTypeName( nField, "tinyint unsigned" );
+                    getImpRowDesc()->setTypeName( nField, "tinyint unsigned" );
                 else
-                    pdesIRD->setTypeName( nField, "tinyint" );
-                pdesIRD->setConciseType( nField, SQL_TINYINT );
+                    getImpRowDesc()->setTypeName( nField, "tinyint" );
+                getImpRowDesc()->setConciseType( nField, SQL_TINYINT );
             }
             else
             {
                 if ( pField->flags & UNSIGNED_FLAG )
-                    pdesIRD->setTypeName( nField, "char unsigned" );
+                    getImpRowDesc()->setTypeName( nField, "char unsigned" );
                 else
-                    pdesIRD->setTypeName( nField, "char" );
-                pdesIRD->setConciseType( nField, SQL_CHAR );
+                    getImpRowDesc()->setTypeName( nField, "char" );
+                getImpRowDesc()->setConciseType( nField, SQL_CHAR );
             }
             break;
         case MYSQL_TYPE_TINY_BLOB:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "" );
-            pdesIRD->setLiteralSuffix( nField, "" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "" );
+            getImpRowDesc()->setLiteralSuffix( nField, "" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
             if ( pField->flags & BINARY_FLAG )
             {
-                pdesIRD->setTypeName( nField, "tinyblob" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARBINARY );
+                getImpRowDesc()->setTypeName( nField, "tinyblob" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARBINARY );
             }
             else
             {
-                pdesIRD->setTypeName( nField, "tinytext" );
-                pdesIRD->setConciseType( nField, SQL_LONGVARCHAR );
+                getImpRowDesc()->setTypeName( nField, "tinytext" );
+                getImpRowDesc()->setConciseType( nField, SQL_LONGVARCHAR );
             }
             break;
         case MYSQL_TYPE_VAR_STRING:
-            pdesIRD->setDisplaySize( nField, pField->length ? pField->length :
255 );
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setTypeName( nField, "varchar" );
-            pdesIRD->setConciseType( nField, SQL_VARCHAR );
+            getImpRowDesc()->setDisplaySize( nField, pField->length ?
pField->length : 255 );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setTypeName( nField, "varchar" );
+            getImpRowDesc()->setConciseType( nField, SQL_VARCHAR );
             break;
         case MYSQL_TYPE_YEAR:
-            pdesIRD->setLength( nField, pField->max_length );
-            pdesIRD->setLiteralPrefix( nField, "\"'" );
-            pdesIRD->setLiteralSuffix( nField, "\"'" );
-            pdesIRD->setNumPrecRadix( nField, 0 );
-            pdesIRD->setOctetLength( nField, pField->max_length );
-            pdesIRD->setPrecision( nField, (SQLSMALLINT)pField->max_length );
-            pdesIRD->setTypeName( nField, "year" );
-            pdesIRD->setConciseType( nField, SQL_SMALLINT );
+            getImpRowDesc()->setLength( nField, pField->max_length );
+            getImpRowDesc()->setLiteralPrefix( nField, "\"'" );
+            getImpRowDesc()->setLiteralSuffix( nField, "\"'" );
+            getImpRowDesc()->setNumPrecRadix( nField, 0 );
+            getImpRowDesc()->setOctetLength( nField, pField->max_length );
+            getImpRowDesc()->setPrecision( nField, (SQLSMALLINT)pField->max_length
);
+            getImpRowDesc()->setTypeName( nField, "year" );
+            getImpRowDesc()->setConciseType( nField, SQL_SMALLINT );
             break;
         default:
         {
-            MYODBCDbgReturn( pdia->doAppend( MYODBC_DIA_HY000, 0, QString( "%1 is an
unknown MYSQL column data type." ).arg( pField->type ) ) );
+            MYODBCDbgReturn( getDia()->doAppend( MYODBC_DIA_HY000, 0, QString( "%1 is
an unknown MYSQL column data type." ).arg( pField->type ) ) );
         }
     }
 

Modified: MYODBCRes/include/MYODBCRes.h
===================================================================
--- MYODBCRes/include/MYODBCRes.h	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/include/MYODBCRes.h	2006-01-27 05:46:29 UTC (rev 50)
@@ -11,8 +11,7 @@
 #define MYODBC_RES_H
 
 #include <MYODBCDbg.h>
-#include <MYODBCDia.h>
-#include <MYODBCDes.h>
+#include <MYODBCAttStatement.h>
 
 /* we introduce mysql stuff as late as possible - here */
 #include <mysql.h>
@@ -34,7 +33,7 @@
 class MYODBCRes
 {
 public:
-    MYODBCRes( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql );
+    MYODBCRes( MYODBCAttStatement *patt, MYSQL *pmysql );
     virtual ~MYODBCRes();
 
     virtual SQLRETURN setData( uint nColumn, const QVariant &variantData ) = 0;
@@ -44,7 +43,6 @@
     virtual SQLRETURN   getData( uint nColumn, QVariant &variantData ) = 0;
     virtual SQLRETURN   getRow( qulonglong *pnRow ) = 0;
     virtual SQLRETURN   getRows( qulonglong *pnRows ) = 0;
-    virtual MYODBCDes * getDesIRD();
 
     virtual SQLRETURN doAppend() = 0;
     virtual SQLRETURN doClear() = 0;
@@ -64,9 +62,14 @@
     virtual bool isValidRow( qulonglong nRow ) = 0;
 
 protected:
-    MYSQL *     pmysql;     /*!< parent of MYSQL_RES or MYSQL_STMT  */
-    MYODBCDes * pdesIRD;    /*!< Reference to statements IRD        */
-    MYODBCDia * pdia;       /*!< Reference to statements hDia       */
+    MYODBCAttStatement *    patt;       /*!< statement attributes               */
+    MYSQL *                 pmysql;     /*!< parent of MYSQL_RES or MYSQL_STMT  */
+
+    virtual MYODBCDes * getAppParamDesc();               /*!< SQL_ATTR_APP_PARAM_DESC 
                                          */
+    virtual MYODBCDes * getAppRowDesc();                 /*!< SQL_ATTR_APP_ROW_DESC   
                                          */
+    virtual MYODBCDes * getImpParamDesc();               /*!< SQL_ATTR_IMP_PARAM_DESC 
                                          */
+    virtual MYODBCDes * getImpRowDesc();                 /*!< SQL_ATTR_IMP_ROW_DESC   
                                          */
+    virtual MYODBCDia * getDia();
 };
 
 #endif

Modified: MYODBCRes/include/MYODBCResDriver.h
===================================================================
--- MYODBCRes/include/MYODBCResDriver.h	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/include/MYODBCResDriver.h	2006-01-27 05:46:29 UTC (rev 50)
@@ -6,7 +6,7 @@
 class MYODBCResDriver : public MYODBCRes
 {
 public:
-    MYODBCResDriver( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql );
+    MYODBCResDriver( MYODBCAttStatement *patt, MYSQL *pmysql );
     ~MYODBCResDriver();
 
     SQLRETURN setData( uint nColumn, const QVariant &variantData );

Modified: MYODBCRes/include/MYODBCResServer.h
===================================================================
--- MYODBCRes/include/MYODBCResServer.h	2006-01-27 04:30:56 UTC (rev 49)
+++ MYODBCRes/include/MYODBCResServer.h	2006-01-27 05:46:29 UTC (rev 50)
@@ -6,7 +6,7 @@
 class MYODBCResServer : public MYODBCRes
 {
 public:
-    MYODBCResServer( MYODBCDia *pdia, MYODBCDes *pdesIRD, MYSQL *pmysql );
+    MYODBCResServer( MYODBCAttStatement *patt, MYSQL *pmysql );
     ~MYODBCResServer();
 
     SQLRETURN setData( uint nColumn, const QVariant &variantData );

Thread
Connector/ODBC 5 commit: r50 - in MYODBCRes: MYODBCResLib includepharvey27 Jan