![]() |
![]() |
|
|
|
|
|
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
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
![]() |
![]() |
|||
|
||||
![]() |
![]() |