Home   Artículos   Recursos   Foros 
 

CDatacombo para Visual C++

Éste es un control basado en un cuadro combinado, usa una conexion existente de tipo CDaoDatabase. Puede servirte en tus aplicaciones en donde ya tengas una conexión de ése tipo. En la imagen siguiente se puede ver en accion al control, donde recupera registros de una tabla "Paises" y el otro control de la tabla "Departamentos".

 

Datacombo en ejecución
Datacombo en ejecución con la consulta: SELECT IdPais, Nombre FROM Paises;

 

Se asigna esta conexion mendiante la funcion creada SetConnection.

void CDatacombo::SetConnection(CDaoDatabase *pDB)
{
  m_pDB = pDB;
}

La funcion LoadData recupera los datos segun la consulta SQL que se le envíe, pero esta consulta debe retornar un conjunto de registros de manera que el primer campo sea numérico y el segundo de tipo cadena, el primero es asigando mediante la función CComboBox::SetItemData(), es segundo es asginado como item del control para que se pueda ver.


void CDatacombo::LoadData()
{
  ASSERT(::IsWindow(m_hWnd));
  ASSERT(m_pDB);
  ASSERT(m_pDB->IsOpen());
  ASSERT(!m_sSQL.IsEmpty());

  
  CDaoRecordset rs(m_pDB);
  COleVariant var;

  try{
    rs.Open(dbOpenSnapshot,m_sSQL);  
    INT i = 0;
    ResetContent();
    while(!rs.IsEOF()){
      rs.GetFieldValue(1,var);
      InsertString(i,CCrack::strVARIANT(var));

      rs.GetFieldValue(0,var);
      switch(var.vt){
        case VT_I2:
          SetItemData(i,(DWORD)V_I2(&var));
          break;
        case VT_I4:
          SetItemData(i,(DWORD)V_I4(&var));
          break;
        case VT_R4:
          SetItemData(i,(DWORD)V_R4(&var));
          break;
        case VT_R8:
          SetItemData(i,(DWORD)V_R8(&var));
          break;
      }
      i++;
      rs.MoveNext();
    }

  }catch(CDaoException e){

  }catch(CMemoryException e){

  }

  if(rs.IsOpen()){
    rs.Close();
  }
}

Descargas

Acerca del Author

Nombre de usuario: latindeveloper
Blog/URL:
Fecha de envío: 2004-03-14
Ultima Actualización:
Visualizaciones: 4996
Nedstat Basic - Web site estadisticas gratuito
El contador para sitios web particulares