// 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(); }