Apuntes del Tercer Parcial

 

Los indices se crean generalmente en las tablas, pero se pueden crear o establecer la intruccion Index On y con los siguiente sintomas :

Index On Ciudad Tag Ciudad

Donde :
Index On es la instruccion para asignar el indice. Ciudad es el campo que sirve como Indice Tag, reasigna una etiqueta, un pseudoindice o un  Indice Auxiliar ; e Incluso puede tener otro nombre el campo especificado (Alias).

Index on Ciudad Tag Campo

Este tipo de indice coincido como indice normal sirve basicamente para mostrar registros ordenados y para tener una acceso más rápido a los datos.

Para relacionar 2 o mas tablas con indices, se emplean tres tipos de indices :

a-Principal
b-Candidato
c-Unico

A- Un indice principal es aquel que nunca permite valores duplicados en el campo indice; sde utiliza sobe todo en la tabla primaria, el primer campo debe de ser el campo indice (principal).

A esta propiedad la de no permitir valores duplicados en el primer campo se denomina "Integridad Referencial " o "Relación Persistente", además solo se puede crear un indice principal en cada tabla.

Estos indices se crean al crear la tabla, pero si desea crearlo con código puede usar la siguiente instrucción
alter table empleado ;
alter column no emp C(5);
Primary key
ó
Alter  table empleado;
Add primary key
no_emp tag no_emp

Donde :
Empleado.....Nombre de la tabla
No_emp.....Campo indice
                    (Indice principal)

Los dos deben de ser indices para establecer la relacion.

B-Candidato no permite valores duplicados en campo indice y se pueden crear varios indices candidatos en una tabla; se puede usar
-Para hacer referencia
-Para ser referenciados

Para crear por código, un indice candidato se emplea:

Los indices unicos, no evitan el uso de los valores duplicados, pero solo almacenan la rimera aparición de valor o valores en el archivo de indice; una tabla puede tener varios indices unicos, y para crear un indice unico con código tenemos:

Index On campo tag campo unique

Cuando se abren las tablas, se abren también los indices, pero cuando se accesan las tablas se puede usar la instrucción reindex, para reindexar los indices, sobre todo si es un indice normal que es el que más se pierde o se desactiva.

Reindex on campo tag campo

Tema : El administrador de proyecto
Objetivo: Como crear y manejar la tabla más eficiente los elementos de Base de Datos

El administrador de proyectos es un cuadro de dialógo que sirve para crear y controlar los elementos de una BD, en donde se incluye :

-Tabla
-Consulta
-Informes
-Programa (código)
- Clases

Asi cuando los elemtenots que se crean son de un menu proyecto, se abre el proyecto que los contiene (ó los que debe de contener)

Para crear un proyecto se selecciona el menú nuevo y en el cuadro de dialógo "Nuevo" pulse el icono de Nuevo Archivo.

Apareciendo el cuadro de dialogo abrir, para que se asigne nombre al proyecto y se designe el subdirectorio (ó Unidad de Trabajo)

Finalmente aparece el cuadro de administración de proyectos.

En cada carperta se visualizan los elementos respectivos, (Si hay ), el signo (+) indica que contiene elementos y el signo (-) que no contiene elementos :

Por ejemplo la carpeta de datos puede mostar :

Datos, les incluye dentro de BD  y dentro de el dos tablas.

Por ejemplo:

Para crear una BD se selecciona el elemento Base de Datos, y se pulsa el botón de comando; nuevo aparece el cuadro de dialogo para darle nombre a la BD y el subdirectorio en donde quedara grabada.

Para crear una tabla, selecciona Tabla, y el boton Nuevo dentro de administrador de proyectos; si queremos agregar una tabla ya existente, se pulsa selecciona tabla y se pulsa el boton agregar.

Si se quiere modificar la estructura de una tabla, se selecciona el botón modificar.

Para crear un programa, dentro de un proyecto, seleccione código y pulse el botón Nuevo, si lo que desea modificarlo, puede pulse el botón modificar.

Y si se desea ejecutar un programa pulse el boton ejecutar; este es el mismo caso, si desea ejecutar un formulario, basta con seleccionarlo y pulsar dicho botón.

Para eliminar, cualquier elemento, seleccionarlo y pulse el boton comando Remover.

Programa :

Comenzar con un número mayor de 30 los primeros ascii.

En lugar de código a documentos a formulario
x= Val (thisform.text1.text) a numero
char(x)

x=1
DO WHILE x<=254
    ?n. CHR(n)
ENDDO

Tema: Formularios
Objetivo Trabajar con Formularios

