Página 1 / 1 UNIDAD 2: Bases de Datos en Visual Basic FindNext

Anuncio
UNIDAD 2: Bases de Datos en Visual Basic
3. Identificar las acciones sobre bases de datos: añadir, consultar, modificar y eliminar
registros, indexar.
Como sabemos el sentido de contar con un entorno de desarrollo como Visual Basic es contar con
controles visuales que permitan que el trabajo del usuario sea más ameno y fácil. Una base de datos y
sus tablas, cuando se trata de sistemas de nivel operativo, sufren una gran cantidad de actualizaciones
diarias. Ya sea que estas actualizaciones se refieran a inserciones, modificaciones o eliminaciones de
registros. Igualmente está sujeta a un sinnúmero de consultas internas incluso para poder realizar
operaciones de inserción.
Visual Basic, como ya se vio en el punto anterior, permite realizar estas operaciones básicamente de dos
formas utilizando DAO:
•
•
Mediante la utilización de controles visuales que traen incorporadas propiedades relacionadas con
datos y permiten efectuar las operaciones del lenguaje DML mediante el uso de controles
gráficos;
Mediante la utilización directa de variables y sentencias definidas en los procedimientos para
utilizar el lenguaje DML tanto de SQL como el equivalente DML de Visual Basic.
En uno u otro caso, hay que tener en cuenta la jerarquía de objetos vista en el punto anterior para DAO.
Por lo tanto aquí vamos a definir estos objetos y explicarlos con mayor detalle de lo que se ha visto en el
material teórico-práctico propuesto para las Actividades y repasar algunos temas ya vistos en el punto
anterior.
DML o Lenguaje de Manipulación de Datos presupone que la base de datos ya existe y se conoce sus
características. Esto tiene que ver con cuáles son las claves primarias de las tablas, cuáles las claves
foráneas, cuáles son los tipos de datos, si existen validaciones a nivel de campo (cuando un campo es
requerido, por ejemplo), etc.
Las operaciones básicas DML de Visual Basic son:
a.
b.
c.
d.
apertura y cierre de la base de datos
escritura de datos (AddNew,Edit, Update y Delete [que son los equivalentes al DML de SQL:
básicamente insert, update y delete)
búsqueda de datos (fundamentalmente el método Seek de VB; y en algunos casos FindFirst,
FindNext, etc.)
movimiento de datos (que mueven el apuntador de registro entre las tablas: MoveFirst,
MovLast, etc.)
a. Apertura y cierre de la base de datos: se encargan de abrir y cerrar una base de datos los siguientes
métodos:
•
•
•
OpenDatabase
OpenRecordSet
Close
OpenDatabase (Archivo) se encarga de abrir la base de datos y ponerla a disposición de DAO a través de
la creación de un objeto Database. Este objeto puede crearse mediante código o bien al añadir un control
Data a un Formulario. [para mayor información ver teoría vista en los Proyectos Cargos y DBGrid].
OpenRecordset (Tabla, Tipo) es un método del objeto Database que devuelve un objeto Recorset. Un
Recordset es un objeto de Visual Basic que representa un conjunto lógico de registros; y en definitiva
está representando los registros físicos de una tabla o de una consulta. Un Recordset que es el
objeto fundamental de DML ya que al consultar el Recorset y manipularlo se puede afectar
directamente la estructura física de la base de datos.
Un objeto TableDef representa la estructura de una tabla de la base de datos, en cambio un objeto
Recordset representa a los registros contenidos en una tabla que pertenece a la base de datos abierta.
En el Proyecto DMLVB en su formulario Cargos5 puede verse un ejemplo de estos métodos.
Página 1 / 1
Un RecordSet puede ser abierto de cinco formas distintas; es decir, existen cinco tipos de RecordSet:
Table, Dynaset, Snapshot, Dynamic y Forwar-only. La siguiente tabla resume cada tipo y su funcionalidad
así como las constantes usuales que se utilizan para declararlos.
Close es un método de la base de datos abierta. Su sintaxis es: BaseDeDatos.Close. En el ejemplo
mencionado más arriba también se muestra su utilización en un entorno gráfico.
La lógica sin embargo se muestra aquí a modo de un ejemplo utilizando todos los métodos:
b. Escritura de datos
Para la escritura de datos se utiliza lenguaje DML de Visual Basic con métodos que se aplican sobre el
Recordset:
•
•
•
•
AddNew
Edit
Update
Delete
Dichos métodos fueron abordados en forma práctica mediante el Proyecto Cargos, Formulario
Cargos4. Sin embargo ahora veremos un ejemplo Teórico-Práctico que se basa en utilizar el DML
de Visual Basic sin utilizar el Control Data visto en el ejemplo anterior.
En la última página se muestra cómo funcionan estos métodos y cómo se relacionan entre sí
mediante un esquema.
Recomendamos que se lleve a cabo la práctica propuesta. Pueden abrirse distinos formularios
para cada situación y luego un formulario que contenga un DBGrid de modo de poder
inspeccionar en forma visual el contenido de la tabla Cargos.
A su vez en el Proyecto DMLVB, en el Formulario Cargos6, se ha incluido un ejemplo totalmente
visual. En mismo está accesible en el zip llamado DMLVB.ZIP en la sección Actividades para su
descarga.
Para comprender los aspectos técnicos de las búsquedas vea el punto siguiente. En el esquema
puede apreciarse una breve descripción de cómo funciona el método Seek.
c. Búsqueda de datos utilizando el método Seek
La búsqueda de datos en Visual Basic aplicando el lenguaje de manipulación de datos puede
hacerse de varias formas. Una de las maneras más eficientes es utilizando el método Seek del
objeto Recordset.
Este método tiene la sintaxis: Recordset.Seek comparacion, valor. Este método además se utiliza
con claves y el Recordset debe ser del tipo Table. No sirve para efectuar búsquedas sobre
campos que no sean clave primaria.
Página 2 / 2
Para hacer esto es necesario declarar un índice mediante programación utilizando la propiedad
Recordset.index = 'nombre del índice', es decir que el índice es la clave primaria.
Por lo tanto, para su aplicación es necesario primero establecer un índice mediante la propiedad
index y además utilizar el método Recordset.NoMatch que devolverá un valor lógico de True o
False según si la búsqueda tuvo o no éxito. En el esquema anterior se agregaron estos
conceptos puesto que es imposible realizar una modificación o una eliminación sin efectuar antes
una búsqueda en el Recordset.
diferencia entre Seek y otros métodos existentes como FindFirst, FindNext,
FindPreious,FindLast es que Seek sólo puede utilizarse con claves primarias, utiliza un índice
La
y el Recordset debe ser del tipo Table.
Estos métodos utilizan cualquier campo que no sea clave primaria, en vez de utilizar un índice se
efectúa la búsqueda en base a una condición y finalmente el Recordset debe ser del tipo
Dynaset. Sí utilizan el método NoMatch para verificar si se cumple o no la condición. Un
ejemplo típico por ejemplo sería con Seek buscar un regitro univoco utilizando el IdCargo o el
IdEmp si quiero buscar un cargo específico o un empleado en particular en base al número de
legajo. Sin embargo si quisiera encontrar todos los empleados que tienen un código de cargo
determinado, se puede utilizar en la condición 'que el idcargo sea igual a X' y esto es una
condición que al aplicarla con FindFirst me devolverá el primer registro que coincida con la
búsqueda; luego con FindNext podré encontrar el siguiente.
Estos últimos métodos están desarrollados con la teoría correspondiente en el proyecto DMLVB el
proyecto Cargos7 y su pdf asociado explican en forma teórica y práctica la utilización de estos
métodos.
d. Movimiento de datos (moverse o navegar entre registros de un Recordset)
Los métodos MoveFirst, MoveLast, MoveNext y MovePreious permiten mover el
apuntador de registro al primer, último, siguiente o anterior registro respecto a dónde se
encuentra el apuntador de registro antes de aplicar el método.
La diferencia entre MoveFisrt y FindFirst es que MoveFirst mueve el puntero de registro al primer
elemento del Recordset y FindFirst mueve el puntero de registro al primer registro del Recordset que
coincide con la condición de búsqueda.
Estos métodos son los que utiliza el control Data para navegar entre los distintos registros del recorset
abierto y al cual referencia este objeto visual. En el proyecto DMLVB el proyecto Cargos8 y su pdf
asociado explican en forma teórica y práctica la utilización de estos métodos.
Página 3 / 3
Página 4 / 4
Descargar