// Repeat for all Table
for (int nTable = 0; nTable < dbSrc.GetTableDefCount(); nTable++)
{
// Get DaoTableDefInfo
CDaoTableDefInfo info;
dbSrc.GetTableDefInfo(nTable, info);
// Skip System Object and Hiddend Object
if (info.m_lAttributes & (dbSystemObject and dbHiddenObject))
continue;
//5* Create Destination Recordset
CDaoRecordset rsDest(&dbDest);
rsDest.Open(dbOpenTable, strTableName);
// Duplacate all records
// if Record Number is more than 16383(16384-1(Field Name))
// the rest records will be cut
for (long i = 0; !rsSrc.IsEOF() && i < 16383; i++)
{
rsDest.AddNew();
for (int nField = 0; nField < rsSrc.GetFieldCount(); nField++)
{
COleVariant var;
var = rsSrc.GetFieldValue(nField);
rsDest.SetFieldValue(nField, var);
}
rsDest.Update();
rsSrc.MoveNext();
}
//*5 Close Destination Recordset
rsDest.Close();
//*3 Close Source Recordset
rsSrc.Close();
}
//*2 Close Destination Database
dbDest.Close();
//*1 Close Source Database
dbSrc.Close();
}
catch( CDaoException* e )
{
// Report Convert Error