Home   Artículos   Recursos   Foros 
 

Uso de CListCtrl y DAO

Enviado por:

El citar acceso completo, nos referimos a que podamos navegar en la base de datos en modo de lectura y escritura, pues no basta con leer los datos también es necesario el dar mantenimiento a dichas datos. Aquí un modo sencillo de uso con una clase implementada.

Un modo sencillo de acceder a las bases de datos de escritorio es usando un motor de base de datos como Microsoft Jet utilizando Data Acces Object (DAO). Visual C++ no tiene controles para realizar esta labor (al estilo Visual Basic o Delphi), pero si tiene varias clases implementadas, muchas de las cuales con complejas de inicializar y manipular, pero eso hace que nuestro código fuente este mas controlado y sea mas robusto. No necesitamos de un control prediseñado, nosotros podemos controlarlo con mucha facilidad, claro que eso se logra después de un tiempo de mucha practica y dedicación.

CListCtrl, nos permitirá poder mostrar visualmente los datos que iremos obteniendo de la tabla tblAlumnos, en la base de datos daoDataBase.mdb, y tendremos un resultado como este:

 

Aplicación en curso
Aplicación en curso

 

Código Fuente:

class MicroLogicDataBaseControl
{
    //...
};


Entonces al querer hacer un Listado el Sgte Código te servirá.

void CDB_DAO_MiniSoftDmDlg::bpReadAllRecorset()
{

   SYSTEMTIME       mTime;
   CWaitCursor      mCursor;


   // Hay que limpiar los valores del ListView
   LstReporte.DeleteAllItems( );

   // Preguntamos si tiene elementos....
   if( mDaoDataControl.RecordsetIsEmpty( ) )
      return;

   
   char & nbsp; szTmpString[20];
   long   lngInd = 0;

   // Nos desplazmos hacia el 1er Registro
   mDaoDataControl.GetRecordset()->MoveFirst( );


   //mTime.GetCurrentTime( );
   GetLocalTime( &mTime );
   
   // Ahora un ciclo para determianar cuantos Registros
   // existen y leerlos directamente.....
   while( ! mDaoDataControl.GetRecordset()->IsEOF( ) )
   {
      // Algo será !!
      sprintf( szTmpString, "%03ld", lngInd+1 );

      // Insertar los valores...
      LstReporte.InsertItem ( lngInd, "" );
      LstReporte.SetItemText( lngInd, 0
         , szTmpString );
      LstReporte.SetItemText( lngInd, 1
         , mDaoDataControl.GetField_AsString( Field_Codigo ) );
      LstReporte.SetItemText( lngInd, 2
         , mDaoDataControl.GetField_AsString( Field_Datos ) );

      sprintf( szTmpString, "%ld"
         , mDaoDataControl.GetField_AsInteger( Field_AnioNac ) );
      LstReporte.SetItemText( lngInd, 3 , szTmpString );

      sprintf( szTmpString, "%d"
         , mTime.wYear-mDaoDataControl.GetField_AsInteger( Field_AnioNac ) );
      LstReporte.SetItemText( lngInd, 4 , szTmpString );

      // Sumar un Registro...
      lngInd++;

     &n bsp;// Ahora buscamos el Siguiente Registro...
      mDaoDataControl.GetRecordset()->MoveNext( );
   };
};


Para Añadir un Registro a la Tabla tendremos:


void CDB_DAO_MiniSoftDmDlg::OnAddRow()
{
   CDB_DAO_Aniadir   DlgNuevo;
   if( DlgNuevo.DoModal()==IDOK )
   {

    if( mDaoDataControl.GetRecordset()->CanAppend( ) )
    {
         // Añadir nuevo Registro
      mDaoDataControl.GetRecordset()->AddNew( );

      mDaoDataControl.SetField_AsString( Field_Codigo
         , DlgNuevo.FldCodigo );
      mDaoDataControl.SetField_AsString( Field_Datos
         , DlgNuevo.FldDatos );
      mDaoDataControl.SetField_AsString( Field_AnioNac
         , DlgNuevo.FldAnioNac );
      mDaoDataControl.SetField_AsString( Field_Observs
         , DlgNuevo.FldObserv );

      // Guardar los Cambios Hechos....
      mDaoDataControl.GetRecordset()->Update( );

      // Ahora mostramos todo...
      CDB_DAO_MiniSoftDmDlg::OnListar( );
    }
   }
};

Compilen con mucha FE, y CTRL+F5 Ante todo….

Recomendaciones de MicroLogic©Software

Descargas

Acerca del Author

Nombre de usuario: MicroLogic©Software
Blog/URL:
Fecha de envío: 2005-04-20
Ultima Actualización:
Visualizaciones: 3441
Nedstat Basic - Web site estadisticas gratuito
El contador para sitios web particulares