1

Bases de Datos (II)

Antes de comenzar hice unos cambios:

* Agregue 2 campos NTemas (cantidad de canciones en el cd) y Temas (la lista de temas).
* Las acciones de crear (o abrir) la base las pase al startup de la aplicación.
* La vista de la tabla es para ver los cambios que realizamos y por ese motivo esta en modo solo lectura (pero actualiza los datos del registro seleccionado).

Siempre que trabajemos con base de datos vamos a tener que hacer un ABM (Alta, Baja y Modificación).

Lo mas fácil es la Baja pues ejecuta la función dbfDeleteRecord que como dije arriba eliminará el registro que tengamos seleccionado en la vista (mas adelante podremos eliminar haciendo búsquedas).

Algo que tienen que saber que al trabajar con dbfs si eliminamos un registro en realidad queda marcado como eliminado, por ej.

Si tenemos

Registro A
Registro B
Registro C
Registro D

Y hacemos dbfDeleteRecord a los registros B y C, éstos quedaran marcados como eliminados, dándonos como total 4 registros. Para eliminarlos completamente y que la cantidad total de registros nos de correcta debemos usar la función dbfPack.

Para realizar Alta y Modificación hice un container con entradas de texto para cada uno de los campos. También utilizo una variable [form1.accion] para saber que acción (nuevo ó modificar) estamos realizando y hacer lo correspondiente.

Al trabajar con dbfs si seleccionamos un registro se actualiza las variables del registro seleccionado ([NombreDB.Campo]), esto quiere decir que tendría las siguientes variables:

[MisCds.Titulo]
[MisCds.Artista]
[MisCds.Genero]
[MisCds.Año]
[MisCds.Discog]
[MisCds.NTemas]
[MisCds.Temas]

Osea que si tengo seleccionado un registro estos campos se llenaran con la información del registro y si modifico alguna estoy haciendo una modificación del registro (es por esto que uso una variable auxiliar para saber si es nuevo o estoy modificando).

Entonces al dar Alta a un registro debemos usar dbfAddRecord que nos crea un registro nuevo (en blanco) y luego asignamos los contenidos de las entradas de texto (ej [form1.Titulo]) a las variables (ej [MisCds.Titulo]) y por ultimo ejecutamos dbfSaveEdits para confirmar esas modificaciones.

Al modificar debemos mostrar el contenido del registro que estamos modificando por lo cual hago:

SetVar "[form1.campo]" "[NombreDB.campo]"
.ej
SetVar "[form1.Titulo]" "[MisCds.Titulo]"

Con ésto lleno el formulario con los datos del registro y al cambiarlos como ya expliqué arriba ya estaríamos modificandolos por lo cual solo resta hacer dbfSaveEdits.

Screenshots

sshot-2

Descarga:

  db-MisCds-2.rar (1,3 MiB, 2.491 hits)

 

Cualquier duda me consultan

NOTA: Ésta es una forma de realizar un ABM, puede haber otras mejores (o peores =P).

Espero que sirva.

BuNKeR

bunker

One Comment

  1. Hola cómo puedo hacer una en para un examen y que extraiga las respuestas corr citas de la db y que guarde esas respuestas en el nombre de un usuario y su resultado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *