Access y visual c++6.0

Solo disponible en BuenasTareas
  • Páginas : 5 (1127 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de diciembre de 2010
Leer documento completo
Vista previa del texto
Access y Visual C++ 6.0
Hola Chicos, perdón por la tardanza pero aqui esta el programa. Primero un poco repaso en algunos términos
El acceso a Base de Datos desde Visual C++ puede realizarse de dos modos:
Con clases ODBC : Las clases estándar Open Data Base Connectivity (ODBC) permiten conectar a cualquier tipo de motor de Base de Datos, para poderlas utilizar se necesita el administrador deODBC (ODBC.DDLL y ODBC32.DLL) y el controlador específico de la base de datos que se va a utilizar. Las clases estándar para trabajar con ODBC son: CDatabase, CRecordset, CRecordView, CLongBinary, CDBException y CFieldExchange, todas derivadas de afxdb.h.
Con clases DAO : Las clases Data Access Objects (DAO) están especializadas para el acceso a Bases de Datos basadas en motor Microsoft Jet(por ejemplo Access). Son clases paralelas a las clases ODBC, que proporcionan la misma funcionalidad y están mas recomendadas para el desarrollo de aplicaciones de tamaño pequeño/medio y proporcionan la ventaja de no tener dependencia del controlador ODBC externo instalado. Las clases DAO para trabajar con Bases de Datos son: CDaoDatabase, CDaoQueryDef, CDaoRecordset, CDaoRecordset, CDaoTableDef,CDaoWorkspace y CDaoFieldInfo.
Y este es una ejemplo de una base de datos.
[pic]
Clases DATA ACCESS OBJECT
Un objeto de la clase CDaoDatabase es una conexión a una Base de Datos, para poderla utilizar hay que llamar a su método Open que es el que abre la conexión. Los objetos CDaoRecordset contienen conjuntos de registros tomados de la Base de Datos a través del objeto CDaoDatabase que espasado al constructor del objeto CDaoRecordset. Cuando la conexión ya no sea necesaria se puede cerrar a traves del método Close de CDaoDatabase.
CDaoFieldInfo permite acceder a toda la información de los campos de la tabla, nombre del campo, tipo, longitud etc.
CDaoException permite el control de excepciones dentro de las clases DAO.
Ahora vamos a realizar el siguiente ejemplo usando losdatos de la imagen anterior, asi que creamos una base de datos en access llamada "Directorio" con una tabla llamada "telefonos", al terminar deben convertir la base de datos a una versión de Access 97 o anterior a la cual llamaremos "DirectorioConv.mdb".
Acto seguido vamos a crear un proyecto en AppWizard (EXE) en llamado "DirTel" y lo vamos a crear como "Single Document" y damos Clic en el botón"Next" en la ventana que sigue se selecciona "Database view with file support" y damos clic en el botón "Data Source", en la ventana que sale se selecciona "DAO" y se da la ruta donde esta la base de datos convertida. Se da clic en "OK" y se selecciona la tabla que se va a usar, se le da "OK" , y los demás pasos se siguen por omisión.
 
 
Podemos ahora examinar la clase creada CDirTelSet y vercomo el Asistente a asociado los campos de la tabla telefonos con variables miembro de CDirTelSet,y se debe ver así:
class CDirTelSet : public CDaoRecordset
{
public:
CDirTelSet(CDaoDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CDirTelSet)
// Field/Param Data
//{{AFX_FIELD(CDirTelSet, CDaoRecordset)
long m_Clave;
CString m_Nombre;
CString m_Direccion;
long m_Telefono;
//}}AFX_FIELD.....
}
Y el constructor se debever así:
CDirTelSet::CDirTelSet(CDaoDatabase* pdb)
: CDaoRecordset(pdb)
{
//{{AFX_FIELD_INIT(CDirTelSet)
m_Clave = 0;
m_Nombre = _T("");
m_Direccion = _T("");
m_Telefono = 0;
m_nFields = 4;
//}}AFX_FIELD_INIT
m_nDefaultType = dbOpenDynaset;
}
 
Ahora si examinamos la declaración de la clase Base CDaoRecordView vemos como ha vinculado el formaulariocon la vista (que es la clase CDirTelView, en el archivo DirTelView.h) y ha creado un atributo apuntador (llamado *m_pSet) al conjunto de registros con lo que queda conectada directamente al objeto de la clase CDirTelSet.
class CDirTelSet;
class CDirTelView : public CDaoRecordView
{
protected: // create from serialization only
CDirTelView();
DECLARE_DYNCREATE(CDirTelView)
public:...
tracking img