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