打印本文 打印本文 关闭窗口 关闭窗口
ADO 方法访问数据库的封装接口(04)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2166  更新时间:2009/4/23 10:43:56  文章录入:mintao  责任编辑:mintao
amp;& (nFieldOrder < nFieldCount) )
     {
      m_strTempFieldName = (LPCTSTR)DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->Name ;
     }
    }
   }
  }
 }
 catch (_com_error &e)
 {
  SetErrorMessage((LPCTSTR)e.Description(),__FILE__,__LINE__) ;
 }
 catch (...)
 {
  SetErrorMessage(EXCEPTION_UNKNOWN,__FILE__,__LINE__) ;
 }
 return (LPCTSTR)m_strTempFieldName ;
}

BOOL CDBRecordSet::GetFieldValue(int nFieldOrder,CString& strValue)
{
 try
 {
  strValue = _T("") ;
  if (!m_pRecordSetImpl->isValid())
  {
   SetErrorMessage(RECORDSET_INVALIDHANDLE,__FILE__,__LINE__) ;
   return FALSE ;
  }

  if(DBRECORDSETPtr->GetState() == adStateOpen)
  {
   if(DBRECORDSETPtr->GetFields() != NULL)
   {
    //记录集中包含的字段数
    long nFieldCount = (int)DBRECORDSETPtr->GetFields()->GetCount() ;
    if(nFieldCount > 0)
    {
     if((nFieldOrder >= 0) && (nFieldOrder < nFieldCount) )
     {
      //保证字段值不为空才取值,否则会出现异常
      if(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->ActualSize > 0L)
      {
       strValue = (LPCTSTR)(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->Value).operator _bstr_t() ;
       return TRUE ;
      }    
     }
    }
   }
  }
 }
 catch (_com_error &e)
 {
  SetErrorMessage((LPCTSTR)e.Description(),__FILE__,__LINE__) ;
 }
 catch (...)
 {
  SetErrorMessage(EXCEPTION_UNKNOWN,__FILE__,__LINE__) ;
 }
 return FALSE ;
}

LPCTSTR CDBRecordSet::GetFieldValue(int nFieldOrder)
{
 m_strTempFieldValue.Empty() ;
 if(!GetFieldValue(nFieldOrder,m_strTempFieldValue))
 {
        m_strTempFieldValue.Empty() ;
 }
 return (LPCTSTR)m_strTempFieldValue ;
}

BOOL CDBRecordSet::GetFieldValueInt(int nFieldOrder,int& nValue)
{
 try
 {
  nValue = -1 ;
  if (!m_pRecordSetImpl->isValid())
  {
   SetErrorMessage(RECORDSET_INVALIDHANDLE,__FILE__,__LINE__) ;
   return FALSE ;
  }

  if(DBRECORDSETPtr->GetState() == adStateOpen)
  {
   if(DBRECORDSETPtr->GetFields() != NULL)
   {
    //记录集中包含的字段数
    long nFieldCount = (int)DBRECORDSETPtr->GetFields()->GetCount() ;
    if(nFieldCount > 0)
    {
     if((nFieldOrder >= 0) && (nFieldOrder < nFieldCount) )
     {
      //保证字段值不为空才取值,否则会出现异常
      if(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->ActualSize > 0L)
      {
       nValue = (int)(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->Value).operator long() ;
       return TRUE;
      }    
     }
    }
   }
  }
 }
 catch (_com_error &e)
 {
  SetErrorMessage((LPCTSTR)e.Description(),__FILE__,__LINE__) ;
 }
 catch (...)
 {
  SetErrorMessage(EXCEPTION_UNKNOWN,__FILE__,__LINE__) ;
 }
 return FALSE ;
}

int CDBRecordSet::GetFieldValueInt(int nFieldOrder)
{
 int nValue = 0;
 if(!GetFieldValueInt(nFieldOrder,nValue))
 {
  nValue = 0 ;
 }
    return nValue ;
}

BOOL CDBRecordSet::GetFieldValueFloat(int nFieldOrder,float& fValue)
{
 try
 {
  fValue = -1 ;
  if (!m_pRecordSetImpl->isValid())
  {
   SetErrorMessage(RECORDSET_INVALIDHANDLE,__FILE__,__LINE__) ;
   return FALSE ;
  }

  if(DBRECORDSETPtr->GetState() == adStateOpen)
  {
   if(DBRECORDSETPtr->GetFields() != NULL)
   {
    //记录集中包含的字段数
    long nFieldCount = (int)DBRECORDSETPtr->GetFields()->GetCount() ;
    if(nFieldCount > 0)
    {
     if((nFieldOrder >= 0) && (nFieldOrder < nFieldCount) )
     {
      //保证字段值不为空才取值,否则会出现异常
      if(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->ActualSize > 0L)
      {
       fValue = (float)(DBRECORDSETPtr->GetFields()->Item[(long)nFieldOrder]->Value).operator float() ;
       return TRUE;
      }    
     }
    }
   }
  }
 }
 catch (_com_error &e)
 {
  SetErrorMessage((LPCTSTR)e.Description(),__FILE__,__LINE__) ;
 }
 catch (...)
 {
  SetErrorMessage(EXCEPTION_UNKNOWN,__FILE__,__LINE__) ;
 }
 return FALSE ;
}

float CDBRecordSet::GetFieldValueFloat(int nFieldOrder)
{
 float fValue = 0.0f ;
 if(!GetFieldValueFloat(nFieldOrder,fValue))
 {
  fValue = 0.0f ;
 }
 return fValue ;
}

#undef DBRECORDSETPtr


//end

上一页  [1] [2] [3] 

打印本文 打印本文 关闭窗口 关闭窗口