Para manejar y controlar el comportamiento de un formulario emplea las siguientes propiedades ó

Always on Top

Controla si un formulario está siempre situado sobre las demás ventanas (formularios) abiertos :

Auto Center

Controla si el formulario se centra automaticamente en la ventana principal de VFP

Border Style

Controla el tipo de borde y el formulario

Closable

Si desea crear el formulario X que aparece en la parte superior derecha.

Max Button

Si el formulario tiene ó no el botón de Maximizar.

Min Button

Si el formulario tiene o no el botón de minimizar.

Movable

Si el formulario puede o no moverse a una ubicación en la pantalla.

Tittle bar

Si aparece o no la barra del título

Windows State

controla si el formulario está minímo, máximo, o Normal

Para ejecutar un formulario se utiliza el icono !(Ejecutar) pero se puede ejecutar desde otro formulario ó código usando la instrucción
do form nombre_formulario

Para crear un formulario activo, se pueden usar las siguientes instrucciones :

Release formulario
ó
thisform.release

Esta acción descarga a la memoría al formulario que estaba activo

Para ocultar un formulario, pero que contiene en la memoria, se emplea :
thisform.hide
Para mostrar ó activar un formulario emplee:
thisform.show

Para conocer si un formulario esta visible o no, se emplea
thisform.visible
Devuelve el valor (.t.) "True" si el formulario está visible y (.f.) " false" si el formulario esta hide (oculto)

Problema:

Variables públicas :
Objeto Form Evento Load
public a
A=35

a=a+1
thisform.text1.value=A
thisform.text2.value=Chr (a)

Programa :

2 formularios al mismo tiempo

Nota: En el formulario izquierdo se debe introducir una frase, y debe aparecer en negrita cursiva o combinada, según este activo (los)
botones de verificación . El botón borrar debe de limpiar el cuadro

Con el formulario izquierdo derecho se debe cambiar el título del formulario izquierdo y derecho, con el contenido del cuadro de texto (text1) ; y además se puede hacer visible o invisible el formulario de la izquierda.

Tema: Palabras de referencia
Objetivo : Como direccionar las propiedades y hacer referencia.

Dentro de un proyecto, en donde se maneja y varios formularios, se debe de manejar el código con referencias y direcciones concretas; dentro de las principales referencias tenemos :

Active Control : Se refiere el control (objeto) que actualmente tiene el enfoque.
Active Form : El formulario este activo en este momento.
Active Page: La página activa del formulario actual.
Parent: El contenedor más cercano al objeto que hace referencia.
This: El objeto que hace referencia al procedimiento o función.
Thisform : El formulario que contiene al objeto.
thisformset: Hace referencia a un grupo de formulario

La forma general, de la codificación para asignar o cambiar la propiedad es :

path :
contenedorm.contenedorn.contenedor....propiedad=Valor

Tema : Relación de datos de una tabla con los controles de los formularios

Para poder relacionar una tabla con los controles de un formulario, y de esta manera hacer calculo o visualizar la información de una tabla (o varias), se sigue el procedimiento :

A- Se debe abrir el proyecto que contenia la tabla ó base de datos.
B- Se crea un formulario, en donde se encontraran los controles, si se requieren, otros formularios, se pueden diseñar antes ó despues.
C- Se crea un " Ambiente de datos" con el menú ver y la opción Enviroment Data (Ambiente de datos) abriendose una ventana con la tabla, (tablas) que contiene el proyecto ó BD.
D-Se arrastan los datos al formulario, criandose automáticamente el control respectivo en el formulario; estos controles ya estaran relacionados con la tabla.
E-Pasa comprobar en la propiedad " Controlsource" del control, verifique que se encuentre el nombre de campo respectivo de la tabla.

Sino se arrastran los campos, puede asignarse a cada control el nombre del campo respectivo, en la propiedad " Control Source" de cada control.

Y para controlar los registros, se debe programar botones de comando para :
- Visualizar el siguiente registro
- Visualizar el anterior registro
- Visualizar el primer registro
- Visualizar el último registro.

A esos controles, se les conoce como " Botones de Navegación"

Programa :

Primer boton :
Siguiente
Skip
If Eof ()
    goto top
    else
    thisform.refresh
endif

Agregarke un password a este programa :

if password = -------- then
thisformset.form
else
thisform--------

Segundo botón :
Visualizar el registro anterior
Anterior

Skip -1
If Bof () then
    Wait windows "Inicio de Archivo"
    goto bottom
    else
    thisform.refresh
endif

Tercer botón :
Primer registro a visualizar
Go top
thisform.refresh

