Inicio / Wikis / Monografías / Visual Basic, Bases de Datos, DataControls y Recordsets - VB: Data Controls

Visual Basic, Bases de Datos, DataControls y Recordsets - VB: Data Controls

(3 opiniones)
Monografía creado por
02 de Noviembre de 2006
Lenguaje BasicVisual Studio

Bueno, pues vamos a ver un poco de teoria de bases de datos y de recordsets. Parece un poco rollo, pero al final es mucho mas facil de lo que parece, ya lo veras. ;-))

En primer lugar, te voy a contar un poco como se manejan los datos de una base de datos, desde que se cogen del fichero, hasta que vuelven a el, y es la siguiente:

Data Controls

Bueno, mas o menos el flujo es el del dibujo.

Los datos se recogen de la base de datos del disco duro y se pasan a memoria, pero como en memoria tienen que estar "guardados" de alguna manera, y relacionados con el Visual de alguna forma, en memoria se guardan en lo que se llama "Recordset", que traducido del ingles es un "Conjunto de Registros", y para ligarlos al visual se utiliza el DataControl, asi que realmente el flujo de datos seria de esta forma:

Data Controls y Recordsets

Aunque el recordset y el DataControl, a efectos de usuario es como si fuesen lo mismo

Es por eso, por lo que cuando queremos acceder a los datos que "contiene" un DataControl, o queremos movernos por el tenemos que poner siempre algo asi:

Data1.Recordset.

Fields ("Nombre")

Data1.Recordset.

Movenext

Data1.Recordset.

Movelast

Con Data1, decimos a cual de los controles de base de datos nos estamos refiriendo, pues podemos tener varios controles (Data1, Data2, Data3....), y luego de ese DataControl, al poner Recordset, le estamos diciendo al Visual que vamos a hacer algo con los Registros que tiene asociados, que vamos a hacer algo con el Recordset, y por ultimo le decimos que es lo que vamos a hacer con esos registros.

Si por ejemplo escribimos lo siguiente:

Data1.RecordSource = "Ingredientes"

Data1.DatabaseName = "Recetas"

En este caso no ponemos lo de Recordset, porque no vamos a hacer nada con los registros de ese DataControl, estamos accediendo directamente a propiedades concretas del DataControl.

Bueno, y asi es como se manejan los datos en el visual si utilizmos DataControls.

Lo que podemos hacer con estos Registros que nosotros tenemos cargados en memoria dentro de un Recordset ligado a un DataControl es lo siguiente:

Intstrucciones de movimiento:

Data1.Recordset.MoveFirst

Nos movemos al primer registro del recordset

Data1.Recordset.MoveLast

Nos movemos al último registro del recordset

Data1.Recordset.MovePrevious

Nos movemos al registro anterior del recordset

Data1.Recordset.MoveNext

Nos movemos al registro siguiente del recordset

Instrucciones de busqueda:

Data1.Recordset.FindFirst Condicion

Busca el primer registro que cumpla una condicion

Data1.Recordset.FindNext Condicion

Busca el siguiente registro que cumpla una condicion

Para especificarle la condicion, simplemente hay que definir una cadena de texto que la contenga, una posible forma, seria primero crear una variable tipo texto en donde vamos a guardar esa condicion, y luego hacer la busqueda:

Private Function Buscar ( )

Dim Query as String

Query = "Nombre = ‘Pincho de Setas’ "

Data1.Recordset.FindFirst Query

End Function

Como ves, la variable Query tiene que ser de tipo texto, y si dentro de ese tipo texto queremos especificar que hay una cadena de texto, como pasa con "Pincho de Setas" (que no es un numero), debemos encerrarlo entre comillas simples, porque si ponemos comillas dobles, estariamos cerrando las primeras que hemos puesto, y entonces nos dara error.

Yo suelo utilizar siempre la misma variable cuando tengo que hacer busquedas para poner las condiciones, tambien si estoy utilizando SQL utilizo el mismo nombre de variable (Query (busqueda en ingles)), y eso me sirve para saber siempre que donde estoy utilizando una Query, estoy poniendo una condicion a una busqueda, o estoy utilizando SQL. Es por comodidad, y sirve para tener el codigo mas claro, porque si utilizas cada vez un nombre de variable distinta al final ya no sabes como le habias llamado en esa funcion, sobre todo si es muy grande. Si necesito mas de una variable de este tipo, las suelo numerar.

Bueno, yo te cuento cosas que te pueden ser utiles, para que si quieres las hagas como las hago yo, pero puedes hacerlas como quieras, porque a lo mejor no te parecen comodas como las hago yo.

Y por ultimo si quieres utilizar o referirte al contenido de alguno de los campos del registro en el que estas situado en ese momento, existen tres posibilidades:

Data1.Recordset.Fields ("Nombre")

Data1.Recordset!Nombre

y una tercera que no me acuerdo ahora

Puedes utilizar cualquiera de las dos primeras para referirte al valor de un campo, yo suelo utilzar la segunda por dos motivos, primero, porque es mas corta, y segunda porque segun me ha dicho Manolo, es mucho mas rapida en tiempo de ejecucion, asi que como todo son ventajas, pues es la que yo utilizo, pero cualquiera de las dos te dara el mismo valor si haces esto:

Private Function RecuperaNombre ( )

Dim Nombre1, Nombre2 as String

Nombre1 = Data1.Recordset.Fields ("Nombre")

Nombre2 = Data1.Recordset!Nombre

End Function

Nombre1 y Nombre2, contendran el mismo valor, el contenido del campo nombre del registro en el que estes situado.

Principio y final de los datos almacenados en el DataControl:

Data1.Recordset.BOF

Principio de la base de datos

Data1.Recordset.EOF

Final de la base de datos

Bueno, y esta es la forma de utilizar los DataControls, que mas o menos, algo ya te sonaban... ¿no? ;-))

 

Valora este capítulo: (3 opiniones)
Autor y licencia de 'Visual Basic, Bases de Datos, DataControls y Recordsets - VB: Data Controls'
Marco Einöder

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

Opiniona sobre 'Visual Basic, Bases de Datos, DataControls y Recordsets - VB: Data Controls' (3)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este monografía



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Visual Basic, Bases de Datos, DataControls y Recordsets - VB: Data Controls'

Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Este curso contiene cuatro actividades. Publico la primera actividad.
Me propongo en este ensayo iniciar una respuesta en clave general a la pregunta: ¿cómo... Más »
Por medio de la interpretación de los datos presentados en los estados financieros los administradores,... Más »
En la actualidad, no existe un formato común generalmente aceptado para los datos contenidos en... Más »
¿Estás seguro de que deseas eliminar este capítulo?