Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

2064 lines
90 KiB
C++

// IOManager.cpp: implementation of the CIOManager class.
//
//////////////////////////////////////////////////////////////////////
#include "geomative.h"
#include "IOManager.h"
#include "Constant.h"
#include "ioexpdlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern int g_UIOffset;
extern BOOL DoEvent(HWND hWnd);
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern HHOOK hHook;
extern LRESULT __stdcall CBTHookProc(long nCode, WPARAM wParam, LPARAM lParam);
CIOManager::CIOManager(_ConnectionPtr& pConnection, ADOX::_CatalogPtr pCatalog)
{
ASSERT(NULL != pConnection);
m_pConnection = pConnection;
m_pCatalog = pCatalog;
}
CIOManager::~CIOManager()
{
}
UINT CIOManager::Export()
{
UINT uExecCode = (UINT)VAL_ZERO;
INT_PTR lRet = (long)VAL_ZERO;
_ConnectionPtr pExpConnection = NULL;
CIOExpDlg* pIOExpDlg = new CIOExpDlg((INT_PTR*)&lRet);
pIOExpDlg->Create(IDD_IO_EXP, AfxGetMainWnd());
// InitialExpDmsTree(pIOExpDlg->m_ioDmsDlg.m_dmsTree);
// InitialExpSptList(pIOExpDlg->m_ioSptDlg.m_sptList);
pIOExpDlg->ShowWindow(SW_SHOW);
while (!lRet)
{
DoEvent(pIOExpDlg->m_hWnd);
}
switch (lRet)
{
case RET_OK:
try
{
pExpConnection = CreateExpDatabase(pIOExpDlg->m_szFileName);
if (NULL != pExpConnection)
{
pExpConnection->BeginTrans();
ExportDataToAccdbFile(pExpConnection, pIOExpDlg->m_ioDmsDlg.m_dmsTree);
ExportSptToAccdbFile(pExpConnection, pIOExpDlg->m_ioSptDlg.m_sptList);
}
else
{
DeleteFile(pIOExpDlg->m_szFileName);
uExecCode = APP_FAIL;
break;
}
pExpConnection->CommitTrans();
pExpConnection->Close();
uExecCode = APP_SUCCESS;
}
catch (_com_error e)
{
pExpConnection->RollbackTrans();
pExpConnection->Close();
DeleteFile(pIOExpDlg->m_szFileName);
uExecCode = APP_FAIL;
}
break;
case RET_CANCEL:
uExecCode = APP_CANCLE;
break;
default:
uExecCode = APP_FAIL;
break;
}
pIOExpDlg->DestroyWindow();
delete pIOExpDlg;
return uExecCode;
}
UINT CIOManager::Import()
{
_RecordsetPtr pRecDBVersion = NULL;
TCHAR szFilePath[MAX_PATH + 1];
CString szFileName = _T("");
CString szCurFilePath = _T("");
CString szCaption = _T("");
CString szConnection = _T("");
_ConnectionPtr pImpConnection = NULL;
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('\\')))[1] = 0;
szCurFilePath.Empty();
szCurFilePath = szFilePath;
CFileDialog dlgOpenFile(TRUE , _T("accdb"), NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR, _T("Access 2007 DataBase Files (*.accdb)|*.accdb||"));
szCaption.Empty();
szCaption.LoadString(IDS_OPEN);
dlgOpenFile.m_ofn.lpstrTitle = szCaption;
dlgOpenFile.m_ofn.lpstrInitialDir = szCurFilePath;
if (dlgOpenFile.DoModal() == IDOK)
{
szFileName.Empty();
szFileName = dlgOpenFile.GetPathName();
try
{
szConnection.Empty();
// szConnection.Format("Provider='Microsoft.ACE.OLEDB.12.0';Data source = %s", szFileName);
szConnection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Jet OLEDB:Database Password=bsgeomative;", szFileName);
pImpConnection.CreateInstance(_uuidof(Connection));
pImpConnection->Open(szConnection.AllocSysString(), "", "", adModeUnknown);
pImpConnection->GetProperties()->GetItem(_variant_t("Jet OLEDB:Max Locks Per File"))->PutValue(_variant_t((long)50000,VT_I4));
pRecDBVersion.CreateInstance(_uuidof(Recordset));
pRecDBVersion->Open(_T("select * from dbversion where VK = 'SZBESTING EXPORT DATABASE 1.0.0.0'"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecDBVersion->GetRecordCount())
{
pRecDBVersion->Close();
pImpConnection->Close();
szCaption.Empty();
szCaption.LoadString(IDS_FILE_ERROR);
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
if (OFFSET_CHINESE == g_UIOffset)
AfxMessageBox(szCaption, MB_ICONINFORMATION);
else
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return APP_CANCLE;
}
pRecDBVersion->Close();
}
catch (_com_error e)
{
pImpConnection->Close();
szCaption.Empty();
szCaption.LoadString(IDS_FILE_ERROR);
hHook = SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
if (OFFSET_CHINESE == g_UIOffset)
AfxMessageBox(szCaption, MB_ICONINFORMATION);
else
MessageBoxEx(NULL, szCaption, STRING_MESSAGEBOXEX_TITLE, MB_ICONINFORMATION, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
return APP_CANCLE;
}
try
{
m_pConnection->BeginTrans();
ImportProjectToDB(pImpConnection);
ImportTzToDB(pImpConnection);
ImportSptToDB(pImpConnection);
ImportRspTdToDB(pImpConnection);
ImportIpspTdToDB(pImpConnection);
m_pConnection->CommitTrans();
pImpConnection->Close();
}
catch (_com_error e)
{
m_pConnection->RollbackTrans();
pImpConnection->Close();
return APP_FAIL;
}
}
else
{
return APP_CANCLE;
}
return APP_SUCCESS;
}
_ConnectionPtr CIOManager::CreateExpDatabase(CString szFileName)
{
ADOX::_TablePtr pTabExp = NULL;
_ConnectionPtr pExpConnection = NULL;
_CommandPtr pCmdIns = NULL;
CString szSql = _T("");
CString szConnection = _T("");
DeleteFile(szFileName);
szConnection.Empty();
// szConnection.Format("Provider='Microsoft.ACE.OLEDB.12.0';Data source = %s", szFileName);
szConnection.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Jet OLEDB:Database Password=bsgeomative;", szFileName);
m_pCatalog->Create((_bstr_t)szConnection.AllocSysString());
pExpConnection = m_pCatalog->GetActiveConnection();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("project"));
pTabExp->Columns->Append(_T("CN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("PRname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("PRdesc"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("PRdesc"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("location"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("location"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("PRdate"), ADOX::adDate, 0);
pTabExp->Columns->GetItem(_T("PRdate"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("duration"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("duration"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("PS"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("PS"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CS"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("CS"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("PM"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("PM"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("QAS"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("QAS"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("standard"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("standard"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("tz"));
pTabExp->Columns->Append(_T("TZname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("PRCN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("TZdesc"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("TZdesc"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("location"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("location"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("td"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("PRCN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("TZname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("SCCN"), ADOX::adVarWChar, 24);
pTabExp->Columns->Append(_T("TDtype"), ADOX::adSmallInt, 0);
pTabExp->Columns->Append(_T("HFname"), ADOX::adVarWChar, 30);
pTabExp->Columns->GetItem(_T("HFname"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CFname"), ADOX::adVarWChar, 30);
pTabExp->Columns->GetItem(_T("CFname"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CFRamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("CFRamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("GRFname"), ADOX::adVarWChar, 30);
pTabExp->Columns->GetItem(_T("GRFname"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("GRFRamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("GRFRamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("tdhead"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("Cdate"), ADOX::adDate, 0);
pTabExp->Columns->GetItem(_T("Cdate"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Ctime"), ADOX::adDate, 0);
pTabExp->Columns->GetItem(_T("Ctime"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("rolling"), ADOX::adBoolean, 0);
pTabExp->Columns->GetItem(_T("rolling"))->Properties->GetItem(_T("Default"))->Value = false;
pTabExp->Columns->Append(_T("RCamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("RCamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Rdirection"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("Rdirection"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CRtime"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("CRtime"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CPE"), ADOX::adVarWChar, 20);
pTabExp->Columns->GetItem(_T("CPE"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CPN"), ADOX::adVarWChar, 20);
pTabExp->Columns->GetItem(_T("CPN"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("weather"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("weather"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("temperature"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("temperature"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("height"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("height"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("humidity"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("humidity"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("PM"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("PM"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("OP"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("OP"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("QA"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("QA"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("parameter"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("LCHamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("LCHamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RCHamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("RCHamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("LCamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("LCamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RCamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("RCamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("LEamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("LEamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("REamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("REamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Felectrode"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("Felectrode"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Espacing"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("Espacing"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Clayout"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("Clayout"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CLfun"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("CLfun"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("rspcon"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("A"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("A"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("B"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("B"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("M"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("N"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("N"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("K"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("K"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("SP"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("SP"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Ro"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Ro"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Vp"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Vp"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Ip"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Ip"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("SD"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("SD"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RgA"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("RgA"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RgB"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("RgB"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RgM"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("RgM"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("RgN"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("RgN"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Ttime"), ADOX::adDate, 0);
pTabExp->Columns->GetItem(_T("Ttime"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("ipspcon"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("SP"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("SP"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Ro"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Ro"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("VP"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("VP"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("IP"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("IP"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M1"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M1"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M2"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M2"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M3"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M3"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M4"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M4"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M5"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M5"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M6"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M6"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("M7"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("M7"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("TH"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("TH"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("D"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("D"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Zp"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Zp"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("FG"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("FG"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Am"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Am"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Bm"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Bm"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Cm"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Cm"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("Dm"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("Dm"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("R"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("R"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("gr"));
pTabExp->Columns->Append(_T("TDname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("DESN"), ADOX::adVarWChar, 50);
pTabExp->Columns->Append(_T("electrode"), ADOX::adVarWChar, 5);
pTabExp->Columns->GetItem(_T("electrode"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CableH"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("CableH"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CableT"), ADOX::adVarWChar, 10);
pTabExp->Columns->GetItem(_T("CableT"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("P1GR"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("P1GR"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("P2GR"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("P2GR"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("scon"));
pTabExp->Columns->Append(_T("CN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("Sname"), ADOX::adVarWChar, 20);
pTabExp->Columns->Append(_T("Eamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("Eamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("CHamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("CHamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("TPamount"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("TPamount"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("definer"), ADOX::adVarWChar, 20);
pTabExp->Columns->GetItem(_T("definer"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("DEdate"), ADOX::adDate, 0);
pTabExp->Columns->GetItem(_T("DEdate"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("SCdesc"), ADOX::adVarWChar, 50);
pTabExp->Columns->GetItem(_T("SCdesc"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("channel"));
pTabExp->Columns->Append(_T("CN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("CHnumber"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("CHnumber"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("AR"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("AR"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("script"));
pTabExp->Columns->Append(_T("CN"), ADOX::adVarWChar, 40);
pTabExp->Columns->Append(_T("CHnumber"), ADOX::adSmallInt, 0);
pTabExp->Columns->Append(_T("TSN"), ADOX::adSmallInt, 0);
pTabExp->Columns->Append(_T("C1"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("C1"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("C2"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("C2"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("P1"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("P1"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("P2"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("P2"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("K"), ADOX::adSingle, 0);
pTabExp->Columns->GetItem(_T("K"))->Properties->GetItem(_T("Nullable"))->Value = true;
pTabExp->Columns->Append(_T("N"), ADOX::adSmallInt, 0);
pTabExp->Columns->GetItem(_T("N"))->Properties->GetItem(_T("Nullable"))->Value = true;
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.CreateInstance(_uuidof(ADOX::Table));
pTabExp->PutParentCatalog(m_pCatalog);
pTabExp->PutName(_T("dbversion"));
pTabExp->Columns->Append(_T("VK"), ADOX::adVarWChar, 50);
m_pCatalog->Tables->Append(_variant_t((IDispatch *)pTabExp));
pTabExp->Release();
pTabExp.Release();
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = pExpConnection;
szSql.Empty();
szSql = _T("insert into dbversion(VK) values('SZBESTING EXPORT DATABASE 1.0.0.0')");
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
return pExpConnection;
}
void CIOManager::ExportDataToAccdbFile(_ConnectionPtr pExpConnection, CTreeCtrl& dmsTree)
{
HTREEITEM hProNextItem = NULL;
HTREEITEM hProChildItem = NULL;
HTREEITEM hTzNextItem = NULL;
HTREEITEM hTzChildItem = NULL;
HTREEITEM hTdNextItem = NULL;
HTREEITEM hTdChildItem = NULL;
DWORD dwProID = (DWORD)VAL_ZERO;
DWORD dwTzID = (DWORD)VAL_ZERO;
DWORD dwTdID = (DWORD)VAL_ZERO;
UINT uTdStyle = (UINT)VAL_ZERO;
hProNextItem = dmsTree.GetRootItem();
while (NULL != hProNextItem)
{
if (dmsTree.GetCheck(hProNextItem) == TRUE)
{
dwProID = m_handleProcessor.GetIDFromHandle(dmsTree.GetItemData(hProNextItem));
ExportProjectToAccdbFile(pExpConnection, dwProID);
if (dmsTree.ItemHasChildren(hProNextItem))
{
hTzNextItem = dmsTree.GetChildItem(hProNextItem);
while (NULL != hTzNextItem)
{
if (dmsTree.GetCheck(hTzNextItem) == TRUE)
{
dwTzID = m_handleProcessor.GetIDFromHandle(dmsTree.GetItemData(hTzNextItem));
ExportTzToAccdbFile(pExpConnection, dwTzID);
if (dmsTree.ItemHasChildren(hTzNextItem))
{
hTdNextItem = dmsTree.GetChildItem(hTzNextItem);
while (NULL != hTdNextItem)
{
if (dmsTree.GetCheck(hTdNextItem) == TRUE)
{
uTdStyle = m_handleProcessor.GetStyleFromHandle(dmsTree.GetItemData(hTdNextItem));
dwTdID = m_handleProcessor.GetIDFromHandle(dmsTree.GetItemData(hTdNextItem));
switch (uTdStyle)
{
case PZ_STYLE_TD_2DRSP:
ExportRspTdToAccdbFile(pExpConnection, dwTdID);
break;
case PZ_STYLE_TD_2DIPSP:
ExportIpspTdToAccdbFile(pExpConnection, dwTdID);
break;
default:
break;
}
}
hTdNextItem = dmsTree.GetNextSiblingItem(hTdNextItem);
}
}
}
hTzNextItem = dmsTree.GetNextSiblingItem(hTzNextItem);
}
}
}
hProNextItem = dmsTree.GetNextSiblingItem(hProNextItem);
}
}
void CIOManager::InitialExpDmsTree(CTreeCtrl &dmsTree)
{
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
_RecordsetPtr pRecTd = NULL;
HTREEITEM hProItem = NULL;
HTREEITEM hTzItem = NULL;
HTREEITEM hTdItem = NULL;
HTREEITEM hParentItem = NULL;
DWORD dwHandle = (DWORD)VAL_ZERO;
UINT uImageState = (UINT)VAL_ZERO;
UINT uTdImageState = (UINT)VAL_ZERO;
CString szSql;
dmsTree.DeleteAllItems();
uImageState = m_stateProcessor.ChangeToImageState(PZ_STATE_DB);
uTdImageState = m_stateProcessor.ChangeToImageState(PZ_STATE_LOC);
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
pRecTd.CreateInstance(_uuidof(Recordset));
pRecPro->Open(_T("select ID,PRname,CN from project order by ID"), _variant_t((IDispatch*)m_pConnection, true),
adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecPro->adoEOF)
{
hProItem = dmsTree.InsertItem((LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PRname")));
dwHandle = m_handleProcessor.GenerateHandle((DWORD)pRecPro->GetCollect(_T("ID")).ulVal, PZ_STYLE_PRO);
dmsTree.SetItemData(hProItem, dwHandle);
dmsTree.SetItemState(hProItem, uImageState, TVIS_STATEIMAGEMASK);
szSql.Empty();
szSql.Format(_T("select ID,TZname from tz where PRID = %s order by ID" ),
pRecPro->GetCollect(_T("ID")).vt == VT_NULL ? _T("-1") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("ID")));
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true),
adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecTz->adoEOF)
{
hTzItem = dmsTree.InsertItem((pRecTz->GetCollect(_T("TZname")).vt == VT_NULL) ? _T("") : (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("TZname")), hProItem);
dwHandle = m_handleProcessor.GenerateHandle((DWORD)pRecTz->GetCollect(_T("ID")).ulVal, PZ_STYLE_TZ);
dmsTree.SetItemData(hTzItem, dwHandle);
dmsTree.SetItemState(hTzItem, uImageState, TVIS_STATEIMAGEMASK);
szSql.Empty();
szSql.Format(_T("select ID,TDname,TDtype from td where TZID = %s order by ID"),
pRecTz->GetCollect(_T("ID")).vt == VT_NULL ? _T("-1") : (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("ID")));
pRecTd->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true),
adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecTd->adoEOF)
{
hTdItem = dmsTree.InsertItem(pRecTd->GetCollect(_T("TDname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("TDname")), hTzItem);
switch (pRecTd->GetCollect(_T("TDtype")).iVal)
{
case 0:
dwHandle = m_handleProcessor.GenerateHandle((DWORD)pRecTd->GetCollect(_T("ID")).ulVal, PZ_STYLE_TD_2DRSP);
break;
case 1:
dwHandle = m_handleProcessor.GenerateHandle((DWORD)pRecTd->GetCollect(_T("ID")).ulVal, PZ_STYLE_TD_2DIPSP);
break;
default:
break;
}
dmsTree.SetItemData(hTdItem, dwHandle);
dmsTree.SetItemState(hTdItem, uTdImageState, TVIS_STATEIMAGEMASK);
pRecTd->MoveNext();
} //while (VAL_ZERO == pRecTd->adoEOF)
pRecTd->Close();
hParentItem = dmsTree.GetParentItem(hTdItem);
if (hParentItem != NULL)
{
dmsTree.Expand(hParentItem, TVE_EXPAND);
hParentItem = NULL;
} //if (hParentItem != NULL)
pRecTz->MoveNext();
} //while (VAL_ZERO == pRecTz->adoEOF)
pRecTz->Close();
hParentItem = dmsTree.GetParentItem(hTzItem);
// ASSERT(hParentItem != NULL);
if (hParentItem != NULL)
{
dmsTree.Expand(hParentItem, TVE_EXPAND);
hParentItem = NULL;
} //if (hParentItem != NULL)
pRecPro->MoveNext();
} //while (VAL_ZERO == pRecPro->adoEOF)
pRecPro->Close();
dmsTree.SelectSetFirstVisible(dmsTree.GetRootItem());
}
void CIOManager::InitialExpSptList(CListCtrl &sptList)
{
_RecordsetPtr pRecSptList = NULL;
_RecordsetPtr pRecSCon = NULL;
_RecordsetPtr pRecMed = NULL;
DWORD dwSptHandle = (DWORD)VAL_ZERO;
int iIndex = (int)VAL_ZERO;
CString szSql;
CString szLabel;
pRecMed.CreateInstance(_uuidof(Recordset));
pRecSptList.CreateInstance(_uuidof(Recordset));
pRecSCon.CreateInstance(_uuidof(Recordset));
pRecSptList->Open(_T("select ID,CN,Sname,Stype,Eamount,CHamount,TPamount,definer,Format(DEdate,'YYYY-MM-DD') as DEdate,SCdesc from scon"),
_variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecSptList->adoEOF)
{
sptList.InsertItem(iIndex, pRecSptList->GetCollect(_T("CN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("CN")));
sptList.SetItemText(iIndex, 1, pRecSptList->GetCollect(_T("Sname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("Sname")));
sptList.SetItemText(iIndex, 2, pRecSptList->GetCollect(_T("Eamount")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("Eamount")));
sptList.SetItemText(iIndex, 3, pRecSptList->GetCollect(_T("CHamount")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("CHamount")));
sptList.SetItemText(iIndex, 4, pRecSptList->GetCollect(_T("TPamount")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("TPamount")));
sptList.SetItemText(iIndex, 5, pRecSptList->GetCollect(_T("definer")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("definer")));
sptList.SetItemText(iIndex, 6, pRecSptList->GetCollect(_T("DEdate")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("DEdate")));
sptList.SetItemText(iIndex, 7, pRecSptList->GetCollect(_T("SCdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSptList->GetCollect(_T("SCdesc")));
switch ((int)pRecSptList->GetCollect(_T("Stype")).iVal)
{
case 0:
dwSptHandle = m_handleProcessor.GenerateHandle((DWORD)pRecSptList->GetCollect(_T("ID")).ulVal, PZ_STYLE_SCON_CE);
break;
case 1:
dwSptHandle = m_handleProcessor.GenerateHandle((DWORD)pRecSptList->GetCollect(_T("ID")).ulVal, PZ_STYLE_SCON_2D);
break;
case 2:
dwSptHandle = m_handleProcessor.GenerateHandle((DWORD)pRecSptList->GetCollect(_T("ID")).ulVal, PZ_STYLE_SCON_3D);
break;
default:
break;
}
sptList.SetItemData(iIndex, dwSptHandle);
iIndex++;
pRecSptList->MoveNext();
} //while (VAL_ZERO == pRecProID->adoEOF)
pRecSptList->Close();
sptList.SetHotItem((int)VAL_ZERO);
}
void CIOManager::ExportProjectToAccdbFile(_ConnectionPtr pExpConnection, DWORD dwProID)
{
_RecordsetPtr pRecPro = NULL;
_CommandPtr pCmdInsPro = NULL;
CString szSql;
CString szPRdate;
pCmdInsPro.CreateInstance(_uuidof(Command));
pRecPro.CreateInstance(_uuidof(Recordset));
pCmdInsPro->ActiveConnection = pExpConnection;
szSql.Empty();
szSql.Format(_T("select CN,PRname,PRdesc,location,Format(PRdate,'YYYY-MM-DD') as PRdate,duration,PS,CS,PM,QAS,standard from project where ID = %u"), dwProID);
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((short)VAL_ZERO != pRecPro->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into project(CN,PRname,PRdesc,location,PRdate,duration,PS,CS,PM,QAS,standard) values('%s','%s','%s','%s',#%s#,%d,'%s','%s','%s','%s','%s')"),
pRecPro->GetCollect(_T("CN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("CN")),
pRecPro->GetCollect(_T("PRname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PRname")),
pRecPro->GetCollect(_T("PRdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PRdesc")),
pRecPro->GetCollect(_T("location")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("location")),
pRecPro->GetCollect(_T("PRdate")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PRdate")),
pRecPro->GetCollect(_T("duration")).vt == VT_NULL ? (int)VAL_ZERO : pRecPro->GetCollect(_T("duration")).ulVal,
pRecPro->GetCollect(_T("PS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PS")),
pRecPro->GetCollect(_T("CS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("CS")),
pRecPro->GetCollect(_T("PM")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("PM")),
pRecPro->GetCollect(_T("QAS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("QAS")),
pRecPro->GetCollect(_T("standard")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("standard")));
pCmdInsPro->CommandText = szSql.AllocSysString();
pCmdInsPro->Execute(NULL, NULL, adCmdText);
}
pRecPro->Close();
}
void CIOManager::ExportTzToAccdbFile(_ConnectionPtr pExpConnection, DWORD dwTzID)
{
DWORD dwProID = (DWORD)VAL_ZERO;
CString szSql;
_CommandPtr pCmdInsTz = NULL;
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
pCmdInsTz.CreateInstance(_uuidof(Command));
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
szSql.Empty();
szSql.Format(_T("select PRID,TZname,TZdesc,location from tz where ID = %u"), dwTzID);
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecTz->GetRecordCount())
{
szSql.Empty();
szSql.Format("select CN from project where ID = %u", pRecTz->GetCollect(_T("PRID")).ulVal);
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecPro->GetRecordCount())
{
pCmdInsTz->ActiveConnection = pExpConnection;
szSql.Empty();
szSql.Format(_T("insert into tz(PRCN,TZname,location,TZdesc) values('%s','%s','%s','%s')"),
pRecPro->GetCollect(_T("CN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("CN")),
pRecTz->GetCollect(_T("TZname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("TZname")),
pRecTz->GetCollect(_T("location")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("location")),
pRecTz->GetCollect(_T("TZdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("TZdesc")));
pCmdInsTz->CommandText = szSql.AllocSysString();
pCmdInsTz->Execute(NULL, NULL, adCmdText);
}
}
pRecTz->Close();
}
void CIOManager::ExportRspTdToAccdbFile(_ConnectionPtr pExpConnection, DWORD dwTdID)
{
_RecordsetPtr pRecRspCon = NULL;
_RecordsetPtr pRecGr = NULL;
_CommandPtr pCmdIns = NULL;
CString szTdName = _T("");
CString szDeSn = _T("");
CString szSql = _T("");
ExportTdHeadInfoToAccdbFile(pExpConnection, dwTdID, szTdName, szDeSn);
pRecRspCon.CreateInstance(_uuidof(Recordset));
pRecGr.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = pExpConnection;
szSql.Empty();
szSql.Format("select A,B,M,N,K,SP,Ro,Vp,Ip,SD,RgA,RgB,RgM,RgN,Ttime from rspcon where TDID = %u order by Ttime", dwTdID);
pRecRspCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecRspCon->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into rspcon(TDname,DESN,A,B,M,N,K,SP,Ro,Vp,Ip,SD,RgA,RgB,RgM,RgN,Ttime) values('%s','%s',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
szTdName,
szDeSn,
pRecRspCon->GetCollect(_T("A")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("A")),
pRecRspCon->GetCollect(_T("B")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("B")),
pRecRspCon->GetCollect(_T("M")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("M")),
pRecRspCon->GetCollect(_T("N")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("N")),
pRecRspCon->GetCollect(_T("K")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("K")),
pRecRspCon->GetCollect(_T("SP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("SP")),
pRecRspCon->GetCollect(_T("Ro")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("Ro")),
pRecRspCon->GetCollect(_T("Vp")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("Vp")),
pRecRspCon->GetCollect(_T("Ip")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("Ip")),
pRecRspCon->GetCollect(_T("SD")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("SD")),
pRecRspCon->GetCollect(_T("Rg-A")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("RgA")),
pRecRspCon->GetCollect(_T("Rg-B")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("RgB")),
pRecRspCon->GetCollect(_T("Rg-M")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("RgM")),
pRecRspCon->GetCollect(_T("Rg-N")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("RgN")),
pRecRspCon->GetCollect(_T("Ttime")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecRspCon->GetCollect(_T("Ttime")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecRspCon->MoveNext();
}
pRecRspCon->Close();
szSql.Empty();
szSql.Format(_T("select electrode,CableH,CableT,P1GR,P2GR from gr where TDID = %u"), dwTdID);
pRecGr->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecGr->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into gr(TDname,DESN,electrode,CableH,CableT,P1GR,P2GR) values('%s','%s','%s','%s','%s',%s,%s)"),
szTdName,
szDeSn,
pRecGr->GetCollect(_T("electrode")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("electrode")),
pRecGr->GetCollect(_T("CableH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("CableH")),
pRecGr->GetCollect(_T("CableT")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("CableT")),
pRecGr->GetCollect(_T("P1GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("P1GR")),
pRecGr->GetCollect(_T("P2GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("P2GR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecGr->MoveNext();
}
pRecGr->Close();
}
void CIOManager::ExportIpspTdToAccdbFile(_ConnectionPtr pExpConnection, DWORD dwTdID)
{
_RecordsetPtr pRecIpspCon = NULL;
_RecordsetPtr pRecGr = NULL;
_CommandPtr pCmdIns = NULL;
CString szTdName = _T("");
CString szDeSn = _T("");
CString szSql = _T("");
ExportTdHeadInfoToAccdbFile(pExpConnection, dwTdID, szTdName, szDeSn);
pRecIpspCon.CreateInstance(_uuidof(Recordset));
pRecGr.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = pExpConnection;
szSql.Empty();
szSql.Format("select SP,Ro,VP,IP,M1,M2,M3,M4,M5,M6,M7,TH,D,Zp,FG,Am,Bm,Cm,Dm,r from ipspcon where TDID =%u", dwTdID);
pRecIpspCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecIpspCon->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into rspcon(TDname,DESN,SP,Ro,VP,IP,M1,M2,M3,M4,M5,M6,M7,TH,D,Zp,FG,Am,Bm,Cm,Dm,r) values('%s','%s',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
szTdName,
szDeSn,
pRecIpspCon->GetCollect(_T("SP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("SP")),
pRecIpspCon->GetCollect(_T("Ro")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Ro")),
pRecIpspCon->GetCollect(_T("VP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("VP")),
pRecIpspCon->GetCollect(_T("IP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("IP")),
pRecIpspCon->GetCollect(_T("M1")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M1")),
pRecIpspCon->GetCollect(_T("M2")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M2")),
pRecIpspCon->GetCollect(_T("M3")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M3")),
pRecIpspCon->GetCollect(_T("M4")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M4")),
pRecIpspCon->GetCollect(_T("M5")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M5")),
pRecIpspCon->GetCollect(_T("M6")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M6")),
pRecIpspCon->GetCollect(_T("M7")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("M7")),
pRecIpspCon->GetCollect(_T("TH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("TH")),
pRecIpspCon->GetCollect(_T("D")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("D")),
pRecIpspCon->GetCollect(_T("Zp")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Zp")),
pRecIpspCon->GetCollect(_T("FG")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("FG")),
pRecIpspCon->GetCollect(_T("Am")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Am")),
pRecIpspCon->GetCollect(_T("Bm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Bm")),
pRecIpspCon->GetCollect(_T("Cm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Cm")),
pRecIpspCon->GetCollect(_T("Dm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("Dm")),
pRecIpspCon->GetCollect(_T("r")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecIpspCon->GetCollect(_T("r")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecIpspCon->MoveNext();
}
pRecIpspCon->Close();
szSql.Empty();
szSql.Format(_T("select electrode,CableH,CableT,P1GR,P2GR from gr where TDID = %u"), dwTdID);
pRecGr->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecGr->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into gr(TDname,DESN,electrode,CableH,CableT,P1GR,P2GR) values('%s','%s','%s','%s','%s',%s,%s)"),
szTdName,
szDeSn,
pRecGr->GetCollect(_T("electrode")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("electrode")),
pRecGr->GetCollect(_T("CableH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("CableH")),
pRecGr->GetCollect(_T("CableT")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("CableT")),
pRecGr->GetCollect(_T("P1GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("P1GR")),
pRecGr->GetCollect(_T("P2GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecGr->GetCollect(_T("P2GR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecGr->MoveNext();
}
pRecGr->Close();
}
void CIOManager::ExportTdHeadInfoToAccdbFile(_ConnectionPtr pExpConnection, DWORD dwTdID, CString& szTdName, CString& szDeSn)
{
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
_RecordsetPtr pRecTd = NULL;
_RecordsetPtr pRecTdHead = NULL;
_RecordsetPtr pRecPara = NULL;
_CommandPtr pCmdIns = NULL;
CString szTzName;
CString szPrCn;
CString szSql;
DWORD dwPaID = (DWORD)VAL_ZERO;
DWORD dwTzID = (DWORD)VAL_ZERO;
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
pRecTd.CreateInstance(_uuidof(Recordset));
pRecTdHead.CreateInstance(_uuidof(Recordset));
pRecPara.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = pExpConnection;
szSql.Empty();
szSql.Format(_T("select TDname,SCCN,PAID,DESN,TZID,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount from td where ID = %u"), dwTdID);
pRecTd->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecTd->GetRecordCount())
{
szTdName.Empty();
szTdName = (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("TDname"));
dwPaID = pRecTd->GetCollect(_T("PAID")).ulVal;
szDeSn.Empty();
szDeSn = (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("DESN"));
szSql.Empty();
szSql.Format(_T("select PRID,TZname from tz where ID = %u"), pRecTd->GetCollect(_T("TZID")).ulVal);
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecTz->GetRecordCount())
{
szTzName.Empty();
szTzName = (LPCTSTR)(_bstr_t)pRecTz->GetCollect(_T("TZname"));
szSql.Empty();
szSql.Format(_T("select CN from project where ID = %u"), pRecTz->GetCollect(_T("PRID")).ulVal);
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecTz->GetRecordCount())
{
szPrCn.Empty();
szPrCn = (LPCTSTR)(_bstr_t)pRecPro->GetCollect(_T("CN"));
}
pRecPro->Close();
}
pRecTz->Close();
szSql.Empty();
szSql.Format(_T("insert into td(TDname,DESN,PRCN,TZname,SCCN,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount) values('%s','%s','%s','%s','%s',%d,'%s','%s',%d,'%s',%d)"),
(LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("DESN")),
szPrCn,
szTzName,
(LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("SCCN")),
pRecTd->GetCollect(_T("TDtype")).iVal,
pRecTd->GetCollect(_T("HFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("HFname")),
pRecTd->GetCollect(_T("CFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("CFname")),
pRecTd->GetCollect(_T("CFRamount")).iVal,
pRecTd->GetCollect(_T("GRFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTd->GetCollect(_T("GRFname")),
pRecTd->GetCollect(_T("GRFRamount")).iVal);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
}
pRecTd->Close();
szSql.Empty();
szSql.Format(_T("select Format(Cdate,'YYYY-MM-DD') as Cdate,Format(Ctime,'HH:MM:SS') as Ctime,rolling,RCamount,Rdirection,CRtime,CPE,CPN,weather,temperature,height,humidity,PM,OP,QA from tdhead where TDID = %u"),
dwTdID);
pRecTdHead->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecTdHead->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into tdhead(TDname,DESN,Cdate,Ctime,rolling,RCamount,Rdirection,CRtime,CPE,CPN,weather,temperature,height,humidity,PM,OP,QA) "
"values('%s','%s',#%s#,#%s#,%s,%s,%s,%s,'%s','%s',%s,%s,%s,%s,'%s','%s','%s')"),
szTdName,
szDeSn,
(LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("Cdate")),
(LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("Ctime")),
pRecTdHead->GetCollect(_T("rolling")).vt == VT_NULL ? _T("0") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("rolling")),
pRecTdHead->GetCollect(_T("RCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("RCamount")),
pRecTdHead->GetCollect(_T("Rdirection")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("Rdirection")),
pRecTdHead->GetCollect(_T("CRtime")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("CRtime")),
pRecTdHead->GetCollect(_T("CPE")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("CPE")),
pRecTdHead->GetCollect(_T("CPN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("CPN")),
pRecTdHead->GetCollect(_T("weather")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("weather")),
pRecTdHead->GetCollect(_T("temperature")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("temperature")),
pRecTdHead->GetCollect(_T("height")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("height")),
pRecTdHead->GetCollect(_T("humidity")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("humidity")),
pRecTdHead->GetCollect(_T("PM")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("PM")),
pRecTdHead->GetCollect(_T("OP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("OP")),
pRecTdHead->GetCollect(_T("QA")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecTdHead->GetCollect(_T("QA")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
}
pRecTdHead->Close();
szSql.Empty();
szSql.Format(_T("select LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun from parameter where ID = %u"),
dwPaID);
pRecPara->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecPara->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into parameter(TDname,DESN,LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun) "
"values('%s','%s',%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
szTdName,
szDeSn,
pRecPara->GetCollect(_T("LCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("LCHamount")),
pRecPara->GetCollect(_T("RCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("RCHamount")),
pRecPara->GetCollect(_T("LCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("LCamount")),
pRecPara->GetCollect(_T("RCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("RCamount")),
pRecPara->GetCollect(_T("LEamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("LEamount")),
pRecPara->GetCollect(_T("REamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("REamount")),
pRecPara->GetCollect(_T("Felectrode")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("Felectrode")),
pRecPara->GetCollect(_T("Espacing")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("Espacing")),
pRecPara->GetCollect(_T("Clayout")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("Clayout")),
pRecPara->GetCollect(_T("CLfun")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecPara->GetCollect(_T("CLfun")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
}
pRecPara->Close();
}
void CIOManager::ExportSptToAccdbFile(_ConnectionPtr pExpConnection, CListCtrl &sptList)
{
_RecordsetPtr pRecSCon = NULL;
_RecordsetPtr pRecCha = NULL;
_RecordsetPtr pRecSpt = NULL;
// _RecordsetPtr pRecMed = NULL;
_CommandPtr pCmdIns = NULL;
CString szSql = _T("");
CString szCN = _T("");
CString szMeName = _T("");
int iScIndex = (int)VAL_ZERO;
DWORD dwScHandle = (DWORD)VAL_ZERO;
DWORD dwScID = (DWORD)VAL_ZERO;
DWORD dwChID = (DWORD)VAL_ZERO;
int iChNumber = (int)VAL_ZERO;
pRecSCon.CreateInstance(_uuidof(Recordset));
pRecCha.CreateInstance(_uuidof(Recordset));
pRecSpt.CreateInstance(_uuidof(Recordset));
// pRecMed.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = pExpConnection;
for(iScIndex = (int)VAL_ZERO; iScIndex < sptList.GetItemCount(); iScIndex ++)
{
if( sptList.GetItemState(iScIndex, LVIS_SELECTED) == LVIS_SELECTED || sptList.GetCheck(iScIndex))
{
dwScHandle = sptList.GetItemData(iScIndex);
dwScID = m_handleProcessor.GetIDFromHandle(dwScHandle);
szSql.Empty();
szSql.Format(_T("select CN,Sname,Eamount,CHamount,TPamount,definer,Format(DEdate,'YYYY-MM-DD') as DEdate,SCdesc from scon where ID = %u"), dwScID);
pRecSCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecSCon->GetRecordCount())
{
szCN = (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("CN"));
szSql.Empty();
szSql.Format(_T("insert into scon(CN,Sname,Eamount,CHamount,TPamount,definer,DEdate,SCdesc) "
"values('%s','%s',%s,%s,%s,'%s',#%s#,'%s')"),
szCN,
pRecSCon->GetCollect(_T("Sname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("Sname")),
pRecSCon->GetCollect(_T("Eamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("Eamount")),
pRecSCon->GetCollect(_T("CHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("CHamount")),
pRecSCon->GetCollect(_T("TPamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("TPamount")),
pRecSCon->GetCollect(_T("definer")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("definer")),
pRecSCon->GetCollect(_T("DEdate")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("DEdate")),
pRecSCon->GetCollect(_T("SCdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecSCon->GetCollect(_T("SCdesc")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
}
pRecSCon->Close();
szSql.Empty();
szSql.Format(_T("select ID,CHnumber,AR from channel where SCID = %u"), dwScID);
pRecCha->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecCha->adoEOF)
{
dwChID = (DWORD)pRecCha->GetCollect(_T("ID")).ulVal;
iChNumber = (int)pRecCha->GetCollect(_T("CHnumber")).iVal;
szSql.Empty();
szSql.Format(_T("insert into channel(CN,CHnumber,AR) "
"values('%s',%d,%s)"),
szCN,
iChNumber,
pRecCha->GetCollect(_T("AR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecCha->GetCollect(_T("AR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
szSql.Empty();
szSql.Format(_T("select TSN,C1,C2,P1,P2,K,N from script2d where CHID = %u order by TSN"), dwChID);
pRecSpt->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecSpt->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into script2d(CN,CHnumber,TSN,C1,C2,P1,P2,K,N) "
"values('%s',%d,%s,%s,%s,%s,%s,%s,%s)"),
szCN,
iChNumber,
pRecSpt->GetCollect(_T("TSN")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("TSN")),
pRecSpt->GetCollect(_T("C1")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("C1")),
pRecSpt->GetCollect(_T("C2")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("C2")),
pRecSpt->GetCollect(_T("P1")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("P1")),
pRecSpt->GetCollect(_T("P2")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("P2")),
pRecSpt->GetCollect(_T("K")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("K")),
pRecSpt->GetCollect(_T("N")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecSpt->GetCollect(_T("N")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecSpt->MoveNext();
}
pRecSpt->Close();
pRecCha->MoveNext();
}
pRecCha->Close();
}
}
}
void CIOManager::ImportSptToDB(_ConnectionPtr pImpConnection)
{
_RecordsetPtr pRecImpSCon = NULL;
_RecordsetPtr pRecImpCha = NULL;
_RecordsetPtr pRecImpSpt = NULL;
_RecordsetPtr pRecScID = NULL;
_RecordsetPtr pRecSCon = NULL;
_RecordsetPtr pRecChID = NULL;
// _RecordsetPtr pRecMed = NULL;
_CommandPtr pCmdIns = NULL;
_CommandPtr pCmdUpd = NULL;
CString szSql = _T("");
DWORD dwScID = (DWORD)VAL_ZERO;
DWORD dwChID = (DWORD)VAL_ZERO;
// DWORD dwMeID = (DWORD)VAL_ZERO;
int iChNumber = (int)VAL_ZERO;
pRecImpSCon.CreateInstance(_uuidof(Recordset));
pRecImpCha.CreateInstance(_uuidof(Recordset));
pRecImpSpt.CreateInstance(_uuidof(Recordset));
pRecScID.CreateInstance(_uuidof(Recordset));
pRecSCon.CreateInstance(_uuidof(Recordset));
pRecChID.CreateInstance(_uuidof(Recordset));
// pRecMed.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = m_pConnection;
pCmdUpd.CreateInstance(_uuidof(Command));
pCmdUpd->ActiveConnection = m_pConnection;
pRecImpSCon->Open(_T("select CN,Sname,Eamount,CHamount,TPamount,definer,DEdate,SCdesc from scon"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpSCon->adoEOF)
{
szSql.Empty();
szSql.Format(_T("select ID from scon where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CN")));
pRecSCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecSCon->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into scon(CN,Sname,Eamount,CHamount,TPamount,definer,DEdate,SCdesc) "
"values('%s','%s',%s,%s,%s,'%s',#%s#,'%s')"),
pRecImpSCon->GetCollect(_T("CN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CN")),
pRecImpSCon->GetCollect(_T("Sname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("Sname")),
pRecImpSCon->GetCollect(_T("Eamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("Eamount")),
pRecImpSCon->GetCollect(_T("CHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CHamount")),
pRecImpSCon->GetCollect(_T("TPamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("TPamount")),
pRecImpSCon->GetCollect(_T("definer")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("definer")),
pRecImpSCon->GetCollect(_T("DEdate")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("DEdate")),
pRecImpSCon->GetCollect(_T("SCdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("SCdesc")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecScID->Open(_T("select max(ID) as ID from scon"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwScID = (DWORD)pRecScID->GetCollect(_T("ID")).ulVal;
pRecScID->Close();
szSql.Empty();
szSql.Format(_T("select CHnumber,AR from channel where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CN")));
pRecImpCha->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpCha->adoEOF)
{
iChNumber = pRecImpCha->GetCollect(_T("CHnumber")).iVal;
szSql.Empty();
szSql.Format(_T("insert into channel(SCID,CHnumber,AR) values(%u,%d,%s)"),
dwScID,
iChNumber,
pRecImpCha->GetCollect(_T("AR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpCha->GetCollect(_T("AR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecChID->Open(_T("select max(ID) as ID from channel"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwChID = (DWORD)pRecChID->GetCollect(_T("ID")).ulVal;
pRecChID->Close();
szSql.Empty();
szSql.Format(_T("select TSN,C1,C2,P1,P2,K,N from script2d where CN = '%s' and CHnumber = %d order by TSN"),
(LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CN")),
iChNumber);
pRecImpSpt->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpSpt->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into script2d(CHID,TSN,C1,C2,P1,P2,K,N) "
"values(%u,%s,%s,%s,%s,%s,%s,%s)"),
dwChID,
pRecImpSpt->GetCollect(_T("TSN")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("TSN")),
pRecImpSpt->GetCollect(_T("C1")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("C1")),
pRecImpSpt->GetCollect(_T("C2")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("C2")),
pRecImpSpt->GetCollect(_T("P1")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("P1")),
pRecImpSpt->GetCollect(_T("P2")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("P2")),
pRecImpSpt->GetCollect(_T("K")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("K")),
pRecImpSpt->GetCollect(_T("N")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpSpt->GetCollect(_T("N"))
);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecImpSpt->MoveNext();
}
pRecImpSpt->Close();
pRecImpCha->MoveNext();
}
pRecImpCha->Close();
szSql.Empty();
szSql.Format(_T("update td set SCID = %u where SCCN = '%s'"), dwScID, (LPCTSTR)(_bstr_t)pRecImpSCon->GetCollect(_T("CN")));
pCmdUpd->CommandText = szSql.AllocSysString();
pCmdUpd->Execute(NULL, NULL, adCmdText);
}
pRecSCon->Close();
pRecImpSCon->MoveNext();
}
pRecImpSCon->Close();
}
void CIOManager::ImportIpspTdToDB(_ConnectionPtr pImpConnection)
{
_RecordsetPtr pRecImpTd = NULL;
_RecordsetPtr pRecImpTdHead = NULL;
_RecordsetPtr pRecImpPam = NULL;
_RecordsetPtr pRecImpIpspCon = NULL;
_RecordsetPtr pRecImpGr = NULL;
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
_RecordsetPtr pRecTd = NULL;
_RecordsetPtr pRecTdID = NULL;
_RecordsetPtr pRecDev = NULL;
_RecordsetPtr pRecSCon = NULL;
_RecordsetPtr pRecPam = NULL;
_CommandPtr pCmdIns = NULL;
DWORD dwPaID = (DWORD)VAL_ZERO;
DWORD dwDeID = (DWORD)VAL_ZERO;
DWORD dwScID = (DWORD)VAL_ZERO;
DWORD dwTzID = (DWORD)VAL_ZERO;
DWORD dwTdID = (DWORD)VAL_ZERO;
CString szSql = _T("");
pRecImpTd.CreateInstance(_uuidof(Recordset));
pRecImpTdHead.CreateInstance(_uuidof(Recordset));
pRecImpPam.CreateInstance(_uuidof(Recordset));
pRecImpIpspCon.CreateInstance(_uuidof(Recordset));
pRecImpGr.CreateInstance(_uuidof(Recordset));
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
pRecTd.CreateInstance(_uuidof(Recordset));
pRecTdID.CreateInstance(_uuidof(Recordset));
pRecDev.CreateInstance(_uuidof(Recordset));
pRecSCon.CreateInstance(_uuidof(Recordset));
pRecPam.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = m_pConnection;
pRecImpTd->Open(_T("select TDname,DESN,PRCN,TZname,SCCN,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount from td"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpTd->adoEOF)
{
szSql.Empty();
szSql.Format(_T("select ID from td where TDname = '%s' and DESN = '%s'"),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecTd->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecTd->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("select ID from project where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("PRCN")));
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
szSql.Empty();
szSql.Format("select ID from tz where PRID = %u and TZname = '%s'",
pRecPro->GetCollect(_T("ID")).ulVal,
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TZname")));
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwTzID = pRecTz->GetCollect(_T("ID")).ulVal;
pRecTz->Close();
pRecPro->Close();
szSql.Empty();
szSql.Format("select LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun from parameter where TDname = '%s' and DESN = '%s'",
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpPam->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecImpPam->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into parameter(LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun) "
"values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
pRecImpPam->GetCollect(_T("LCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LCHamount")),
pRecImpPam->GetCollect(_T("RCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("RCHamount")),
pRecImpPam->GetCollect(_T("LCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LCamount")),
pRecImpPam->GetCollect(_T("RCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("RCamount")),
pRecImpPam->GetCollect(_T("LEamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LEamount")),
pRecImpPam->GetCollect(_T("REamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("REamount")),
pRecImpPam->GetCollect(_T("Felectrode")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Felectrode")),
pRecImpPam->GetCollect(_T("Espacing")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Espacing")),
pRecImpPam->GetCollect(_T("Clayout")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Clayout")),
pRecImpPam->GetCollect(_T("CLfun")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("CLfun")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecPam->Open(_T("select max(ID) as ID from parameter"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwPaID = pRecPam->GetCollect(_T("ID")).ulVal;
pRecPam->Close();
}
pRecImpPam->Close();
szSql.Empty();
szSql.Format(_T("select ID from device where SN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecDev->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecDev->GetRecordCount())
{
dwDeID = pRecDev->GetCollect(_T("ID")).ulVal;
}
else
{
dwDeID = (DWORD)VAL_ZERO;
}
pRecDev->Close();
szSql.Empty();
szSql.Format(_T("select ID from scon where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("SCCN")));
pRecSCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecSCon->GetRecordCount())
{
dwScID = pRecSCon->GetCollect(_T("ID")).ulVal;
}
else
{
dwScID = (DWORD)VAL_ZERO;
}
pRecSCon->Close();
szSql.Empty();
szSql.Format(_T("insert into td(PAID,SCID,DEID,TZID,TDname,DESN,SCCN,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount) values(%u,%u,%u,%u,'%s','%s','%s',%d,'%s','%s',%d,'%s',%d)"),
dwPaID,dwScID,dwDeID,dwTzID,
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("SCCN")),
pRecImpTd->GetCollect(_T("TDtype")).iVal,
pRecImpTd->GetCollect(_T("HFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("HFname")),
pRecImpTd->GetCollect(_T("CFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("CFname")),
pRecImpTd->GetCollect(_T("CFRamount")).iVal,
pRecImpTd->GetCollect(_T("GRFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("GRFname")),
pRecImpTd->GetCollect(_T("GRFRamount")).iVal);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecTdID->Open(_T("select max(ID) as ID from td"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwTdID = pRecTdID->GetCollect(_T("ID")).ulVal;
pRecTdID->Close();
szSql.Empty();
szSql.Format("select SP,Ro,VP,IP,M1,M2,M3,M4,M5,M6,M7,TH,D,Zp,FG,Am,Bm,Cm,Dm,r from ipspcon where TDname = '%s' and DESN = '%s'",
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpIpspCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpIpspCon->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into rspcon(TDID,SP,Ro,VP,IP,M1,M2,M3,M4,M5,M6,M7,TH,D,Zp,FG,Am,Bm,Cm,Dm,r) values(%u,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
dwTdID,
pRecImpIpspCon->GetCollect(_T("SP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("SP")),
pRecImpIpspCon->GetCollect(_T("Ro")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Ro")),
pRecImpIpspCon->GetCollect(_T("VP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("VP")),
pRecImpIpspCon->GetCollect(_T("IP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("IP")),
pRecImpIpspCon->GetCollect(_T("M1")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M1")),
pRecImpIpspCon->GetCollect(_T("M2")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M2")),
pRecImpIpspCon->GetCollect(_T("M3")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M3")),
pRecImpIpspCon->GetCollect(_T("M4")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M4")),
pRecImpIpspCon->GetCollect(_T("M5")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M5")),
pRecImpIpspCon->GetCollect(_T("M6")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M6")),
pRecImpIpspCon->GetCollect(_T("M7")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("M7")),
pRecImpIpspCon->GetCollect(_T("TH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("TH")),
pRecImpIpspCon->GetCollect(_T("D")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("D")),
pRecImpIpspCon->GetCollect(_T("Zp")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Zp")),
pRecImpIpspCon->GetCollect(_T("FG")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("FG")),
pRecImpIpspCon->GetCollect(_T("Am")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Am")),
pRecImpIpspCon->GetCollect(_T("Bm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Bm")),
pRecImpIpspCon->GetCollect(_T("Cm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Cm")),
pRecImpIpspCon->GetCollect(_T("Dm")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("Dm")),
pRecImpIpspCon->GetCollect(_T("r")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpIpspCon->GetCollect(_T("r")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecImpIpspCon->MoveNext();
}
pRecImpIpspCon->Close();
szSql.Empty();
szSql.Format(_T("select electrode,CableH,CableT,P1GR,P2GR from gr where TDname = '%s' and DESN = '%s'"),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpGr->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpGr->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into gr(TDID,electrode,CableH,CableT,P1GR,P2GR) values(%u,'%s','%s','%s',%s,%s)"),
dwTdID,
pRecImpGr->GetCollect(_T("electrode")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("electrode")),
pRecImpGr->GetCollect(_T("CableH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("CableH")),
pRecImpGr->GetCollect(_T("CableT")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("CableT")),
pRecImpGr->GetCollect(_T("P1GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("P1GR")),
pRecImpGr->GetCollect(_T("P2GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("P2GR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecImpGr->MoveNext();
}
pRecImpGr->Close();
}
pRecTd->Close();
pRecImpTd->MoveNext();
}
pRecImpTd->Close();
}
void CIOManager::ImportRspTdToDB(_ConnectionPtr pImpConnection)
{
_RecordsetPtr pRecImpTd = NULL;
_RecordsetPtr pRecImpTdHead = NULL;
_RecordsetPtr pRecImpPam = NULL;
_RecordsetPtr pRecImpRspCon = NULL;
_RecordsetPtr pRecImpGr = NULL;
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
_RecordsetPtr pRecTd = NULL;
_RecordsetPtr pRecTdID = NULL;
_RecordsetPtr pRecDev = NULL;
_RecordsetPtr pRecSCon = NULL;
_RecordsetPtr pRecPam = NULL;
_CommandPtr pCmdIns = NULL;
DWORD dwPaID = (DWORD)VAL_ZERO;
DWORD dwDeID = (DWORD)VAL_ZERO;
DWORD dwScID = (DWORD)VAL_ZERO;
DWORD dwTzID = (DWORD)VAL_ZERO;
DWORD dwTdID = (DWORD)VAL_ZERO;
CString szSql = _T("");
pRecImpTd.CreateInstance(_uuidof(Recordset));
pRecImpTdHead.CreateInstance(_uuidof(Recordset));
pRecImpPam.CreateInstance(_uuidof(Recordset));
pRecImpRspCon.CreateInstance(_uuidof(Recordset));
pRecImpGr.CreateInstance(_uuidof(Recordset));
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
pRecTd.CreateInstance(_uuidof(Recordset));
pRecTdID.CreateInstance(_uuidof(Recordset));
pRecDev.CreateInstance(_uuidof(Recordset));
pRecSCon.CreateInstance(_uuidof(Recordset));
pRecPam.CreateInstance(_uuidof(Recordset));
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = m_pConnection;
pRecImpTd->Open(_T("select TDname,DESN,PRCN,TZname,SCCN,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount from td"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpTd->adoEOF)
{
szSql.Empty();
szSql.Format(_T("select ID from td where TDname = '%s' and DESN = '%s'"),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecTd->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecTd->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("select ID from project where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("PRCN")));
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
szSql.Empty();
szSql.Format("select ID from tz where PRID = %u and TZname = '%s'",
pRecPro->GetCollect(_T("ID")).ulVal,
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TZname")));
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwTzID = pRecTz->GetCollect(_T("ID")).ulVal;
pRecTz->Close();
pRecPro->Close();
szSql.Empty();
szSql.Format("select LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun from parameter where TDname = '%s' and DESN = '%s'",
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpPam->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecImpPam->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("insert into parameter(LCHamount,RCHamount,LCamount,RCamount,LEamount,REamount,Felectrode,Espacing,Clayout,CLfun) "
"values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
pRecImpPam->GetCollect(_T("LCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LCHamount")),
pRecImpPam->GetCollect(_T("RCHamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("RCHamount")),
pRecImpPam->GetCollect(_T("LCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LCamount")),
pRecImpPam->GetCollect(_T("RCamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("RCamount")),
pRecImpPam->GetCollect(_T("LEamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("LEamount")),
pRecImpPam->GetCollect(_T("REamount")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("REamount")),
pRecImpPam->GetCollect(_T("Felectrode")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Felectrode")),
pRecImpPam->GetCollect(_T("Espacing")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Espacing")),
pRecImpPam->GetCollect(_T("Clayout")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("Clayout")),
pRecImpPam->GetCollect(_T("CLfun")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpPam->GetCollect(_T("CLfun")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecPam->Open(_T("select max(ID) as ID from parameter"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwPaID = pRecPam->GetCollect(_T("ID")).ulVal;
pRecPam->Close();
}
pRecImpPam->Close();
szSql.Empty();
szSql.Format(_T("select ID from device where SN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecDev->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecDev->GetRecordCount())
{
dwDeID = pRecDev->GetCollect(_T("ID")).ulVal;
}
else
{
dwDeID = (DWORD)VAL_ZERO;
}
pRecDev->Close();
szSql.Empty();
szSql.Format(_T("select ID from scon where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("SCCN")));
pRecSCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecSCon->GetRecordCount())
{
dwScID = pRecSCon->GetCollect(_T("ID")).ulVal;
}
else
{
dwScID = (DWORD)VAL_ZERO;
}
pRecSCon->Close();
szSql.Empty();
szSql.Format(_T("insert into td(PAID,SCID,DEID,TZID,TDname,DESN,SCCN,TDtype,HFname,CFname,CFRamount,GRFname,GRFRamount) values(%u,%u,%u,%u,'%s','%s','%s',%d,'%s','%s',%d,'%s',%d)"),
dwPaID,dwScID,dwDeID,dwTzID,
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("SCCN")),
pRecImpTd->GetCollect(_T("TDtype")).iVal,
pRecImpTd->GetCollect(_T("HFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("HFname")),
pRecImpTd->GetCollect(_T("CFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("CFname")),
pRecImpTd->GetCollect(_T("CFRamount")).iVal,
pRecImpTd->GetCollect(_T("GRFname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("GRFname")),
pRecImpTd->GetCollect(_T("GRFRamount")).iVal);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecTdID->Open(_T("select max(ID) as ID from td"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
dwTdID = pRecTdID->GetCollect(_T("ID")).ulVal;
pRecTdID->Close();
szSql.Empty();
szSql.Format("select A,B,M,N,K,SP,Ro,Vp,Ip,SD,RgA,RgB,RgM,RgN,Ttime from rspcon where TDname = '%s' and DESN = '%s' order by Ttime",
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpRspCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpRspCon->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into rspcon(TDID,A,B,M,N,K,SP,Ro,Vp,Ip,SD,RgA,RgB,RgM,RgN,Ttime) values(%u,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"),
dwTdID,
pRecImpRspCon->GetCollect(_T("A")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("A")),
pRecImpRspCon->GetCollect(_T("B")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("B")),
pRecImpRspCon->GetCollect(_T("M")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("M")),
pRecImpRspCon->GetCollect(_T("N")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("N")),
pRecImpRspCon->GetCollect(_T("K")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("K")),
pRecImpRspCon->GetCollect(_T("SP")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("SP")),
pRecImpRspCon->GetCollect(_T("Ro")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("Ro")),
pRecImpRspCon->GetCollect(_T("Vp")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("Vp")),
pRecImpRspCon->GetCollect(_T("Ip")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("Ip")),
pRecImpRspCon->GetCollect(_T("SD")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("SD")),
pRecImpRspCon->GetCollect(_T("Rg-A")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("RgA")),
pRecImpRspCon->GetCollect(_T("Rg-B")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("RgB")),
pRecImpRspCon->GetCollect(_T("Rg-M")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("RgM")),
pRecImpRspCon->GetCollect(_T("Rg-N")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("RgN")),
pRecImpRspCon->GetCollect(_T("Ttime")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpRspCon->GetCollect(_T("Ttime")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecImpRspCon->MoveNext();
}
pRecImpRspCon->Close();
szSql.Empty();
szSql.Format(_T("select electrode,CableH,CableT,P1GR,P2GR from gr where TDname = '%s' and DESN = '%s'"),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("TDname")),
(LPCTSTR)(_bstr_t)pRecImpTd->GetCollect(_T("DESN")));
pRecImpGr->Open(szSql.AllocSysString(), _variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpGr->adoEOF)
{
szSql.Empty();
szSql.Format(_T("insert into gr(TDID,electrode,CableH,CableT,P1GR,P2GR) values(%u,'%s','%s','%s',%s,%s)"),
dwTdID,
pRecImpGr->GetCollect(_T("electrode")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("electrode")),
pRecImpGr->GetCollect(_T("CableH")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("CableH")),
pRecImpGr->GetCollect(_T("CableT")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("CableT")),
pRecImpGr->GetCollect(_T("P1GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("P1GR")),
pRecImpGr->GetCollect(_T("P2GR")).vt == VT_NULL ? _T("null") : (LPCTSTR)(_bstr_t)pRecImpGr->GetCollect(_T("P2GR")));
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
pRecImpGr->MoveNext();
}
pRecImpGr->Close();
}
pRecTd->Close();
pRecImpTd->MoveNext();
}
pRecImpTd->Close();
}
void CIOManager::ImportTzToDB(_ConnectionPtr pImpConnection)
{
CString szSql = _T("");
_CommandPtr pCmdInsTz = NULL;
_RecordsetPtr pRecPro = NULL;
_RecordsetPtr pRecTz = NULL;
_RecordsetPtr pRecImpTz = NULL;
pCmdInsTz.CreateInstance(_uuidof(Command));
pRecPro.CreateInstance(_uuidof(Recordset));
pRecTz.CreateInstance(_uuidof(Recordset));
pRecImpTz.CreateInstance(_uuidof(Recordset));
pRecImpTz->Open(_T("select TZname,PRCN,TZdesc,location from tz"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpTz->adoEOF)
{
szSql.Empty();
szSql.Format("select ID from project where CN = '%s'", (LPCTSTR)(_bstr_t)pRecImpTz->GetCollect(_T("PRCN")));
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO != pRecPro->GetRecordCount())
{
szSql.Empty();
szSql.Format(_T("select ID from tz where PRID = %u and TZname = '%s'"),
pRecPro->GetCollect(_T("ID")).ulVal, (LPCTSTR)(_bstr_t)pRecImpTz->GetCollect(_T("TZname")));
pRecTz->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecTz->GetRecordCount())
{
pCmdInsTz->ActiveConnection = m_pConnection;
szSql.Empty();
szSql.Format(_T("insert into tz(PRID,TZname,location,TZdesc) values(%u,'%s','%s','%s')"),
pRecPro->GetCollect(_T("ID")).ulVal,
pRecImpTz->GetCollect(_T("TZname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTz->GetCollect(_T("TZname")),
pRecImpTz->GetCollect(_T("location")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTz->GetCollect(_T("location")),
pRecImpTz->GetCollect(_T("TZdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpTz->GetCollect(_T("TZdesc")));
pCmdInsTz->CommandText = szSql.AllocSysString();
pCmdInsTz->Execute(NULL, NULL, adCmdText);
}
pRecTz->Close();
}
pRecPro->Close();
pRecImpTz->MoveNext();
}
pRecImpTz->Close();
}
void CIOManager::ImportProjectToDB(_ConnectionPtr pImpConnection)
{
_RecordsetPtr pRecImpPro = NULL;
_RecordsetPtr pRecPro = NULL;
_CommandPtr pCmdInsPro = NULL;
CString szSql = _T("");
pRecImpPro.CreateInstance(_uuidof(Recordset));
pRecPro.CreateInstance(_uuidof(Recordset));
pCmdInsPro.CreateInstance(_uuidof(Command));
pRecImpPro->Open(_T("select CN,PRname,PRdesc,location,PRdate,duration,PS,CS,PM,QAS,standard from project"),
_variant_t((IDispatch*)pImpConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
while ((short)VAL_ZERO == pRecImpPro->adoEOF)
{
szSql.Empty();
szSql.Format(_T("select ID from project where CN = '%s'"), (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("CN")));
pRecPro->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
if ((long)VAL_ZERO == pRecPro->GetRecordCount())
{
pCmdInsPro->ActiveConnection = m_pConnection;
szSql.Empty();
szSql.Format(_T("insert into project(CN,PRname,PRdesc,location,PRdate,duration,PS,CS,PM,QAS,standard) values('%s','%s','%s','%s',#%s#,%d,'%s','%s','%s','%s','%s')"),
pRecImpPro->GetCollect(_T("CN")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("CN")),
pRecImpPro->GetCollect(_T("PRname")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("PRname")),
pRecImpPro->GetCollect(_T("PRdesc")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("PRdesc")),
pRecImpPro->GetCollect(_T("location")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("location")),
pRecImpPro->GetCollect(_T("PRdate")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("PRdate")),
pRecImpPro->GetCollect(_T("duration")).vt == VT_NULL ? (int)VAL_ZERO : pRecImpPro->GetCollect(_T("duration")).ulVal,
pRecImpPro->GetCollect(_T("PS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("PS")),
pRecImpPro->GetCollect(_T("CS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("CS")),
pRecImpPro->GetCollect(_T("PM")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("PM")),
pRecImpPro->GetCollect(_T("QAS")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("QAS")),
pRecImpPro->GetCollect(_T("standard")).vt == VT_NULL ? _T("") : (LPCTSTR)(_bstr_t)pRecImpPro->GetCollect(_T("standard")));
pCmdInsPro->CommandText = szSql.AllocSysString();
pCmdInsPro->Execute(NULL, NULL, adCmdText);
}
pRecPro->Close();
pRecImpPro->MoveNext();
}
pRecImpPro->Close();
}