Cuarto :
Ultimo registro a visualizar
Go Bottom
thisform,refresh

Quinto:
Eliminar un registro
Locate For
Delete
Pack

Juego Gato:
Hacer un juego de gato con opción de elegir el jugador y ponerlo de acuerdo a las cordenadas que se marquen en dos cuadros
If thisform.text1.value=2;
.and. thisform.text2.value=1
thisform.text4.value=signo

Tema : Consultas de tablas
Objetivo : Como crear y manejar tablas

Una consulta es la selección de información especifíca que requiere un usuario determinado (ó se requiere) en un sistema.

Para manejar las consultas se emplea la instrucción Select de SQL, la cual tiene las siguiente sintaxis.

Select all ! * [Elemento_Seleccion[Aas nombre.columna]; [Elemento_Seleccion[As  nombre.columna]]; [Elemento_Seleccion[As nombre_columna]]...
    From nombre_basedatos [!Tabla]
    Into Destino [To file nombre_archivo]|[To Printer]|[To screen]
Where condition [And Condition]...
    [Or Condition]...
Order by elemento_orden [Asc|Desc],
    Elemento_Orden [Asc|Desc]

Básicamente con Select se pueden visualizar los campos que se especifiquen y se coloca All ó (*), se visualizan todos los campos de la tabla
    Select All
    Select *
Si el usuario solo debe visualizar los campos :

Nom, Edad y Tel se usaria :

Select (Expresión as nombre_columna)
Donde la expresión es una serie de campos y constantes relacionadas con operandos
(^,*,/,+,-)

Ejemplo :

Select (Sueldo*1.10 As Nuevo_Sldo)

La Clausula from Sirve para establecer el nombre de la tabla y la base de datos de donde se tomaron los campos a visualizar, si la tabla es libre, es decir, no depende de un base solo se escribe la tabla (Debe estar cargada en memoria)

Ejemplo :
Todos los datos de una tabla Tablaz que se encuentra en la base de datos Emplo
From Emplo!Tabla2

Ejemplo :
Toma los datos de la tabla Sueldos from Sueldos

Para condicionar la visualización de los registros se emplea la clausula When y la Condición Simple o compleja, que condiciona y filrea los registros visualizados.

Ejemplo :
Visualizar todos los registros d la tabla Agenda que se encuentran en la B.D. DB1 cuyo Campo Ciudad sea México.

Select * from DB1 |Agenda;
Where Ciudad="Mexico"

Order by sirve para especificar el orden de los registros con relación a un campo o varios; especificando si el orden es Ascendente (Asc) o descendiente (Desc), en donde sin omitir este ultimo vocablo se considera el orden ascendente.

Ejemplo :
Visualizar los campos Nom y Edad, de la tabla agenda, cuyas edades sean mayores a 18 años y en orden ascendente, según el campo Nom.

Select Num, Edad, From Agenda;
    Where Edad >18  Order by Nom Asc

El destino por default, de una consulta es "La ventana Browse", es decir las consultas, se visualizaran en una ventana Browse, sino se especifica el destino.

Otros destinos pueden ser :
    To printer
    To screen

Para que el resultado de la consulta, se diriga a la impresora ó a la pantalla respectivamente.

La consulta de ejemplo, líneas arriba se visualizará de modo en que de un lado saldran los nombre y del otro lado las edades.

Si la consulta se agrega to printer, la información anterior se imprime en la impresora determinada.

Select Nom, Edad, from Agenda
where edad>18 Order by num asc,
    to printer

Tema : Campos calculados en consultas

Objetivo : Como realizar calculos en las consultas.

Para realizar calculos, se debe utilizar los signos de operación (Operandos) ya conocidos y asignar el nombre de columnas ó nuevo campo
Expresion as Nombre_Columna
Donde la expresión contiene los campos y sus relaciones de calculo.
Ejemplo :

Visualizar Nombre, Sueldo, y Nuevo Sueldo de la tabla emp de la BD Nomina, para los sueldos menores de $300.00, el nuevo sueldo es 10% mayor.

Select Nombre, Sueldo, Sueldo * 1.10 as
Nuevo Sueldo, from nomina!emp where sueldo <300

Visualizar en pantalla num, nombre, C1, C2 y Prom,
de la tabla Alum de la Base de Datos BDA, dara los promedios mayores a los 6.0 y en orden ascendente con relación numerica (C1 y C2 son calificaciones 1 y 2 que promedio debe calcular )

Select Num, Nombre, C1, C2, ((C1+C2)/2 as prom);
    From BDA! Alum where prom>6.0;
Order by num asc
    to screen

Regresar a Inicio

 

1