//查询时间段内有效的流行线 _RecordsetPtr CFloatRowLine::QueryValidateLines(_bstr_t bstrBeginDate,_bstr_t bstrEndDate) { if (bstrBeginDate.length()<=0||bstrEndDate.length()<=0) { MessageBox(NULL,_T("请输入有效时间间隔!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } _bstr_t bstrSql; switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: bstrSql="select 流行线.编号,名称,所属目标,启用时间,结束时间 from 流行线,流行线属性 where 流行线.编号=流行线属性.所属流行线 and (启用时间<=#"+bstrBeginDate+"# and 结束时间>=#"+bstrBeginDate+"#) or(启用时间>=#"+bstrBeginDate+"# and 结束时间<=#"+bstrEndDate+"#) or(启用时间<=#"+bstrEndDate+"# and 结束时间>=#"+bstrEndDate+"#) order by 流行线.编号"; break; case SqlServerType: bstrSql="select 流行线.编号,名称,所属目标,启用时间,结束时间 from 流行线,流行线属性 where 流行线.编号=流行线属性.所属流行线 and (启用时间<='"+bstrBeginDate+"' and 结束时间>='"+bstrBeginDate+"') or(启用时间>='"+bstrBeginDate+"' and 结束时间<='"+bstrEndDate+"') or(启用时间<='"+bstrEndDate+"' and 结束时间>='"+bstrEndDate+"') order by 流行线.编号"; break; case OracleType: bstrSql="select 流行线.编号,名称,所属目标,启用时间,结束时间 from 流行线,流行线属性 where 流行线.编号=流行线属性.所属流行线 and (启用时间<=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy')) or(启用时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy')) or(启用时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrEndDate + "','dd/mm/yyyy')) order by 流行线.编号"; break; default: return FALSE; } return theBllApp.m_pDB->ExcuteSqlRes(bstrSql,adCmdText); }
long _bstr_cmp(const _bstr_t& cmp1, const _bstr_t& cmp2) { long nRes = 0; if (cmp1.length() && cmp2.length()) { nRes = wcscmp(cmp1, cmp2); } else if (cmp1.length() == 0) { if (cmp2.length() == 0) { nRes = 0; } else { nRes = -1; } } else { nRes = 1; } return nRes; }
//检查重点目标名称更新 BOOL CEmphasesTarget::NameValidate(_bstr_t bstrName,_bstr_t bstrID) { if (bstrName.length()<=0 || bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载重点目标!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("重点目标")) { MessageBox(NULL,_T("数据库中不存在该重点目标业务表!"),_T("提示"),0); return FALSE; } _RecordsetPtr pRecordSet; _bstr_t strSQL; strSQL = "SELECT 编号,名称,类型,所属区域,地址,坐标,描述 FROM 重点目标 WHERE 编号<>"+bstrID+" and 名称 = '" + bstrName+"'"; pRecordSet = theBllApp.m_pDB->ExcuteSqlRes(strSQL,adCmdText); if (pRecordSet!=NULL && !pRecordSet->adoEOF) return FALSE; pRecordSet->Close(); pRecordSet.Release(); return TRUE; }
void CDocument::HandleOpenByFileName(const CStdString& sDocumentFileName, const _bstr_t& openPassword, const _bstr_t& modifyPassword, const _bstr_t& unrestrictPassword) { LOG_WS_FUNCTION_SCOPE(); if(!PathFileExists(sDocumentFileName.c_str())) throw Workshare::System::IO::FileNotFoundException(sDocumentFileName, _T("The document could not be opened because it doesn't exist or has an invalid name.")); WSFileFormat::IFileTypeCheckerPtr spFileTypeChecker; HRESULT hr = spFileTypeChecker.CreateInstance(_T("WSFileFormat.FileTypeChecker")); if (FAILED(hr)) { if (REGDB_E_CLASSNOTREG == hr) { throw Workshare::ClassNotFoundException(_T("WSFileFormat.FileTypeChecker"), _T("Failed to create an instance of CFileTypeChecker when opening document by filename.")); } throw Workshare::Com::ComException(_T("Failed to create an instance of CFileTypeChecker when opening document by filename."), hr); } IMWApplication* pApplication = 0; hr = m_pApplication->QueryInterface(__uuidof(IMWApplication), reinterpret_cast<void**>(&pApplication)); if(FAILED(hr)) throw Workshare::Com::ComException(_T("Failed to query an IMWApplication instance from the internal application object"), hr, m_pApplication); IMWApplicationPtr spApplication(pApplication, false); int fileType = spFileTypeChecker->GetFileType(sDocumentFileName.c_str()); if(WSFileFormat::wsFileTypeWord == fileType) { if (FF_MS_WORD_6 >= spFileTypeChecker->GetFileFormat(sDocumentFileName.c_str())) throw Workshare::FileFormatVersionNotSupportedException(sDocumentFileName.c_str(), _T("MS Word"), _T("Word 6.0/95"), _T("Encountered a word document version lower than or equal to Word95/6.0")); } SetCorrectDocumentType(fileType, sDocumentFileName.c_str(), spApplication); //then we need to figure out what supported elements based on file type to pass down... IMWMetadataElements* pSupportedElements = 0; hr = m_pDocumentType->get_SupportedElements(&pSupportedElements); if(FAILED(hr)) throw Workshare::Com::ComException(_T("Failed to obtain the file type's supported elements when opening document by filename."), hr, m_pDocumentType); IMWMetadataElementsPtr spSupportedElements(pSupportedElements, false); MetadataElementsConverter converter; //we know the IMWMetadataElements are the same creature, but the converter uses the Metawall namespace and this project does #import "WPAPI.tlb" no_namespace Workshare::Protect::MetadataElements supportedElements = converter.ConvertComElements(reinterpret_cast<Metawall::IMWMetadataElements*>(spSupportedElements.GetInterfacePtr())); SetupImplementorsWithSupportedElements(fileType, supportedElements, sDocumentFileName.c_str()); if(m_spImplementor.get() == 0) throw Workshare::OutOfMemoryException(_T("Failed to initialize the implementor")); m_spImplementor->SetFileFormat(spFileTypeChecker->GetFileType(sDocumentFileName.c_str())); if(openPassword.length() > 0 || modifyPassword.length() > 0 || unrestrictPassword.length() > 0) m_spImplementor->Open(sDocumentFileName, static_cast<const wchar_t*>(openPassword), static_cast<const wchar_t*>(modifyPassword), static_cast<const wchar_t*>(unrestrictPassword)); else m_spImplementor->Open(sDocumentFileName); }
HRESULT CTCPropBagOnRegKey::_LoadObject(const _bstr_t& strName, IUnknown* punkObj, IErrorLog* pErrorLog) { // Validate the specified parameters if (IsBadReadPtr(punkObj)) return E_POINTER; if (NULL != pErrorLog && IsBadReadPtr(pErrorLog)) return E_POINTER; // Open the subkey with the specified name CRegKey subkey; if (!strName.length()) subkey = m_key; else if (!m_key.Exists(strName) || !subkey.Open(m_key, strName)) return HRESULT_FROM_WIN32(GetLastError()); // QueryInterface for IPersistPropertyBag IPersistPropertyBagPtr pppb; HRESULT hr = punkObj->QueryInterface(__uuidof(pppb), (void**)&pppb); if (FAILED(hr)) return hr; // Load the object's persistent properties CComObjectStack<CTCPropBagOnRegKey> bag; bag.Init(subkey, strName, this); hr = pppb->Load(&bag, pErrorLog); // Return the last HRESULT return hr; }
bool CXmlDocument::LoadXml(const _bstr_t &xmlString) { if ( m_pDoc ==NULL ) Initialize(); ATLASSERT(m_pDoc!=NULL); if(xmlString.length() == 0) return false; if(m_pDoc->_loadXML(xmlString)) { m_szUrl.Empty(); m_pNode = GetRoot(); //set default selection namespaces CString cstr = GetNameSpaces(); if(!cstr.IsEmpty()) { m_pDoc->_setProperty(_T("SelectionNamespaces"), (LPCTSTR)cstr); } return true; } else { m_szUrl.Empty(); m_pNode = NULL; return false; } }
//加载流行线节点列表 std::vector<string> CFloatRowLine::LoadNodesVetor( _bstr_t bstrID) { vector<string> coodinates; if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载的流行线!"),_T("提示"),0); return coodinates; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return coodinates; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return coodinates; } _RecordsetPtr prst=LoadNodesRCS(bstrID); if (prst!=NULL) { _variant_t var; while(!prst->adoEOF) { var=prst->GetCollect("坐标"); coodinates.push_back(((char *)((_bstr_t)(var.vt==1?"":var)))); prst->MoveNext(); } prst->Close(); prst.Release(); } return coodinates; }
HRESULT CTCPropBagOnRegKey::_SaveObject(const _bstr_t& strName, IUnknown* punkObj, BOOL bClearDirty, BOOL bSaveAllProperties) { // Validate the specified parameters if (IsBadReadPtr(punkObj)) return E_POINTER; // Create a subkey with the specified name CRegKey subkey; if (!strName.length()) subkey = m_key; else { m_key.DeleteValue(strName); m_key.RecurseDeleteKey(strName); if (!subkey.Open(m_key, strName)) return HRESULT_FROM_WIN32(GetLastError()); } // QueryInterface for IPersistPropertyBag IPersistPropertyBagPtr pppb; HRESULT hr = punkObj->QueryInterface(__uuidof(pppb), (void**)&pppb); if (FAILED(hr)) return hr; // Get the object's CLSID CLSID clsid; hr = pppb->GetClassID(&clsid); if (FAILED(hr)) return hr; // Attempt first to convert the object's CLSID to a ProgID LPOLESTR pszProgID = NULL; if (SUCCEEDED(ProgIDFromCLSID(clsid, &pszProgID))) { subkey.WriteString(m_szProgID, pszProgID); CoTaskMemFree(pszProgID); } else { // Convert the object's CLSID to a string OLECHAR szClassID[64]; StringFromGUID2(clsid, szClassID, sizeofArray(szClassID)); subkey.WriteString(m_szCLSID, szClassID); } // Write the variant type value subkey.WriteDWord(m_szVariantType, DWORD(VarTypeFromUnknown(punkObj))); // Save the persistent properties of the object CComObjectStack<CTCPropBagOnRegKey> bag; bag.Init(subkey, strName, this); hr = pppb->Save(&bag, bClearDirty, bSaveAllProperties); // Return the last HRESULT return hr; }
HRESULT CTCPropBagOnRegKey::_GetObjectCLSID(const _bstr_t& strName, CLSID& clsid, CRegKey& subkey, _bstr_t& strObjectID, IErrorLog* pErrorLog) { USES_CONVERSION; // Clear the specified clsid, subkey, and strObjectID parameters clsid = CLSID_NULL; subkey.Close(); strObjectID.Empty(); // Open the subkey with the specified name if (!strName.length()) subkey = m_key; else if (!m_key.Exists(strName) || !subkey.Open(m_key, strName)) return HRESULT_FROM_WIN32(GetLastError()); // Use local resources for string loading MCLibRes res; // Read the object's CLSID string value HRESULT hr; _bstr_t strDesc; if (subkey.GetString(m_szCLSID, strObjectID)) { // Convert the object's CLSID string to a CLSID LPOLESTR pszObjectID = const_cast<LPOLESTR>(T2COLE(strObjectID)); hr = CLSIDFromString(pszObjectID, &clsid); if (SUCCEEDED(hr)) return hr; // Format an error description string strDesc.Format(IDS_FMT_FAIL_CONVERT_CLSID, strObjectID); } else if (subkey.GetString(m_szProgID, strObjectID)) { // Convert the object's ProgID string to a CLSID hr = CLSIDFromProgID(T2COLE(strObjectID), &clsid); if (SUCCEEDED(hr)) return hr; // Format an error description string strDesc.Format(IDS_FMT_FAIL_CONVERT_CLSID, strObjectID); } else { // Save the last error hr = HRESULT_FROM_WIN32(GetLastError()); // Format an error description string strDesc.LoadString(IDS_FAIL_READ_CLSID); } // Log the error and return return LogError("GetObjectCLSID", strDesc, hr, T2COLE(strName), pErrorLog); }
HRESULT CTCPropBagOnRegKey::_CreateRemoteObject(const _bstr_t& strServer, const _bstr_t& strName, IUnknown** ppunkObj, IErrorLog* pErrorLog) { // If DCOM is not installed, take appropriate action MCOle32_dll& libOle32 = GetOle32Lib(); if (!libOle32.Exists_CoCreateInstanceEx()) return !strServer.length() ? CreateLocalObject(strName, ppunkObj, pErrorLog) : E_UNEXPECTED; // Read the CLSID of the object saved on the specified subkey CLSID clsid; CRegKey subkey; _bstr_t strObjectID; HRESULT hr = GetObjectCLSID(strName, clsid, subkey, strObjectID, pErrorLog); if (FAILED(hr)) return hr; // Create the object USES_CONVERSION; _bstr_t bstrServer(strServer); COSERVERINFO csi = {0, bstrServer, NULL, 0}; MULTI_QI mqi = {&IID_IPersistPropertyBag, NULL, 0}; DWORD dwCtx = CLSCTX_ALL | CLSCTX_REMOTE_SERVER; hr = libOle32.CoCreateInstanceEx(clsid, NULL, dwCtx, &csi, 1, &mqi); if (FAILED(hr)) { // Use local resources MCLibRes res; // Format a description string _bstr_t strDesc; strDesc.Format(IDS_FMT_FAIL_CREATE_CLSID, strObjectID); // Log the error USES_CONVERSION; return LogError("CreateObject", strDesc, hr, T2COLE(strName), pErrorLog); } // Attach the interface pointer to the smart pointer IPersistPropertyBagPtr pppb((IPersistPropertyBag*)mqi.pItf, false); // Load the object's persistent properties CComObjectStack<CTCPropBagOnRegKey> bag; bag.Init(subkey, strName, this); hr = pppb->Load(&bag, pErrorLog); if (FAILED(hr)) return hr; // Detach the IUnknown* and copy to the [out] parameter, don't Release it *ppunkObj = pppb.Detach(); // Indicate success return S_OK; }
void CFloatRowLine::Loadproperties(_bstr_t bstrID, std::vector<string> &vecField, std::vector<string> &vecRecordSet, long &lFieldCounts) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载属性的流行线!"),_T("提示"),0); return; } _RecordsetPtr res = Loadproperties(bstrID); if(res==NULL) return; CBllHelp::Instance().QueryByCondit(res,vecField,vecRecordSet,lFieldCounts); }
Xml::Status::code Xml::Document::load (_bstr_t xmlDocumentFilename) { // see if there's an existing... if (this->x_xmlDocument) { // delete the existing... delete static_cast<ShellDocument *>(this->x_xmlDocument); this->x_xmlDocument = 0; } if (xmlDocumentFilename.length () > 0) { // create a new dom shell... if (this->x_xmlDocument = new ShellDocument ()) { // load the document... if (static_cast<ShellDocument *>(this->x_xmlDocument)->domDocument) { IXMLDOMNode *newDomNode; // load the file or stream... try { if (((wchar_t *)xmlDocumentFilename)[0] == '<') { newDomNode = static_cast<ShellDocument *>(this->x_xmlDocument)->loadXML (xmlDocumentFilename); } else { newDomNode = static_cast<ShellDocument *>(this->x_xmlDocument)->loadFile (xmlDocumentFilename); } } catch (...) { // failed... } // validate the node... if (newDomNode) { // copy to the root node... if (DOMInterfaceCollections::copyNode (&this->rootNode,newDomNode)) { // return success... return static_cast<ShellDocument *>(this->x_xmlDocument)->status = Xml::Status::ready; } } // failing load... return static_cast<ShellDocument *>(this->x_xmlDocument)->status = Xml::Status::invalidDocument; } } } return static_cast<ShellDocument *>(this->x_xmlDocument)->status = Xml::Status::failed; }
//加载流行线信息 BOOL CFloatRowLine::LoadInfo( _bstr_t bstrID) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载的流行线!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } _RecordsetPtr prstInfo = theBllApp.m_pDB->ExcuteSqlRes("select 编号,名称,所属目标,颜色,实线,箭头,宽度,创建人,创建时间,描述 from 流行线 where 编号="+bstrID,adCmdText); BOOL bFlag=FALSE; if (prstInfo!=NULL) { if (!prstInfo->adoEOF) { m_strID = bstrID ; _variant_t var; var=(prstInfo->GetCollect("名称")) ; m_strName = (_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("所属目标")) ; m_strToTarger=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("颜色")) ; m_strColor=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("实线")) ; m_strLineType=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("箭头")) ; m_strDerection=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("宽度")) ; m_strWidth=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("创建人")) ; m_strCreator = (_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("创建时间")) ; m_strCreateTime = (_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("描述")) ; m_strRemark = (_bstr_t)(var.vt==1?"":var); bFlag=TRUE; } prstInfo->Close(); prstInfo.Release(); } return bFlag; }
_bstr_t CTCPropBagOnRegKey::_GetServer(const _bstr_t& strName) { // Open the subkey with the specified name CRegKey subkey; if (!strName.length()) subkey = m_key; else if (!m_key.Exists(strName) || !subkey.Open(m_key, strName)) return _bstr_t(); // Read the Server of the object saved on the specified subkey _bstr_t strServer; if (!subkey._GetString(m_szServer, strServer)) strServer.Empty(); return strServer; }
BOOL CEmphasesTarget::LoadByName(_bstr_t bstrName) { if (bstrName.length()<=0) { MessageBox(NULL,_T("请选择要加载重点目标名称!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("重点目标")) { MessageBox(NULL,_T("数据库中不存在该重点目标业务表!"),_T("提示"),0); return FALSE; } BOOL bFlag=FALSE; _RecordsetPtr pRecordSet; _bstr_t strSQL; strSQL = "SELECT 编号,名称,类型,所属区域,地址,坐标,描述 FROM 重点目标 WHERE 名称 = '" + bstrName+"'"; pRecordSet = theBllApp.m_pDB->ExcuteSqlRes(strSQL,adCmdText); if (pRecordSet!=NULL) { if (!pRecordSet->adoEOF) { _variant_t var; var=pRecordSet->GetCollect("编号"); m_strID = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("名称"); m_strName = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("类型"); m_strType = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("所属区域"); m_strArea = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("地址"); m_strAddress = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("坐标"); m_strCoordinate = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("描述"); m_strRemark = (_bstr_t)(var.vt==1?"":var); bFlag=TRUE; } pRecordSet->Close(); pRecordSet.Release(); } return bFlag; }
HRESULT CTCPropBagOnRegKey::_SetServer(const _bstr_t& strName, const _bstr_t& strServer) { // Open the subkey with the specified name CRegKey subkey; if (!strName.length()) subkey = m_key; else if (!m_key.Exists(strName) || !subkey.Open(m_key, strName)) return HRESULT_FROM_WIN32(GetLastError()); // Write the Server of the object saved on the specified subkey subkey.WriteString(m_szServer, strServer); // Indicate success return S_OK; }
//检测流行线属性录入的冲突 //参数:bstrID,修改则bstrID为流行线属性编号,添加则为“” // bstrLineid为流行线编号 BOOL CFRowLineProperty::CheckLnPrptyColn(_bstr_t bstrID, _bstr_t bstrLineid,_bstr_t bstrBeginDate,_bstr_t bstrEndDate) { _bstr_t bstrSql=""; if (bstrID.length()==0) { switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and (启用时间<=#"+bstrBeginDate+"# and 结束时间>=#"+bstrBeginDate+"#) or (启用时间>=#"+bstrBeginDate+"# and 结束时间<=#"+bstrEndDate+"#) or (启用时间<=#"+bstrEndDate+"# and 结束时间>=#"+bstrEndDate+"#)"; break; case SqlServerType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and (启用时间<='"+bstrBeginDate+"' and 结束时间>='"+bstrBeginDate+"') or (启用时间>='"+bstrBeginDate+"' and 结束时间<='"+bstrEndDate+"') or (启用时间<='"+bstrEndDate+"' and 结束时间>='"+bstrEndDate+"')"; break; case OracleType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and (启用时间<=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy')) or (启用时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy')) or (启用时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrEndDate + "','dd/mm/yyyy'))"; break; default: return FALSE; } } else { switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and 编号<>"+bstrID+" and ((启用时间<=#"+bstrBeginDate+"# and 结束时间>=#"+bstrBeginDate+"#) or(启用时间>=#"+bstrBeginDate+"# and 结束时间<=#"+bstrEndDate+"#) or(启用时间<=#"+bstrEndDate+"# and 结束时间>=#"+bstrEndDate+"#))"; break; case SqlServerType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and 编号<>"+bstrID+" and ((启用时间<='"+bstrBeginDate+"' and 结束时间>='"+bstrBeginDate+"') or(启用时间>='"+bstrBeginDate+"' and 结束时间<='"+bstrEndDate+"') or(启用时间<='"+bstrEndDate+"' and 结束时间>='"+bstrEndDate+"'))"; break; case OracleType: bstrSql="select * from 流行线属性 where 所属流行线=" + bstrLineid + " and 编号<>"+bstrID+" and ((启用时间<=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy')) or (启用时间>=to_date('" + bstrBeginDate + "','dd/mm/yyyy') and 结束时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy')) or (启用时间<=to_date('" + bstrEndDate + "','dd/mm/yyyy') and 结束时间>=to_date('" + bstrEndDate + "','dd/mm/yyyy')))"; break; default: return FALSE; } } _RecordsetPtr rst=theBllApp.m_pDB->ExcuteSqlRes(bstrSql,adCmdText); if (rst!=NULL&& !rst->adoEOF) { return TRUE; } else return FALSE; }
TclObject::TclObject (const _bstr_t &src) { if (src.length() > 0) { #if TCL_MINOR_VERSION >= 2 // Uses Unicode functions introduced in Tcl 8.2. m_pObj = Tcl_NewUnicodeObj( reinterpret_cast<const Tcl_UniChar *>(static_cast<wchar_t *>(src)), -1); #else m_pObj = Tcl_NewStringObj(src, -1); #endif } else { m_pObj = Tcl_NewObj(); } Tcl_IncrRefCount(m_pObj); }
Xml::Status::code Xml::Document::save (_bstr_t xmlDocumentFilename) { if (xmlDocumentFilename.length () && this->x_xmlDocument) try { _variant_t saveName (xmlDocumentFilename); // call save... if (SUCCEEDED (static_cast<ShellDocument *>(this->x_xmlDocument)->domDocument->save (saveName))) { // return success... return static_cast<ShellDocument *>(this->x_xmlDocument)->status = Xml::Status::ok; } // save failed... return static_cast<ShellDocument *>(this->x_xmlDocument)->status = Xml::Status::failed; } catch (...) {} return Xml::Status::noDocument; }
//加载流行线节点数据集 _RecordsetPtr CFloatRowLine::LoadNodesRCS( _bstr_t bstrID) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载的流行线!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } return theBllApp.m_pDB->ExcuteSqlRes("select 编号,坐标 from 线节点 where 线类型='流行线' and 所属线编号="+bstrID+" order by 编号",adCmdText); }
//删除流行线属性记录,通过传递编号(用“,"隔开) BOOL CFRowLineProperty::Delete(_bstr_t bstrIDS) { if (bstrIDS.length()<=0) { MessageBox(NULL,_T("请选择要删除流行线属性!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线属性")) { MessageBox(NULL,_T("数据库中不存在该流行线属性业务表!"),_T("提示"),0); return FALSE; } return theBllApp.m_pDB->ExcuteSql("DELETE FROM 流行线属性 WHERE 编号 IN ( " + bstrIDS + " )",adCmdText); }
//加载流行线属性列表 _RecordsetPtr CFloatRowLine::Loadproperties( _bstr_t bstrID ) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载属性的流行线!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } return theBllApp.m_pDB->ExcuteSqlRes("select 编号,启用时间,结束时间,备注 from 流行线属性 where 所属流行线 = "+bstrID,adCmdText); }
//清除流行线节点 BOOL CFloatRowLine::ClearLineNodes( _bstr_t bstrIDs ) { if (bstrIDs.length()==0) { MessageBox(NULL,_T("请选择清除节点的流行线!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } return theBllApp.m_pDB->ExcuteSql("DELETE FROM 线节点 WHERE 线类型='流行线' and 所属线编号 IN ( " + bstrIDs + " )",adCmdText); }
BOOL CControlUser::Load(_bstr_t bstrID) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择要加载监控用户编号!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("监控用户")) { MessageBox(NULL,_T("数据库中不存在该监控用户业务表!"),_T("提示"),0); return FALSE; } BOOL bFlag=FALSE; _RecordsetPtr pRecordSet; _bstr_t strSQL; strSQL = "SELECT 编号,服务器,用户名,密码 FROM 监控用户 WHERE 编号 = " + bstrID; pRecordSet = theBllApp.m_pDB->ExcuteSqlRes(strSQL,adCmdText); if(pRecordSet!=NULL)//如果记录集中有记录 { if (!pRecordSet->adoEOF) { bFlag = TRUE; _variant_t var; m_strID = bstrID; var=pRecordSet->GetCollect("服务器"); m_strServer = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("用户名"); m_strUserName = (_bstr_t)(var.vt==1?"":var); var=pRecordSet->GetCollect("密码"); m_strPassWord = (_bstr_t)(var.vt==1?"":var); } pRecordSet->Close(); pRecordSet.Release(); } return bFlag; }
//加载属性:参数:属性表中的编号 BOOL CFRowLineProperty::LoadInfo( _bstr_t bstrID ) { if (bstrID.length()<=0) { MessageBox(NULL,_T("请选择加载流行线属性!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线属性")) { MessageBox(NULL,_T("数据库中不存在该流行线属性业务表!"),_T("提示"),0); return FALSE; } _RecordsetPtr prstInfo = theBllApp.m_pDB->ExcuteSqlRes("select 编号,所属流行线,启用时间,结束时间,备注 from 流行线属性 where 编号="+bstrID,adCmdText); BOOL Bflag=FALSE; if (prstInfo!=NULL) { if(!prstInfo->adoEOF) { m_strID = bstrID ; _variant_t var; var=prstInfo->GetCollect("所属流行线") ; m_strLineID=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("启用时间")) ; m_strBeginDate=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("结束时间")) ; m_strEndDate=(_bstr_t)(var.vt==1?"":var); var=(prstInfo->GetCollect("备注")) ; m_strRemark = (_bstr_t)(var.vt==1?"":var); Bflag=TRUE; } prstInfo->Close(); prstInfo.Release(); } return Bflag; }
BOOL CControlUser::Delete(_bstr_t strIDS) { if (strIDS.length()<=0) { MessageBox(NULL,_T("请选择要删除监控用户编号!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("监控用户")) { MessageBox(NULL,_T("数据库中不存在该监控用户业务表!"),_T("提示"),0); return FALSE; } _bstr_t strSQL; strSQL = "DELETE FROM 监控用户 WHERE 编号 IN (" + strIDS + ")"; return theBllApp.m_pDB->ExcuteSql(strSQL,adCmdText); }
BOOL CEmphasesTarget::Delete(_bstr_t strIDS) { if (strIDS.length()<=0) { MessageBox(NULL,_T("请选择要删除重点目标!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("重点目标")) { MessageBox(NULL,_T("数据库中不存在该重点目标业务表!"),_T("提示"),0); return FALSE; } _bstr_t strSQL; strSQL = "DELETE FROM 重点目标 WHERE 编号 IN (" + strIDS + ")"; return theBllApp.m_pDB->ExcuteSql(strSQL,adCmdText); }
//删除流行线记录, //通过传递编号(用“,"隔开) BOOL CFloatRowLine::Delete(_bstr_t bstrIDS) { if (bstrIDS.length()<=0) { MessageBox(NULL,_T("请选择要删除的流行线!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_bConntSuccess) { MessageBox(NULL,_T("数据库连接失败!"),_T("提示"),0); return FALSE; } if (!theBllApp.m_pDB->CheckTableNameExist("流行线")) { MessageBox(NULL,_T("数据库中不存在该流行线业务表!"),_T("提示"),0); return FALSE; } std::vector<_bstr_t> vbstrSql; vbstrSql.push_back( "DELETE FROM 线节点 WHERE 线类型='流行线' and 所属线编号 IN ( " + bstrIDS + " )"); vbstrSql.push_back( "DELETE FROM 流行线 WHERE 编号 IN ( " + bstrIDS + " )"); return theBllApp.m_pDB->ExcuteTrans( vbstrSql ,adCmdText ); }
//创建查询 _RecordsetPtr CFloatRowLine::QueryCreateLines(_bstr_t strBeginTime,_bstr_t strEndTime,_bstr_t strCreatorName) { _bstr_t strSqlwhere=""; switch(CDatabaseFactory::m_enumDatabaseType) { case OracleType: if (strCreatorName.length()>0) { strSqlwhere+="and 创建人='"+strCreatorName+"'"; } if (strBeginTime.length()>0&&strEndTime.length()>0) strSqlwhere+=" and 创建时间 = to_date('" + strBeginTime + "','dd/mm/yyyy') and to_date('" + strEndTime + "','dd/mm/yyyy')"; else if(strBeginTime.length()>0) strSqlwhere+=" and 创建时间 = to_date('" + strBeginTime + "','dd/mm/yyyy')"; else if(strEndTime.length()>0) strSqlwhere+=" and 创建时间 = to_date('" + strEndTime + "','dd/mm/yyyy')"; break; case SqlServerType: if (strCreatorName.length()>0) { strSqlwhere+="and 创建人='"+strCreatorName+"'"; } if (strBeginTime.length()>0&&strEndTime.length()>0) strSqlwhere+=" and 创建时间 between '"+strBeginTime+"' and '"+strEndTime+"'"; else if(strBeginTime.length()>0) strSqlwhere+=" and 创建时间='"+strBeginTime+"'"; else if(strEndTime.length()>0) strSqlwhere+=" and 创建时间='"+strEndTime+"'"; break; case AccessType: if (strCreatorName.length()>0) { strSqlwhere+="and 创建人='"+strCreatorName+"'"; } if (strBeginTime.length()>0&&strEndTime.length()>0) strSqlwhere+=" and 创建时间 between #"+strBeginTime+"# and #"+strEndTime+"#"; else if(strBeginTime.length()>0) strSqlwhere+=" and 创建时间=#"+strBeginTime+"#"; else if(strEndTime.length()>0) strSqlwhere+=" and 创建时间=#"+strEndTime+"#"; break; default: return NULL; } return QueryLinesByCondit(strSqlwhere); }
BOOL CConcretion::Add(_bstr_t strGuid,_bstr_t strTypeName,vector<_bstr_t>&vfileds,vector<_bstr_t> &vValues) { if ( strGuid.length()<1 ||strTypeName.length()<1 || vfileds.size()<1||vValues.size()<1) return FALSE; _bstr_t strSql,strID, strSql1,strSql2; _RecordsetPtr pRecordSet; vector<_bstr_t> vecStrSql; adoDataTypeEnum adoFldType; _variant_t var; string strTemp=""; //从类别名称获取类别编号 strSql = "SELECT * FROM 类别信息 WHERE 类别名称 = '" + strTypeName + "'"; pRecordSet = theBllApp.m_pDB->ExcuteSqlRes(strSql, adCmdText); if(pRecordSet == NULL||pRecordSet->adoEOF) return FALSE; strID = pRecordSet->GetCollect("编号"); //插入基本信息表语句 if (CDatabaseFactory::m_enumDatabaseType==OracleType) strSql1 = "INSERT INTO 基本信息(GUID,类别) VALUES ('"+ strGuid + "'," + strID + ")"; else strSql1 = "INSERT INTO 基本信息([GUID],[类别]) VALUES ('"+ strGuid + "'," + strID + ")"; //具体类别表存不存记录 if (CDatabaseFactory::m_enumDatabaseType==OracleType) strSql = "SELECT * FROM " + strTypeName + " WHERE GUID = '" + strGuid + "'"; else strSql = "SELECT * FROM " + strTypeName + " WHERE [GUID] = '" + strGuid + "'"; pRecordSet = theBllApp.m_pDB->ExcuteSqlRes(strSql, adCmdText); if(pRecordSet == NULL) return FALSE; else { bool isAdd=false; if (pRecordSet->adoEOF) isAdd=true; if(isAdd) {//具体类别表不存在记录 _bstr_t strColumns,strValues; bool isFirst=true; vector<_bstr_t>::iterator itr = vfileds.begin(); vector<_bstr_t>::iterator itr2=vValues.begin(); while(itr!=vfileds.end()&&itr2!=vValues.end()) { if (isFirst) { isFirst=false; //字段 if (CDatabaseFactory::m_enumDatabaseType==OracleType) strColumns+=(*itr); else strColumns+="["+(*itr)+"]"; //值 var.bstrVal = (*itr); adoFldType = pRecordSet->GetFields()->GetItem(var.bstrVal)->GetType(); if(adoFldType == ADODB::adDate || adoFldType == ADODB::adDBTimeStamp) { switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: strValues += "#" + (*itr2) + "#"; break; case SqlServerType: strValues += "'" + (*itr2) + "'"; break; case OracleType: strValues += "to_date('" + (*itr2) + "','yyyy-mm-dd')"; break; } } else if( (adoFldType == ADODB::adInteger ) || (adoFldType == ADODB::adNumeric) || (adoFldType == ADODB::adDouble ) ) strValues+=(*itr2); else strValues+="'"+(*itr2)+"'"; } else { strTemp=(char *)(*itr); if (strTemp=="ID") { itr++; itr2++; continue; } if (CDatabaseFactory::m_enumDatabaseType==OracleType) strColumns+=","+(*itr); else strColumns+=",["+(*itr)+"]"; var.bstrVal = (*itr); adoFldType = pRecordSet->GetFields()->GetItem(var.bstrVal)->GetType(); if(adoFldType == ADODB::adDate || adoFldType == ADODB::adDBTimeStamp) { switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: strValues += ",#" + (*itr2) + "#"; break; case SqlServerType: strValues += ",'" + (*itr2) + "'"; break; case OracleType: strValues += ",to_date('" + (*itr2) + "','yyyy-mm-dd')"; break; } } else if( (adoFldType == ADODB::adInteger ) || (adoFldType == ADODB::adNumeric) || (adoFldType == ADODB::adDouble ) ) strValues+=","+(*itr2); else strValues+=",'"+(*itr2)+"'"; } itr++; itr2++; } strSql2 = "INSERT INTO " + strTypeName + " ( " + strColumns + " ) VALUES (" + strValues + ")"; } else {//具体类别表存在记录 _bstr_t strUpdateFormat; bool isFirst=true; vector<_bstr_t>::iterator itr = vfileds.begin(); vector<_bstr_t>::iterator itr2=vValues.begin(); while(itr!=vfileds.end()&&itr2!=vValues.end()) { //字段 if (isFirst) { isFirst=false; if (CDatabaseFactory::m_enumDatabaseType==OracleType) strUpdateFormat+=(*itr); else strUpdateFormat+="["+(*itr)+"]"; } else { strTemp=(char *)(*itr); if (strTemp=="ID") { itr++; itr2++; continue; } if (CDatabaseFactory::m_enumDatabaseType==OracleType) strUpdateFormat+=","+(*itr); else strUpdateFormat+=",["+(*itr)+"]"; } //值 var.bstrVal = (*itr); adoFldType = pRecordSet->GetFields()->GetItem(var.bstrVal)->GetType(); if(adoFldType == ADODB::adDate || adoFldType == ADODB::adDBTimeStamp) { switch(CDatabaseFactory::m_enumDatabaseType) { case AccessType: strUpdateFormat += "= #"+(*itr2)+"#"; break; case SqlServerType: strUpdateFormat+="='"+(*itr2)+"'"; break; case OracleType: strUpdateFormat += " = to_date('" + (*itr2) + "','yyyy-mm-dd')"; break; } } else if( (adoFldType == ADODB::adInteger ) || (adoFldType == ADODB::adNumeric) || (adoFldType == ADODB::adDouble ) ) strUpdateFormat += "=" + (*itr2); else strUpdateFormat+="='"+(*itr2)+"'"; //循环 itr++; itr2++; } strSql2 = "UPDATE " + strTypeName + " SET " + strUpdateFormat + " WHERE [GUID] ='" + strGuid + "'"; } } vecStrSql.push_back(strSql1); vecStrSql.push_back(strSql2); return theBllApp.m_pDB->ExcuteTrans(vecStrSql,adCmdText); }