Qué es una BASE DE DATOS.??
Altas
Consultas
Bajas
Modificar
Bonus
| VOLVER | |
Archivo | |
Arbol | |
Listas | |
Matriz y Vector |
.. ahora si este te interesa un comino...!!!, te puedo demostrar que ..
BASE DE DATOS
Consideramos una base de datos como el contenedor de información relativa a tablas, conexiones ODBC y procedimientos almacenados.
Una base de datos es el conjunto de tablas e índices pertenecientes a un mismo sistema de información. De esta forma, podemos decir que una tabla asociada a una base de datos pertenece a esta.
Cuando se utiliza una tabla determinada que pertenece a una base de datos, esta es abierta de forma automática, aunque el usuario explícitamente no lo haga. De este modo activamos la tabla y la base de datos a la vez.
El sistema de gestión de bases de datos incorporado en este programa, por la versión de Delphi 5, se utiliza como diccionario de datos para apoyar el desarrollo de aplicaciones o su uso interactivo desde la ventana de database desktop.
Por ejemplo, cuando modificamos un registro, aunque sea desde esta misma ventana, las reglas de validación están activas. De este modo, si existe una regla que impide dejar un campo determinado vacío, cuando se intenta actualizar el registro actual, se produce una advertencia al usuario para que remedie la situación.
Permite, además, guardar nombres largos de campo o su descripción, evitando el problema del uso de nombres crípticos por la limitación de los nombres de campo. Tenga en cuenta que, anteriormente, solo se podían utilizar diez caracteres para nombrar los campos de una tabla.
Otra característica interesante son las vistas, que no son otra cosa que consultas SQL almacenadas en la base de datos. La particularidad de las vistas estriba en que se puede hacer uso de ellas como una tabla, es decir, abrirlas, cerrarlas o actualizar las tablas que han intervenido en la consulta a través de la vista.
Cuando una vista utiliza tablas de la propia base de datos, se denomina vista local, pero existen otros tipos de vistas que utilizan a través de ODBC cualquier origen de datos que soporte esta norma, denominándose vistas remotas.
Incluidos en la base de datos se encuentran los denominados procedimientos almacenados, que proveen la posibilidad de incluir código que pueda ser utilizado desde el momento en que la base de datos se abre. Podemos utilizar este código, por ejemplo, para incluir una rutina de numeración automática de códigos para los registros que se vayan añadiendo a la tabla aunque no tengamos ningún fichero de procedimientos activo.
Si una tabla no pertenece a una base de datos, se considera una tabla libre. Esta tabla no contempla ninguna de las características aplicadas a las tablas pertenecientes a una base de datos.
LA BASE DE DATOS GUARDA:
Se guarda información acerca de las columnas seleccionadas, los criterios de recuperación de registros, el orden de las filas o los campos actualizables.
Los procedimientos contenidos en la base de datos están disponibles en tanto en cuanto la base de datos este abierta.
Contiene, además, el código relativo a las reglas de validación.
Por tanto, cada vez que se produce algún evento de inserción, modificación o eliminación, se ejecuta este código.
CREAR BASE DE DATOS con VISUAL FOX
Como crear una base de datos en VISUAL FOX:
Para crear una base de datos se puede seguir algunos de estos procedimientos:
USO de BASE DE DATOS
Crear y mantener la información del contenedor de bases de datos se realiza mediante los comandos CREATE DATABASE NombreArchivo y MODIFY DATABASE [NombreBaseDatos], respectivamente.
El primero crea la base de datos y abre el diseñador de base de datos.
El segundo necesita una base de datos abierta y activa. Si no es así, muestra el cuadro de dialogo Abrir para elegir la base de datos a modificar.
Para que se pueda acceder a la información de un contenedor de base de datos, es necesario, en primer lugar, abrir la base de datos mediante el comando OPEN DATABASE NombreArchivo. Se puede abrir varias bases de datos a la vez.
Cuando se abre una base de datos, esta queda disponible, pero no activa. Esto quiere decir que algunos comandos y funciones no actuaran correctamente. La razón es que trabajan sobre la base de datos activa; por tanto, no basta con abrir solo la base de datos, hay que activarla. Para este ultimo cometido se ha de utilizar SET DATABASE TO [NombreBaseDatos].
Cerrar la base de datos activa es tan sencillo como utilizar el comando CLOSE DATABASE.
Cuando se abre y activa una base de datos, la función DBC() devuelve el nombre de la base de datos activa. Si existe la seguridad de que una base de datos esta abierta, aunque no este activa, se puede confirmar mediante la función DBUSED (NombreBaseDatos).
De todos modos, aun se puede ir un poco mas allá y almacenar en una matriz todas las bases de datos abiertas. Este resultado se obtiene mediante la función ADATABASES().
Para eliminar físicamente del disco una base de datos se utiliza el comando DELETE DATABASE NombreBaseDatos. Este comando elimina los ficheros DBC, DCT y DCX relacionado con la base de datos. También elimina toda referencia a la base de datos en las tabas que contenía; por tanto, estas pasan a ser tablas libres.
CREAR BASE DE DATOS desde DELPHI
CREAR BASE DE DATOS desde DELPHI
CREAR TABLA de DATOS desde DELPHI
USAR TABLA de DATOS desde DELPHI
TIPOS de CAMPOS desde DELPHI El comportamiento y prestaciones de cada tipo de campo es distinto. Para establecer las diferencias entre cada tipo de datos, analicemos las principales características de cada tipo. |
|
CAMPO | ADMITE |
Carácter | Cadenas de caracteres |
Carácter Binario | Cadenas de caracteres sin variar códigos |
Fecha | Datos cronológicos: Año, Mes y Día |
Fecha Hora | Idem |
Numérico Flotante | Valores enteros y fraccionarios |
Numérico Doble | Numérico de coma flotante de doble precisión |
Entero | Valor numérico entero |
Moneda | Valor numérico monetario |
Lógico | Valor lógico: True y False |
Memo | Campo de referencia en fichero externo |
Memo Binario | Campo de referencia a campo externo FPT |
General | Campo de referencia a posición en fichero externo sin extensión fija FPT |
Si tenes ganas de estudiar, sentate hasta que se te pase..!!!
GENERANDO NUEVOS REGISTROS
Los siguientes procedimientos te permiten cargar datos en los registros de una tabal, pero recuerda que previamente debes crearla..!!
///////////////////////////////// // MANEJO DE BASES DE DATOS // Delphi 6 Wilo Carpio ///////////////////////////////// procedure TMiFormulario.GuardarClick(Sender: TObject); begin MiTabla.Append; MiTabla.FieldByName('Nombre').AsString := NombreBox.Text; MiTabla.FieldByName('Direccion').AsString := DireccionBox.Text; MiTabla.FieldByName('Telefono').AsString := TelefonoBox.Text; MiTabla.FieldByName('Email').AsString := EmailBox.Text; MiTabla.Post; NombreBox.Text:=''; DireccionBox.Text:=''; TelefonoBox.Text:=''; EmailBox.Text:=''; DireccionBox.Enabled:=False; TelefonoBox.Enabled:=False; EmailBox.Enabled:=False; NombreBox.SetFocus; Guardar.Enabled:=False; end; procedure TMiFormulario.CerrarGrabarClick(Sender: TObject); begin MiFormulario.Caption:='Delphi 6 BASE DE DATOS Wilo Carpio 2001'; NombreBox.Text:=''; DireccionBox.Text:=''; TelefonoBox.Text:=''; EmailBox.Text:=''; PanelAltas.Visible:=False; Grabar.Enabled:=True; Buscar.Enabled:=True; Modificar.Enabled:=True; Borrar.Enabled:=True; Autor.Enabled:=True; end; procedure TMiFormulario.GrabarClick(Sender: TObject); begin MiFormulario.Caption:=' *PANEL PARA GRABAR DATOS*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelAltas.Visible:=True; NombreBox.SetFocus; end; procedure TMiFormulario.escribir1(Sender: TObject; var Key: Char); begin DireccionBox.Enabled:=True; end; procedure TMiFormulario.Escribir2(Sender: TObject; var Key: Char); begin TelefonoBox.Enabled:=True; end; procedure TMiFormulario.Escribir3(Sender: TObject; var Key: Char); begin EmailBox.Enabled:=True; end; procedure TMiFormulario.escribir4(Sender: TObject; var Key: Char); begin Guardar.Enabled:=True; end; procedure TMiFormulario.TablaeClick(Sender: TObject); begin MiFormulario.Caption:=' *INGRESE LA CLAVE*'; z:=1; PanelClave.Visible:=True; BoxClave.Text:=''; BoxClave.SetFocus; end; procedure TMiFormulario.AutorClick(Sender: TObject); begin Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelAutor.Visible:=True; end; end.
El amor como la gripe siempre terminan en la cama..!!!
VER CONTENIDO DE LOS REGISTROS
En este link puedes apreciar los procedimientos para visualizar los registros en una grilla
procedure TMiFormulario.TodoClick(Sender: TObject); begin MiFormulario.Caption:=' *VISUALIZACION DE LA MiTabla*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscar1.Visible:=True; end; procedure TMiFormulario.CerrarGrillaClick(Sender: TObject); begin MiFormulario.Caption:='Delphi 6 BASE DE DATOS Wilo Carpio 2001'; Grilla.ReadOnly:=True; PanelBuscar1.Visible:=False; Grabar.Enabled:=True; Buscar.Enabled:=True; Modificar.Enabled:=True; Borrar.Enabled:=True; Autor.Enabled:=True; end; procedure TMiFormulario.PrimeroClick(Sender: TObject); begin MiTabla.First; end; procedure TMiFormulario.UltimoClick(Sender: TObject); begin MiTabla.Last; end; procedure TMiFormulario.AnteriorClick(Sender: TObject); begin MiTabla.Prior; end; procedure TMiFormulario.SiguienteClick(Sender: TObject); begin MiTabla.Next; end;
Qué cuentan las ovejas para poder dormir..!!!
ELIMINACION DE REGISTROS
Este link te muestra como dar de baja un registro
////////////////////////////////// // BAJAS ////////////////////////////////// procedure TMiFormulario.BotonEliminarClick(Sender: TObject); begin MiTabla.Delete; MiTabla.Refresh; BotonEliminar.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; end; procedure TMiFormulario.BorrarClick(Sender: TObject); begin MiFormulario.Caption:=' *INGRESE LA CLAVE*'; z:=3; PanelClave.Visible:=True; BoxClave.Text:=''; BoxClave.SetFocus; end; procedure TMiFormulario.BotonAceptarClaveClick(Sender: TObject); begin if (BoxClave.Text='mono') then begin ShowMessage('**USUARIO AUTORIZADO**'); if z=1 then begin MiFormulario.Caption:='*VISUALIZACION DE LA MiTabla PARA SU MODIFICACION*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscar1.Visible:=True; Grilla.ReadOnly:=False; end; if z=2 then begin MiFormulario.Caption:=' *MODIFICACION DE DATOS*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscarDato.Visible:=True; n:=4; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; l1.Visible:=True; l2.Visible:=True; l3.Visible:=True; l4.Visible:=True; PanpelModi.Visible:=True; BoxNombre.Text:=''; BoxDireccion.Text:=''; BoxTelefono.Text:=''; BoxEmail.Text:=''; end; if z=3 then begin MiFormulario.Caption:=' *ELIMINACION DE DATOS*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscarDato.Visible:=True; n:=5; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; l1.Visible:=True; l2.Visible:=True; l3.Visible:=True; l4.Visible:=True; BNom.ReadOnly:=True; BDir.ReadOnly:=True; BTel.ReadOnly:=True; BEma.ReadOnly:=True; end; end else begin MiFormulario.Caption:=' *¿OLVIDO LA CLAVE?*'; ShowMessage('-!!!CLAVE INCORRECTA!!!-'); MiFormulario.Caption:='Delphi 6 BASE DE DATOS Wilo Carpio 2001'; end; PanelClave.Visible:=False; end;
Me las pagarán..!!! ( FMI )
MODIFICACIONES
Recuerda que puedes cambiar todo el contenido de los campos de datos del registro
////////////////////////////////// // MODIFICACIONES ////////////////////////////////// procedure TMiFormulario.BotonModificarClick(Sender: TObject); begin MiTabla.Edit; MiTabla.FieldByName('nombre'). AsString := BoxNombre.Text; MiTabla.FieldByName('direccion').AsString := BoxDireccion.Text; MiTabla.FieldByName('telefono'). AsString := BoxTelefono.Text; MiTabla.FieldByName('email'). AsString := BoxEmail.Text; MiTabla.Post; BotonModificar.Visible:=False; end; procedure TMiFormulario.BusClick(Sender: TObject); begin MiFormulario.Caption:=' *INGRESE LA CLAVE*'; z:=2; PanelClave.Visible:=True; BoxClave.Text:=''; BoxClave.SetFocus; end; procedure TMiFormulario.Cerrar(Sender: TObject); begin MiFormulario.Caption:='DELPHI: BASE DE DATOS'; PanelAutor.Visible:=False; Grabar.Enabled:=True; Buscar.Enabled:=True; Modificar.Enabled:=True; Borrar.Enabled:=True; Autor.Enabled:=True; end;
Soy un quemo..!!! ( Nerón )
BUSCAR REGISTROS DE LA TABLA
Te recomiendo que en este link aprendas a usar el fantástico combo box, que te simplificará tus tareas de modificar y borrar.
////////////////////////////// // BUSQUEDA ////////////////////////////// procedure TMiFormulario.BotonBuscarClick(Sender: TObject); var h:boolean; begin if n=1 then begin h:=MiTabla.Locate('nombre',BoxBuscaNombre.Text,[]); if h=true then begin BDir.Visible:=True; BTel.Visible:=True; BEma.Visible:=True; end else begin ShowMessage('EL NOMBRE NO EXISTE!!!'); BoxBuscaNombre.Text:=BNom.Text; BoxBuscaNombre.SetFocus; end; end; if n=2 then begin h:=MiTabla.Locate('direccion',BoxBuscaNombre.Text,[]); if h=true then begin BNom.Visible:=True; BTel.Visible:=True; BEma.Visible:=True; end else begin ShowMessage('LA DIRECCION NO EXISTE!!!'); BoxBuscaNombre.Text:=BDir.Text; BoxBuscaNombre.SetFocus; end; end; if n=3 then begin h:=MiTabla.Locate('telefono',BoxBuscaNombre.Text,[]); if h=true then begin BDir.Visible:=True; BNom.Visible:=True; BEma.Visible:=True; end else begin ShowMessage('EL TELEFONO NO EXISTE!!!'); BoxBuscaNombre.Text:=BTel.Text; BoxBuscaNombre.SetFocus; end; end; if n=4 then begin h:=MiTabla.Locate('Nombre',BoxBuscaNombre.Text,[]); if h=true then begin BotonModificar.Visible:=True; end else begin ShowMessage('EL NOMBRE NO EXISTE!!!'); BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; end; end; BoxNombre.Text:=BNom.Text; BoxDireccion.Text:=BDir.Text; BoxTelefono.Text:=BTel.Text; BoxEmail.Text:=BEma.Text; if n=5 then begin h:=MiTabla.Locate('nombre',BoxBuscaNombre.Text,[]); if h=true then begin BNom.Visible:=True; BDir.Visible:=True; BTel.Visible:=True; BEma.Visible:=True; BotonEliminar.Visible:=True; end else begin ShowMessage('EL NOMBRE NO EXISTE!!!'); BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; end; end; end; procedure TMiFormulario.PorNomClick(Sender: TObject); begin MiFormulario.Caption:=' *PANEL PARA BUSCAR POR NOMBRES*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscarDato.Visible:=True; n:=1; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; l2.Visible:=True; l3.Visible:=True; l4.Visible:=True; end; procedure TMiFormulario.CerrarBuscarClick(Sender: TObject); begin MiFormulario.Caption:='Delphi 6 BASE DE DATOS Wilo Carpio 2001'; l1.Visible:=False; l2.Visible:=False; l3.Visible:=False; l4.Visible:=False; BotonModificar.Visible:=False; BotonEliminar.Visible:=False; PanpelModi.Visible:=False; PanelBuscarDato.Visible:=False; Grabar.Enabled:=True; Buscar.Enabled:=True; Modificar.Enabled:=True; Borrar.Enabled:=True; Autor.Enabled:=True; end; procedure TMiFormulario.PorDirClick(Sender: TObject); begin MiFormulario.Caption:=' *PANEL PARA BUSCAR POR DIRECCION*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscarDato.Visible:=True; n:=2; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; l1.Visible:=True; l3.Visible:=True; l4.Visible:=True; end; procedure TMiFormulario.PorTelClick(Sender: TObject); begin MiFormulario.Caption:=' *PANEL PARA BUSCAR POR TELEFONO*'; Grabar.Enabled:=False; Buscar.Enabled:=False; Modificar.Enabled:=False; Borrar.Enabled:=False; Autor.Enabled:=False; PanelBuscarDato.Visible:=True; n:=3; BNom.Visible:=False; BDir.Visible:=False; BTel.Visible:=False; BEma.Visible:=False; BoxBuscaNombre.Text:=''; BoxBuscaNombre.SetFocus; l1.Visible:=True; l2.Visible:=True; l4.Visible:=True; end;