TABLECOPY.H
//----------------------------------------------------------------------------- 
// Microsoft OLE DB TABLECOPY Sample 
// Copyright (C) 1996 By Microsoft Corporation. 
// 
// @doc 
// 
// @module TABLECOPY.H 
// 
//----------------------------------------------------------------------------- 
 
#ifndef _TABLECOPY_H_ 
#define _TABLECOPY_H_ 
 
 
/////////////////////////////////////////////////////////////// 
// Includes 
// 
/////////////////////////////////////////////////////////////// 
#include "oledb.h" 
 
 
/////////////////////////////////////////////////////////////// 
// Forward Declarations 
// 
/////////////////////////////////////////////////////////////// 
class CTable; 
class CWizard; 
 
 
/////////////////////////////////////////////////////////////// 
// Defines 
// 
/////////////////////////////////////////////////////////////// 
#define MAX_QUERY_LEN4096 
#define MAX_NAME_LEN256 
 
#define MAX_COL_SIZE   50000 
#define MAX_BLOCK_SIZE  20 
 
// Create param bitmasks describe the parameter required on create table 
#define CP_PRECISION0x0001 
#define CP_SCALE0x0002 
#define CP_LENGTH0x0004 
 
// This macro will determine if the type is numeric, and  
// if numeric -> bPrecision, if not numeric -> dwColumnSize 
#define COLINFO_SIZE(ColInfo) (IsNumericType(ColInfo.wType) ? ColInfo.bPrecision : ColInfo.ulColumnSize) 
 
// Enum or which Tables to show in the DSN 
enum SHOW_TYPES  
{ 
SHOW_NONE= 0x00000000, 
SHOW_TABLES= 0x00000001, 
SHOW_SYSTABLES= 0x00000002, 
SHOW_VIEWS= 0x00000004, 
SHOW_SYNONYMS= 0x00000008 
}; 
 
///////////////////////////////////////////////////////////////// 
// CTableCopy 
// 
///////////////////////////////////////////////////////////////// 
class CTableCopy 
{ 
public: 
//Constructors 
CTableCopy(CWizard* pCWizard); 
virtual ~CTableCopy(); 
 
//Members 
virtual HRESULT CopyTables(); 
 
virtual HRESULT MapTypes(); 
virtual HRESULT CreateTable(); 
virtual HRESULT CreateIndexes(); 
virtual HRESULT CopyData(ULONG* pcRows); 
 
//Data 
CTable*m_pCFromTable;//Source Table 
CTable*m_pCToTable;//Target Table 
 
//Options 
DWORDm_dwRowOpt;// Row Options 
ULONGm_ulMaxRows;// Maximum rows or ALL_ROWS 
 
DWORDm_dwParamOpt;// Param Options 
ULONGm_ulParamSets;// Number of Parameters Sets 
 
DWORDm_dwBlobOpt;        // Blob Options 
ULONGm_ulBlobSize;       // Maximum Size for BLOB Columns 
 
DWORDm_dwShowTypes;// Which Tables in the DSN to show 
 
BOOLm_fShowQuery;// TRUE to display SQL statements 
BOOLm_fCopyTables;// TRUE to create the table definition 
BOOLm_fCopyIndexes;// TRUE to create indexes on new table 
 
BOOLm_fTranslate;// TRUE to translate object names 
CWizard*    m_pCWizard; 
}; 
 
 
#endif//_TABLECOPY_H_