UINT CBADO::GetRecordCount( _RecordsetPtr pRecordset ) { int nCount = 0; try { if(pRecordset->EndOfFile) { Sleep(1); return 0; } pRecordset->MoveFirst(); } catch(...) { return 0; } if (pRecordset->FirstOfFile) return 0; while(!pRecordset->EndOfFile) { pRecordset->MoveNext(); nCount = nCount + 1; } pRecordset->MoveFirst(); return nCount; }
/////////////////////////////////////////////// // //返回当前记录集的游标位置 // //IRecordset[in] 记录集智能指针 // //函数成功返回当前记录集的游标位置,否则返回-1 // long CFoxBase::RecNo(_RecordsetPtr IRecordset) { long pos=0; long i; if(IRecordset==NULL) return -1; if(IRecordset->adoEOF && IRecordset->BOF) return -1; while(!IRecordset->GetBOF()) { pos++; IRecordset->MovePrevious(); } i=pos; i--; IRecordset->MoveFirst(); while(i>0) { i--; IRecordset->MoveNext(); } return pos; }
//替换指定范围的某字段的值. bool CFoxBase::ReplaceAreaValue(_RecordsetPtr pRs, CString strField, CString strValue, int startRow, int endRow) { if(startRow > endRow) { endRow = startRow; } if( endRow <= 0 ) { return false; } if( endRow > pRs->GetRecordCount() ) { return false; } if( pRs->GetRecordCount() <= 0 ) { return false; } pRs->MoveFirst(); for(int i=1; i<=endRow && !pRs->adoEOF; i++, pRs->MoveNext()) { if( i >= startRow ) { pRs->PutCollect(_variant_t(strField), _variant_t(strValue)); pRs->Update(); } } return true; }
int RxADO::GetRecordCount(_RecordsetPtr pRst) { int nCount=0; try{ pRst->MoveFirst(); } catch(...) { return 0; } if(pRst->_EOF) return 0; while (!pRst->_EOF) { pRst->MoveNext(); nCount=nCount+1; } pRst->MoveFirst(); return nCount; }
BOOL CADOUtil::CheckRecordSetState(_RecordsetPtr RecSet) { if (RecSet != NULL && (RecSet->EndOfFile == VARIANT_FALSE)) { if (RecSet->EndOfFile == VARIANT_FALSE) { RecSet->MoveFirst(); return TRUE; } } return FALSE; }
DWORD CADODatabase::GetRecordCount(_RecordsetPtr m_pRs) { DWORD numRows = 0; numRows = m_pRs->GetRecordCount(); if(numRows == -1) { if(m_pRs->EndOfFile != VARIANT_TRUE) m_pRs->MoveFirst(); while(m_pRs->EndOfFile != VARIANT_TRUE) { numRows++; m_pRs->MoveNext(); } if(numRows > 0) m_pRs->MoveFirst(); } return numRows; }
//吊架和支架数据的导入pfg20050615 //flag=0 为吊架; flag=1 为支架 //记录集是结果集 对应ZA表 //rsHR记录集是数据源集(弹簧、吊架) //ltemp 支吊架号 void CAESARIIToPHS::ImportHangerRestraints(_RecordsetPtr rsData,_RecordsetPtr rsHR,long <emp,long &FileNameID,char *strPSAVER,long &node,int flag) { _variant_t tmpvar; long lTmp; try { if(flag) { tmpvar=rsHR->GetCollect(_T("node_num")); lTmp=vtoi(rsHR->GetCollect(_T("RES_TYPEID")));//pfg20050624 } else { tmpvar=rsHR->GetCollect(_T("node")); } if(tmpvar.vt==VT_EMPTY||tmpvar.vt==VT_NULL) { return; } else { node=vtoi(tmpvar); } if ( node < 1e-6 ) //5.2版本中所有的约束信息会导入INPUT_RESTRAINTS表中(同一约束点会有四条记录,所以会有NODE_NUM为-1情况) return; if(rsData->GetRecordCount()>0) { rsData->MoveFirst(); } rsData->Filter = _variant_t(CString("[jsdbh1] = ") + ltos(node)+" AND [FileNameID]="+ltos(FileNameID)); if (rsData->adoEOF&&rsData->BOF) { rsData->AddNew(); rsData->PutCollect("VolumeID",_variant_t(EDIBgbl::SelVlmID)); rsData->PutCollect("zdjh",_variant_t((long)(ltemp+1))); rsData->PutCollect("FileNameID",_variant_t(FileNameID)); ltemp++; rsData->Update(); } rsData->PutCollect("PSAver", _variant_t(strPSAVER)); rsData->PutCollect("UPxyz",_variant_t((long)m_iUPxyz)); rsData->PutCollect("JSDBH1", _variant_t((long)node)); rsData->Update(); } catch (_com_error &e) { CString strMsg; strMsg.Format("%s:%d %s", __FILE__, __LINE__, (LPSTR)e.Description()); AfxMessageBox(strMsg); } }
void CBllHelp::QueryByCondit(_RecordsetPtr pRecordSet,vector<string> &vecField, vector<string> &vecRecordSet, long &lFieldCounts) { //判断存在记录 if(pRecordSet == NULL) return ; if (!vecRecordSet.empty()) { vecRecordSet.clear(); } if (!vecField.empty()) { vecField.clear(); } try { //字段个数 lFieldCounts = pRecordSet->GetFields()->GetCount(); adoDataTypeEnum enumDataType; _bstr_t str; //字段名称、类型、大小 for(long i = 0; i<lFieldCounts; i++) { str= pRecordSet->GetFields()->GetItem(i)->GetName(); vecField.push_back((LPSTR)str); enumDataType = pRecordSet->GetFields()->GetItem(i)->GetType(); str = GetDataTypeString(enumDataType); vecField.push_back((LPSTR)str); str = pRecordSet->GetFields()->GetItem(i)->GetDefinedSize(); vecField.push_back((LPSTR)str); } pRecordSet->MoveFirst(); long lCounts = 0; _variant_t var; //获取记录 while(!pRecordSet->adoEOF) { for(long j=0; j<lFieldCounts; j++) { var=pRecordSet->GetCollect(j); str=(_bstr_t)(var.vt==1?"":var); vecRecordSet.push_back((LPSTR)str); } pRecordSet->MoveNext(); lCounts++; } } catch(_com_error e) { //AfxMessageBox("记录为空"); } }
/////////////////////////////////////////////////////////// // //替换记录集中选中字段所有的值 // //IRecordset[in] 记录集智能指针 //FieldsName[in] 字段名 //Value[in] 输入替换FieldsName字段的值 // //函数成功返回TRUE,否则返回FALSE //当函数成功返回时,当前游标指针指向记录集最后一个记录的后面 // BOOL CFoxBase::ReplAll(_RecordsetPtr IRecordset, _variant_t FieldsName, _variant_t Value) { if(IRecordset==NULL) return FALSE; IRecordset->MoveFirst(); while(!IRecordset->adoEOF) { IRecordset->PutCollect(FieldsName,Value); IRecordset->Update(); IRecordset->MoveNext(); } return TRUE; }
BOOL CV5App::GetData(CString sql, _RecordsetPtr &Rs) { try{ Rs=m_pConnection->Execute((_bstr_t)sql,NULL,-1); if(Rs->RecordCount>0){ Rs->MoveFirst(); return TRUE; }else{ return FALSE; } }catch(_com_error &er) { MessageBox(NULL,er.ErrorMessage(),_T("系统提示"),MB_OK); return FALSE; } }
//////////////////////////////////////////////////// // //从表的第一条记录开始寻找指定的逻辑关系 // //IRecordset[in] 记录集智能指针 //FieldsName[in] 字段名 //Relations[in] 逻辑关系,等于、不等于…… //Value[in] 输入与FieldsName比较的值 // //函数成功返回TRUE,否则返回FALSE //如果需比较的字段与关系不匹配会抛出_com_error异常 //指针指向找到的记录上 // BOOL CFoxBase::LocateFor(_RecordsetPtr IRecordset, _variant_t FieldsName, int Relations, _variant_t Value) { _variant_t tempvalue; CString tempstr; if(IRecordset==NULL || Value.vt==VT_NULL) return FALSE; try { IRecordset->MoveFirst(); } catch(_com_error &e) { ExceptionInfo(e); return FALSE; } return LocateForCurrent(IRecordset,FieldsName,Relations,Value); }
BOOL CFoxBase::CopyData(_RecordsetPtr &IRecordS, _RecordsetPtr &IRecordD) { _variant_t TempValue; short Item; FieldsPtr IFields; FieldPtr IField; if(IRecordS==NULL || IRecordD==NULL) { ExceptionInfo(_T("Source Recordset or destination Recordset cann't be empty")); return FALSE; } if(IRecordS->adoEOF && IRecordS->BOF) { return TRUE; } if(!IRecordD->adoEOF || !IRecordD->BOF) { try { IRecordD->MoveLast(); } catch(_com_error &e) { ExceptionInfo(e); return FALSE; } } try { IRecordS->MoveFirst(); } catch(_com_error &e) { ExceptionInfo(e); return FALSE; } try { while(!IRecordS->adoEOF) { IRecordS->get_Fields(&IFields); IRecordD->AddNew(); for(Item=0;Item<IFields->GetCount();Item++) { IFields->get_Item(_variant_t(Item),&IField); TempValue=IRecordS->GetCollect(_variant_t(IField->GetName())); IRecordD->PutCollect(_variant_t(IField->GetName()),TempValue); IField.Release(); } IRecordD->Update(); IFields.Release(); IRecordS->MoveNext(); } } catch(_com_error &e) { ExceptionInfo(e); return FALSE; } return TRUE; }