Uso de CListCtrl y DAO
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:
Código fuente para hacer un Listado desde la base de datos.
- Code: Seleccionar todo
- 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:
- Code: Seleccionar todo
- 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
- La corporación de software MicroLogic©Software tiene como fin el difundir el trabajo en equipo, pues creemos en la comunidad, la reciprocidad y estamos depuestos a compartir conocimiento entre los miembros de la corporación como con nuestros colegas programadores, MicroLogic©Software esta compuesto por un stuff de programadores e incansables investigadores, que siempre estarán dispuestos a resolver dudas.
- MicroLogic©Software – Trabaja como Integrante de F.I.L.I.C.C (Fundación para la Investigación de Lenguajes Informático y Ciencias de la Computación.) http://www.filicc.pe.kz
Otros Artículos en esta sección
-
Se trata de un pequeño pack sobre OpenGL que he compilado para ustedes. Pueden utilizar estas librerías para sus proyectos.He aquí un programa que grafica todo tipo de funciones gracias a su interprete que utiliza un Analizador Léxico, Analizador Sintáctico, y un Analizador semántico.Esta es una manera sencilla de hacer que tus aplicaciones no desentonen con el entorno de Windows XP.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »