//! 显示数据集。 BOOL CDrawing::DrawVector(CDC* pDC, OgdcDatasetVector* pDatasetV) { OGDCASSERT(!OGDCIS0(m_dCoordRatio) && !m_rcClient.IsRectEmpty()); OgdcQueryDef queryDef; queryDef.m_nType = OgdcQueryDef::Bounds; queryDef.m_nOptions = OgdcQueryDef::Geometry; queryDef.m_nCursorType = OgdcQueryDef::OpenStatic; queryDef.m_nCursorLocation = OgdcQueryDef::UseClient; queryDef.m_rc2Bounds = m_rcViewBounds; OgdcRect2D rcDtBounds = pDatasetV->GetBounds(); double dSearchArea = m_rcViewBounds.Width() * m_rcViewBounds.Height(); double dDatasetArea = rcDtBounds.Width() * rcDtBounds.Height(); if(dSearchArea >= dDatasetArea*0.6) { queryDef.m_rc2Bounds = rcDtBounds; } OgdcRecordset* pRecordset = pDatasetV->Query(queryDef); if(pRecordset != NULL) { OgdcElement* pElement = NULL; pRecordset->Move(OgdcRecordset::Begin, 0); while(!pRecordset->IsEOF()) { if(pRecordset->GetElement(pElement) && pElement != NULL) { DrawElement(pDC, pElement); } else//断网情况下避免长时间等待 http://192.168.115.2:8090/browse/UGC-4322 { break; } pRecordset->Move(); if(pElement != NULL) { delete pElement; pElement = NULL; } } pDatasetV->ReleaseRecordset(pRecordset); pRecordset = NULL; } return TRUE; }