Base de Datos en Visual Fox Pro

Embed Size (px)

Citation preview

Mdulo 1

BASES DE DATOS EN VISUAL FOX PRO

Programa: Alumno:

Mdulo No. 1 Base de Datos Preparado por: Kenedy Campo Reservados todos los derechos Prohibida su reproduccin total o parcial Diseo e Impresin: Comunicamos Ideas Tel 653 6517

[email protected]

CONTENIDO

INTRODUCCIN A LAS BASES DE DATOS

1. POR QU LAS BASES DE DATOS? 2. DEFINICIN DE BASES DE DATOS 3. VENTAJAS DE LAS BASES DE DATOS 4. NIVELES DE ABSTRACCIN EN UNA BASE DE DATOS MODELO ENTIDAD RELACIN CAMPO 2 Registro tabla (Archivo) Tipos de datos y campo Creacion de nombres en Visual FoxPro QUIT (Comando) ?!?? (Comando) CLEAR (Comandos) DATE() (Funcin) SET CENTURY (Comando) SET DATE (Comando) TIME() (Funcin) DATETIME() (Funcin) TYPE() (Funcin) SET DEFAULT (Comando) CREATE (Comando) USE (Comando)

APPEND (Comando) BOF() (Funcin) EOF() (Funcin) GO GOTO (Comando) SKIP (Comando) RECNO() (Funcin) RECCOUNT() (Funcin) LOCATE (Comando) CONTINUE (Comando) $ (Operador) DO WHILE ... ENDDO (Comando) FOUND() (Funcin) STORE (Comando) VAL() (Funcin) STR() (Funcin) ALLTRIM() (Funcin) LTRIM() (Funcin) RTRIM() (Funcin) LEFT() (Funcin) RIGTH() (Funcin) SUBSTR()(Funcin)

INTRODUCCIN A LAS BASES DE DATOS 1. POR QU LAS BASES DE DATOS?En los sistemas de informacin clsicos, una aplicacin accede a uno o mas archivos. Esto se debe a que estos sistemas estn orientados hacia el proceso, debido a que en ellos, se pone el nfasis en los tratamientos que reciben los datos, los cuales se almacenan en unos archivos que son usados para una nica aplicacin. Estas se analizan e implantan con entera independencia unas de otras, y los datos no se suelen transferir entre ellas, sino que se duplican siempre que los correspondientes trabajos los necesitan. Este planteamiento produce, adems de una ocupacin intil de memorias secundarias, un aumento en los tiempos de proceso, al repetirse los mismos controles y operaciones en los distintos archivos, pero ms grave todava son las incoherencias que a menudo, se presentan en estos sistemas, debido a que la actualizacin de los datos que se encuentran en mas de un archivo no se suele realizarse de forma simultnea. De este anlisis, se deduce claramente la necesidad de una gestin mas racional del conjunto de datos, surgiendo as un nuevo enfoque que se apoya sobre una base de datos, en la cual los datos son recogidos y almacenados una sola vez, organizndose y mantenindose en un conjunto estructurado, que no est diseado para una aplicacin concreta.

2. DEFINICIN DE BASES DE DATOSMuchas son las definiciones que de una base de datos pueden encontrarse en la abundante bibliografa existente sobre el tema, pero coinciden en que consideran que, una base de datos es un conjunto, coleccin o de depsito de datos almacenados en un soporte informtico. Los datos deben estar interrelacionados y estructurados de acuerdo con un modelo capaz de recoger el contenido semntico restricciones existentes en el mundo real.

3. VENTAJAS DE LAS BASES DE DATOS Reduccin o eliminacin de redundancias Posibilidad de eliminar inconsistencias Los datos pueden compartirse

Estos no slo quiere decir que diferentes aplicaciones existentes pueden compartir los datos de la base, sino tambin que es factible desarrollar nuevas aplicaciones que operen con los mismos datos almacenados. Pueden aplicarse restricciones de seguridad. El sistema permite el estableci miento de controles de acceso, de modo que una determinada aplicacin (o usuario que acceda directamente a la base desde un terminal) tenga autorizacin para ver slo cierta parte de los datos y para efectuar slo ciertas operaciones con ellos Conservacin de la integridad. El control centralizado de la base, permite ejecutar procedimientos de validacin que habrn de ejecutarse cada vez que se intente una operacin de actualizacin, lo que asegura que los datos almacenados son correctos, garantizando as la integridad de los mis

mos. Independencia de los datos. Las aplicaciones son inmunes a cambios en la estructura de almacenamiento y en la estrategia de acceso, es decir, existe una independencia, tanto fsico como lgica, entre datos y tratamientos. Esta es una caracterstica que

4. NIVELES DE ABSTRACCIN EN UNA BASE DE DATOS

En las bases de datos existen tres niveles generales: interno o fsico, conceptual o lgico global, externo o lgico. El nivel externo es el ms cercano a los usuarios, es decir, el que atae a la manera como cada usuario ve los datos. En la arquitectura ANSI/Spara se llama vista externa. Por tanto, una visita externa es el contenido de la base de datos tal como lo ve un usuario, especfico (es decir, para ese usuario la vista externa es la base de datos). Por ejemplo, un usuario del departamento de personal puede ver la base de datos como un conjunto de ocurrencias de registros de departamento ms un conjunto de ocurrencias de registros de empleados. El nivel conceptual o lgico global es una representacin lgica del contenido total de informacin de la base de datos, en forma abstracta en comparacin con la forma en la cual los datos se almacenan fsicamente. Si el nivel externo se relaciona con las visitas de los usuarios individuales, el nivel conceptual puede considerarse como el que define una vista de la comunidad de usuarios. El nivel interno es una representacin de nivel muy bajo de la base de datos en su totalidad; se compone de mltiples ocurrencias, de mltiples tipos de registros internos. Registro interno es el trmino que ANSI/o PARC utiliza para la construccin llamada registro almacenado; la vista interna, por tanto, an se mantiene a un paso del nivel fsico, ya que no atae a registros fsicos ni a ninguna restriccin especfica de dispositivos tales como capacidades de cilindros o pistas.

5. SISTEMAS DE GESTIN DE BASES DE DATOS

Vista Usuario Nivel externo lgico NIvel Conceptual Lgico Global Nivel Interno Fisco

Un sistema de gestin de bases de datos, es un conjunto coordinado de programas, procedimientos, lenguajes, etc., que suministra, tanto a los usuarios informticos, como a las analistas, programadores, o al administrador, los medios necesarios para describir, recuperar y manipular los datos integrados en la base, asegurando su confidencia y seguridad. Las principales funciones de un SGBD son:

Funcin de descripcin: la funcin de descripcin debe permitir al administrador de la base de datos, especificar los elementos de datos que la integran, su estructura y las relaciones que existen entre, ellos las reglas de integridad semntica y los controles a efectuar antes de autorizar el acceso a la base, etc., as como tambin las caractersticas de tipo fsico y las vistas lgicas de los usuarios. Esta funcin, llevada a cabo por el lenguaje de descripcin o definicin de datos (LDD), propio de cada SGBD, debe suministrar los medios para definir las tres estructuras de datos fsicas, lgica, conceptual-, especificando las caractersticas de los datos, a cada uno de estos niveles: A nivel fsico, se ha de delimitar el espacio volmenes, cilindros y pistas- reservado para la base, la longitud de los campos o elementos de datos, su modo de representacin binario, decimal, pto. fijo o flotante, etc. adems, se debe poder sealar caminos de acceso, definir punteros, etc. A nivel de estructuras lgica y conceptual, ha de suministrar los instrumentos para la definicin de las entidades y su identificacin, atributos de las mismas, relaciones entre ellas, autorizaciones de acceso, restricciones de integridad, etc. Funcin de manipulacin: la funcin de manipulacin permite a los usuarios de la base, aadir, buscar, suprimir o modificar los datos de la misma siempre de acuerdo con las especificaciones y las normas de seguridad dictadas por el administrador. La funcin de manipulacin se llevar a cabo por medio de un lenguaje de manipulacin de datos (LMD), que facilita los instrumentos necesarios para la realizacin de estas tareas. Puede ser un lenguaje autocontenido, orientado a los usuarios no informticos, que puede usarse, en general, en modo conversacional o puede ser un lenguaje que precisa apoyarse en otro lenguaje, llamado husped. Funcin de utilizacin: la funcin de utilizacin rene todas las interfases que necesitan los diferentes usuarios para comunicarse con la base. Los requerimientos respecto a la forma de utilizar la base de datos son muy diferentes, segn los tipos de procesos y segn los usuarios, siendo preciso que, la funcin de utilizacin responda a todas ellas. En especial, esta funcin debe integrar un conjunto de instrumentos que faciliten las tareas del administrador.

6. ADMINISTRADOR DE LA BASE DE DATOS

Una de las razones principales para contar con sistemas de manejo de bases de datos es tener un control centralizado tanto de los datos como de los programas que tienen acceso a ellos. La persona que tiene este control centralizado sobre el sistema es el administrador de la base de datos. Las funciones del administrador son entre otras:

Definicin del esquema (base lgica global) Definicin de la estructura del almacenamiento y del mtodo de acceso Modificacin del esquema y de la organizacin fsica Concesin de autorizacin para el acceso a los datos Especificacin de restricciones de integridad

TALLERQu es una base de datos? Qu es un modelo de datos? Qu es un sistema de gestin de base de datos? Cules son las ventajas de las bases de datos? Cules son los niveles de abstraccin de los datos?

MODELO ENTIDAD RELACINPara efectuar el anlisis de un sistema de informacin es necesario realizar un anlisis funcional y un anlisis estructural. El anlisis funcional corresponde a la identificacin, definicin, representacin y especificacin de procesos. En este captulo nos ocuparemos del anlisis estructural o anlisis de datos, que consiste inicialmente en un esquema conceptual formado por los objetos y sus propiedades relevantes identificadas por el analista en su percepcin y abstraccin de esa realidad. El esquema conceptual que se forma en la mente del analista es expresado mediante algunos formalismos dando origen a un modelo conceptual. Una vez definido el modelo conceptual, este se puede transformar en una descripcin de datos, atributos, registros, archivos, tablas, etc., incluyendo las posibles interrelaciones entre estos elementos y su significado. Dicha descripcin la llamaremos modelo lgico de datos y a la operacin de transformar el modelo lgico la llamaremos diseo lgico de datos. Una vez definido el modelo lgico, hay que traducirlo a estructuras almacenables en soporte fsicos controlados por el computador, normalmente discos magnticos. Al conjunto de estas estructuras lo llamaremos modelo fsico de datos y al proceso de transformacin del modelo lgico al modelo fsico, lo llamaremos diseo fsico de datos. La siguiente figura representa los tres niveles de los datos y sus correspondientes modelos:

RELAIDAD

Anlisis Diseo lgico de datos Diseo fsico de datos B.D.

MODELO CONCEPTUAL MODELO LGICO MODELO FSICO

Vista o abstraccin

Transformacin

Transformacin

Existen mltiples modelos conceptuales, de los cuales el mas ampliamente utilizado es el modelo entidad relacin de chen, que es el que estudiaremos. El modelo entidad-relacin al igual que cualquier otro modelo conceptual de daos es independiente del sistema de gestin de bases de datos elegido. Los elementos bsicos del modelo son:

Entidades:

Una entidad es una cosa que puede ser distinguida e identificada. De cara al modelo conceptual podemos decir que las entidades son los objetos acerca de los cuales tenemos informacin. Las entidades pueden ser: Reales, es decir, objetos tangibles o cosas, tales como mquinas, gente, edificios, etc. Conceptuales, es decir, objetos intangibles, como por ejemplo, orden de compra, costo de un centro, etc. Actividades o eventos, es decir, actividades de inters para la empresa, acerca de los cuales se deben mantener datos por ejemplo, pagos, compras, ventas, etc. Es importante sealar que una entidad esta representada en el modelo por los datos asociados a sus propiedades, ella no es en si misma los datos. Por ejemplo, Mara Pepa existe como una persona, pero su nombre, fecha de nacimiento, sexo, etc., son propiedades o cualidades que pueden ser representadas como datos acerca de ella, otra cosa importante es que teniendo en cuenta las propiedades comunes, las entidades son agrupadas formando tipos de entidades. As por ejemplo, la entidad Mara Pepa pertenece a la entidad tipo PERSONA, y se dice que

Relaciones:

Una relacin es una asociacin entre entidades, por ejemplo, padre-de es una relacin entre dos entidades PERSONA. Las relaciones se agrupan formando tipos de relaciones, es decir, asociaciones entre los tipos de entidades de las entidades involucradas en las relaciones. Podemos clasificar las relaciones tipo, segn el grado o nmero de tipos de entidades distintas a las que asocia: Relacin binaria o de grado 2: entre dos tipos de entidades diferentes. Relacin reflexiva o de grado 1: la definido entre un tipo de entidad y ella misma.

Cardinalidad de una relacin:

Es el nmero de ocurrencias de cada tipo de entidad que intervienen o pueden intervenir en el tipo de relacin. Se puede fijar, al hablar de la cardinalidad de una entidad respecto a una relacin, de una cardinalidad mnima y de una cardinalidad mxima. La mnima puede ser 0 o 1 e indicar si existe la posibilidad de determinadas entidades no participen en el relacin, y dichas participaciones se conocen con el nombre de opcional y obligatoria respectivamente. Atributos: un atributo es una propiedad descriptivo o valor asociado con una entidad, que sirve para cualificar, identificar, clasificar o expresar el estado de la entidad. Un tipo de atributo es la coleccin de todos los valores de una propiedad definida asociada con las entidades de un tipo de entidad dado.

Ejemplo:Tipo de entidad Persona

Tipo de atributo Nombre

Atributo Mara Pepa

Diagrama entidad relacin: para

Ees un grfico conceptual del modelo entidad relacin. Hay 2 razones para dibujarlo: Representa un resumen de los resultados del anlisis, el cual puede servir como b a s e la discusin. Es la base para el diseo de la base de datos

No existe una nica representacin grfica de los diagramas entidad-relacin (DER), veremos dos:

Diagramas de Echen: PERSONA Los tipos de relaciones se representan por un rombo con sus respectivas lneas de conexin a los tipos de entidades. Ejemplo: TRABAJA

Las cardinalidades se representan junto a las lneas de conexin y cerca de las entidades tipo respectivas, de la siguiente manera:

Cardinalidad mnima: cardinalidad mxima Ejemplo: EMPLEADO TRABAJA PROYECTO

:

:

Los tipos de atributo por lo general no se suelen representar en el diagramapara no recargarlo y cuando se representa slo se utilizan los atributos de la clave primaria. VENDEDOR

:

VENDE A

1:1

CLIENTE No. Cliente

No. Vendedor

Diagramas de Bachman:a. b. c. Los tipos de entidades se representan por um rectngulo Los tipos de relaciones se representan por un rombo Las cardinalidades mximas se representan por las lneas de conexin de los rombos con los respectivos tipos de entidades. La convencin es la siguiente:

R

Representa una relacin R, de cardinalidad mxima uno a uno teniendo en cuenta los dos sentidos. Representa una relacin R, de cardinalidad uno a muchos en donde muchos significa mas de uno.

R

R

Representa una relacin R, de cardinalidad muchos a mu-

En Bachaman las caractersticas mnimas no aparecen reflejadas grficamente. d. Los tipos de atributos se representan como valos conectados al rectngulo de su respectivo tipo de entidad. Ejemplo:

A

a2

Equivalencia de entidades:

a1

a. Entidades compuestas o asociativas: se denomina de este modo a aquellas que resultan al asociar a una relacin entre entidades unos determinados atributos. Entonces, la relacin inicial debe ser considerada a su vez como una entidad. Ejemplo: EMPLEADO : TRABAJA : PROYECTO

Fecha inicio participacin

Horas dictadas

Horas dedicadas no es un atributo de empleado ni de proyecto, puesto que su significado depende tanto del empleado como del proyecto involucrado. b. Atributo entidad: no slo las relaciones se pueden convertir en entidades. Un atributo tambin se pude convertir en una entidad cuando tiene significado completo en si mismo, con relaciones y atributos propios. Ejemplo:

TIPO DE CARRO

CARRO

Constructor

modelo

N pasajeros

N placa

Pripi-

TALLER1. 2. 3. 4. 5. Explique en qu consiste el anlisis de datos Explique en qu consiste el diseo lgico y fsico de datos Explique los elementos del modelo entidad relacin de Chen Transforme los ejemplos representados en diagramas de Chen a diagramas de Bachman D un ejemplo entidad compuesta y un ejemplo de un atributo-entidad

EJEMPLOS Y EJERCICIOS DEL MEREjemplo: se trata de disear un modelo conceptual para una compaa area usando el formalismo entidad relacin. Las entidades con sus atributos son las siguientes:

PASAJERO (Nombre, direccin, telfono) VUELO (Origen, Destino, No. Vuelo, Hora Partida, Hora - Llegada) PARTIDA (Fecha). TIPO AVION (Constructor, Modelo) AERONAVE (No. Serie) EMPLEADO (No. Empleado, Nombre, Categora, Salario) PILOTO (No. Licencia; No. Horas Vuelo).Las relaciones y sus cardinalidades mximas son las siguientes: 1. 2. 3. 4. 5. 6. 7. Los pilotos pertenecen a los empleados de la compaa (1:1) Los pasajeros reservan cupo para las partidad (m:n). Las partidad son ocurrencias de los vuelos en una fecha determinada (n:1). Empleados de la compaa son asignados a una partida (m:n). Los pilotos pueden manejar varios tipos de aviones (m:n) Una aeronave pertenece a un tipo de avin (n:=) Una aeronave puede realizar varias partidas (1:n)

El diagrama de Bachman correspondiente es:Telfono

Nombe -P

Direccin

PASAJERO

Reserva

Salario

Nombre

FechaAsionado

NEMPLEADOPertenece

Categoria

N Lic

N Horas

PARTIDA

PILOTO

Ocurrencia

Re ali z a

Maneja

N

Hora partida

VUELOHora llegada

A E R O N AV EConstructor

Es un

T I P O - AV I NConstructor

Orgen

Destino

Modelo

En la prctica se suele simplificar la representacin omitiendo los nombres de las relaciones y de los atributos, de la siguiente manera:

PA S A J E R O

EMPLEADO

PA R T I D A

A E R O N AV E PILOTO

VUELO

T I P O - AV I N

Le queda como ejercicio al lector establecer las cardinalidades mnimas.

EJERCICIO 1Se trata de elaborar el modelo entidad relacin que refleje el funcionamiento de una universidad en su parte acadmica, organizada de la forma siguiente:1. La universidad est constituida por facultades. 2. Una facultad est dividida en departamentos. 3. Un departamento est integrado por ctedras. 4. Una ctedra imparte, en general, varias asignaturas. 5. Un alumno est matriculado en una o varias asignaturas, pero no puede cursar estudios simultneamente en dos facultades diferentes. 6. En cada ctedra hay un catedrtico y varios profesores titulares y encargados de cursos. Los profesores titulares, as como el catedrtico, slo pueden impartir docen cia dentro de la ctedra. Mientras que los encarga dos de cursos pueden hacerlo en distintas ctedras de un mismo departamento. 7. Departamentos de la misma o de distintas facultades pueden unirse para construir institutos interfacultativos de investigacin y post grado. 8. Cada departamento tiene varios alumnos de post grado, que reciben la docencia a travs de los institutos de investigacin.

Se pide:1. 2. Identificar las entidades. Identificar las relaciones y sus cardinalidades.

EJERCICIO 2Una empresa dedicada a la fabricacin y venta de productos desea disear una base de datos que le permita controlar un sistema de compras y almacenes. Las materias primas que necesita la empresa se solicitan a los proveedores. Cada proveedor suministra diversas materias primas y de cada materia prima hay varios proveedores. Cada pedido es para un nico proveedor y para una sola materia prima y en l se indica en que almacn deseo que se efecte la entrega ya que las materias primas estn distribuidas en diversos almacenes. En cada almacn hay por lo menos un 80% de las materias primas y una materia prima est en al menos el 80% de los almacenes. En los almacenes citados, tambin se encuentran los productos terminados. En cada almacen un 50% de los productos y un producto se almacena en al menos un 50% de los almacenes. Los productos se componen de varias materias primas y obviamente una materia prima puede intervenir en la fabricacin de ms de un producto. Una vez el pedido es servido, se procede al pago de los proveedores previa presentacin de la factura de estos. Una factura por cada pedido. Cada pedido puede originar varias pagos, pero cada uno de ellos corresponde a una nica factura. Los pagos se agrupan por bancos teniendo en cuenta que algunos pagos se efectuarn en efectivo (no por banco) se pide lo mismo del

Campo Campo Recibe el nombre de campo el espacio fsico donde sese almacena un dato, yque generalmente se le da un un Recibe el nombre de campo el espacio fsico donde almacena un dato, y al al que generalmente se le da nombre para identicarlo. En un campo podemos tener unos datos ya ya almacenados o introducir unos nuevos. nombre para identicarlo. En un campo podemos tener unos datos almacenados o introducir unos nuevos. Ejemplo: Ejemplo: Cada una de las casillas que se llenan en una hoja de vida corresponde a un un campo. una de las casillas que se llenan en una hoja de vida corresponde a campo. Crear Campos Campos Al crear los campos de una tabla debe especicar un nombre dede campo, un tipo datos y un ancho de campo. crear los campos de una tabla debe especicar un nombre campo, un tipo de de datos y un ancho de campo. Tambin puede controlar qu datos se permiten en el el campo especi cando sicampo permite valores NULL, Tambin puede controlar qu datos se permiten en campo especi cando si el el campo permite valores NULL, si tiene un valor predeterminado o o si debe cumplir reglas de validacin. congurar las propiedades de de tiene un valor predeterminado si debe cumplir reglas de validacin. Al Al congurar las propiedades presentacin, puede especicar elel tipo de control que se crea cuando campo se agrega a un formulario, el el presentacin, puede especicar tipo de control que se crea cuando el el campo se agrega a un formulario, formato del contenido de los campos o o el ttulo del contenido del campo. formato del contenido de los campos el ttulo del contenido del campo. Nota: Los registros de una tabla de Visual FoxPro pueden contener hasta 255 campos. Si unouno o ms campos Los registros de una tabla de Visual FoxPro pueden contener hasta 255 campos. Si o ms campos contienen valores NULL, el nmero mximo de campos que la tabla puede contener se reduce en uno,uno, de 255 contienen valores NULL, el nmero mximo de campos que la tabla puede contener se reduce en de 255 a 254. 254. Registro Registro Fsicamente es un conjunto de campos; lgicamente es es un conjunto de datos relacionados que sirven para Fsicamente es un conjunto de campos; lgicamente un conjunto de datos relacionados que sirven para identicar un ente, persona oo cosa. identicar un ente, persona cosa. Trabajar con registros Trabajar con registros Cuando haya diseado yy creado la estructura de una tabla, puede almacenar datosellaella agregndole registros. Cuando haya diseado creado la estructura de una tabla, puede almacenar datos en en agregndole registros. Despus podr modicar yy eliminar los registros existentes. Cada una de estas tareas puede realizarse a travs Despus podr modicar eliminar los registros existentes. Cada una de estas tareas puede realizarse a travs de la interfaz graca oomediante comandos. interfaz graca mediante comandos. Ejemplo: Ejemplo: Una vez llenadas todas las casillas de lala hoja de vida tenemos un registro, indica esto que la hojavidavida como vez llenadas todas las casillas de hoja de vida tenemos un registro, indica esto que la hoja de de como tal es un registro que identica a a una persona en particular. un registro que identica una persona en particular. Tabla (Archivo) (Archivo) Conjunto de registros que hacen referencia a a una misma personacosa, las las tablas tambin conocemos Conjunto de registros que hacen referencia una misma persona o o cosa, tablas tambin las las conocemos como archivos. archivos. Crear tablas tablas Las tablas almacenan los datos en un formato de las y columnas, de de manera similar a una hojaclculo. Cada tablas almacenan los datos en un formato de las y columnas, manera similar a una hoja de de clculo. Cada la representa un registro, mientras que cada columna representa loslos campos los los registros. Puede crear una representa un registro, mientras que cada columna representa campos de de registros. Puede crear una tabla en una base de datos oo una tabla libre que no est asociada a ninguna base datos. Si coloca la tabla en en en una base de datos una tabla libre que no est asociada a ninguna base de de datos. Si coloca la tabla una base de datos, puede crear nombres largos de campo y dede tabla para las tablasla base de datos. Tambin base de datos, puede crear nombres largos de campo y tabla para las tablas de de la base de datos. Tambin puede aprovecharse de las capacidades del diccionario dede datos para tablas base de datos, valores de campo puede aprovecharse de las capacidades del diccionario datos para tablas de de base de datos, valores de campo predeterminados yyreglas aa nivel de campo a nivel dede registro, as como tambin los desencadenadores. predeterminados reglas nivel de campo y y a nivel registro, as como tambin de de los desencadenadores. Disear tablas de base de datos oo tablas libres Disear tablas de base de datos tablas libres Las tablas de Visual FoxPro, oo archivos .dbf, pueden existir en dos estados: como tabla base de datos (una(una tablas de Visual FoxPro, archivos .dbf, pueden existir en dos estados: como tabla de de base de datos tabla asociada a una base de datos) o o como una tabla libre no asociadaninguna base de datos. Las tablas asociada a una base de datos) como una tabla libre no asociada a a ninguna base de datos. Las tablas asociadas a una base de datos cuentan con ciertas ventajas sobre las las tablas libres. Cuando una tabla forma asociadas a una base de datos cuentan con ciertas ventajas sobre tablas libres. Cuando una tabla forma parte de una base de datos, es posible crear: de una base de datos, es posible crear:

Nombres largos para la tabla y para cada uno de sus campos. Ttulos y observaciones para cada campo de la tabla. Valores predeterminados, mscaras de entrada y formato para los campos de la tabla. Clase de control predeterminada para campos de tablas. Reglas a nivel de campo y reglas a nivel de registro. ndices de clave primaria y relaciones de tablas para compatibilidad con reglas de integridad referencial. Un desencadenante para cada evento INSERT, UPDATE o DELETE.

Recuerde los siguientes puntos cuando disee una tabla:

Ejemplo:

El tipo de datos de un campo debe coincidir con el tipo de informacin que va a almacenar en l. Haga el campo lo sucientemente ancho para dar cabida a la informacin que mostrar. Establezca un nmero apropiado de posiciones decimales para los campos de tipo Numrico o Float. Active "NULL" si desea que el campo acepte .NULL. como valor.

Las hojas de vida de mis estudiantes forman una tabla (Archivo). Tipos de datos y campos Todos los datos de Visual FoxPro tienen un tipo, como una descripcin de los valores permitidos, y el intervalo y tamao de los valores. Una vez especicado el tipo de datos que est usando, Visual FoxPro puede almacenar y manipular los datos de forma ecaz. Cuando se crea una tabla, se puede especicar el tipo de datos que se almacena en cada campo de la tabla. Es posible especicar ms tipos de datos para campos en una tabla que para variables y matrices, las cuales slo pueden almacenar un subconjunto de los tipos de datos disponibles en Visual FoxPro; sin embargo, el valor que se almacene en una variable o elemento de matriz determina el tipo de dato almacenado. Sugerencia: Se puede usar la funcin TYPE() para determinar el tipo de dato almacenado en una variable, elemento de matriz o campo. La siguiente tabla muestra los tipos de datos en Visual FoxPro. Tipos de datos de Visual FoxPro

Tipo de datos Carcter Monetario (Currency) Fecha DateTime

Descripcin Cualquier texto Importes monetarios

Tamao

Intervalo

1 byte por carcter Cualquier carcter hasta 254 8 bytes - $922337203685477.5807 to $922337203685477.5807 Al usar formatos de fecha estrictos, {^0001-01-01}, 1 de enero, 1 d.C. a {^9999-12-31}, 31 de diciembre, 9999 d.C. Al usar formatos de fecha estrictos, {^0001-01-01}, 1 de enero, 1 d.C. a {^9999-12-31}, 31 de diciembre, 9999 d.C., ms 00:00:00 a.m. a 11:59:59 p.m. Verdadero (.T.) o Falso (.F.) - 0,9999999999E+19 a 0,9999999999E+20

Dato cronolgico que 8 bytes consiste de mes, da y ao Dato cronolgico que 8 bytes consiste de mes, da, ao, horas, minutos y segundos Valor booleano verdadero o falso Nmeros enteros o decimales 1 byte 8 bytes en la memoria; 1 a 20 bytes en una tabla

Lgico Numrico

Adems, Visual FoxPro proporciona tipos de datos que se aplican nicamente a campos de tablas. Tipos de campos de Visual FoxPro Tipo de datos Descripcin Tamao Algunos caracteres Intervalo

Character (Binary) Cualquier dato carcter que 1 byte por carcter no se desea traducir entre hasta 254 pginas de cdigo. Doble Nmero de signo otante 8 bytes de precisin doble Igual que Numrico 8 bytes en la Flotante memoria; 1 a 20 bytes en una tabla General Referencia a un objeto OLE 4 bytes en una tabla Entero Valor numrico sin 4 bytes decimales Integer (Autoinc) Lo mismo que Integer 4 bytes pero tambin incluye un valor para incremento automtico. Slo lectura. Cualquier texto de longitud 4 bytes en una indeterminada o referencia tabla a un bloque de datos Lo mismo que Memo excepto que los datos no cambian entre pginas de cdigo 4 bytes en una tabla

+/-4,94065645841247E-324 a +/8,9884656743115E307 - 0,9999999999E+19 a 0,9999999999E+20

Limitado por la memoria disponible -2147483647 a 2147483647 Valor controlado por los valores de autoincremento Next y Step (Siguiente y paso). Limitado por la memoria disponible

Memo

Memo (Binario)

Limitado por la memoria disponible

Cada tipo de datos tiene sus propias caractersticas, incluido el tamao de almacenamiento. Creacin de nombres en Visual FoxPro Los contenedores de datos (campos) y algunos parmetros de comandos y funciones necesitan tener un nombre. Cuando cree un nombre en Visual FoxPro, aplique las siguientes reglas:

Use slo letras, nmeros y subrayados. Empiece el nombre con una letra o un subrayado. Utilice de 1 a 128 caracteres, excepto para nombres de campo de tablas libres y etiquetas de ndice, que pueden tener un mximo de 10 caracteres. Evite las palabras reservadas por Visual FoxPro.

Los nombres de archivo se rigen por las convenciones del sistema operativo. QUIT (Comando) Termina la sesin actual de Visual FoxPro y devuelve el control al sistema operativo. QUIT Observaciones Para nalizar una sesin de Visual FoxPro, debe utilizar siempre el comando QUIT. Si apaga el equipo sin ejecutar QUIT, se pueden daar los archivos abiertos y perder datos. Adems, puede dejar en el disco archivos temporales de trabajo que normalmente se eliminaran. Vea tambin CANCEL | RESUME | RUN | SUSPEND ? | ?? (Comando) Evala expresiones y muestra los resultados. ? | ?? Expression1 [PICTURE cFormatCodes] | [FUNCTION cFormatCodes] | [VnWidth] [AT nColumn] [FONT cFontName [, nFontSize] [STYLE cFontStyle | Expression2]] [, Expression3] ... AT nColumn Especica el nmero de la columna en que aparece el resultado. Esta opcin permite alinear el resultado en columnas para crear una tabla. La expresin numrica nColumn puede ser una funcin denida por el usuario que devuelva un valor numrico. FONT cFontName [, nFontSize] Especica una fuente para el resultado de ? | ?? cFontName especica el nombre de la fuente y nFontSize especica el tamao en puntos. Por ejemplo, el comando siguiente muestra la fecha del sistema con la fuente Courier de 16 puntos: ? DATE() FONT Courier,16 Si incluye la clusula FONT pero omite el tamao en puntos nFontSize, se usar una fuente de 10 puntos.

Si omite la clusula FONT y el resultado de ? | ?? se sita en la ventana principal de Visual FoxPro, se utilizar para el resultado layfuente de la ventana principal de Visual FoxPro. Si omitede clusula FONT se Si omite la clusula FONT el resultado de ? | ?? se sita en la ventana principal la Visual FoxPro, y el resultado deresultado la fuente de la ventananida por el usuario, FoxPro. Si omite el resultadoFONT utilizar para el ? | ?? se sita en una ventana de principal de Visual se utilizar para la clusula la y el resultado de ? | denida por una ventana denida por el usuario, se utilizar para el resultado la fuente de la ventana ?? se sita enel usuario. fuente de la ventana denida por el usuario. Si la fuente especicada no est disponible, se sustituir por una fuente de caractersticas Si la fuente similares. especicada no est disponible, se sustituir por una fuente de caractersticas similares. STYLE cFontStyle STYLE cFontStyle Especica un estilo de fuente para el resultado de ? | ?? . Si omite la clusula STYLE, se utiliza el estilo Especica un estilo de estilo de fuente especicado no est disponible, se STYLE, se utiliza el estilo de fuente Normal. Si elfuente para el resultado de ? | ?? . Si omite la clusula sustituye por otro de de fuente Normal. Si el caractersticas similares. estilo de fuente especicado no est disponible, se sustituye por otro de caractersticas similares. Nota: Debe incluir la clusula FONT cuando especique un estilo de fuente mediante la clusula Nota: STYLE. Debe incluir la clusula FONT cuando especique un estilo de fuente mediante la clusula STYLE. stos son los estilos de fuente que puede especicar con cFontStyle: stos son los estilos de fuente que puede especicar con cFontStyle: Character Estilo de la fuente CharacterNegrita de la fuente Estilo B Negrita IB Cursiva I Cursiva N Normal N Normal O Contorno O Contorno Q Opaco Q Opaco S Sombra Sombra -S Tachado Tachado T Transparente T Transparente U Subrayado U Subrayado Puede incluir ms de un carcter para especicar una combinacin de estilos de fuente. Por ejemplo, Puede incluir ms de un carcter para especicar una combinacin de estilos de fuente. Por ejemplo, el comando siguiente muestra la fecha del sistema en Courier negrita y cursiva: el comando siguiente muestra la fecha del sistema en Courier negrita y cursiva: ? DATE() FONT COURIER STYLE BI ? DATE() FONT COURIER STYLE BI Observaciones Observaciones ? y ?? evalan expresiones envan los resultados la ventana principal de Visual FoxPro, a a una ventana activa ? y ?? evalan expresiones yyenvan los resultados a a la ventana principal de Visual FoxPro,una ventana activa denida por el usuario o aala impresora. denida por el usuario o la impresora. Si SET PRINTER est denido como ON, los resultados de expresin se dirigirn a a la impresora la la ventana Si SET PRINTER est denido como ON, los resultados de lala expresin se dirigirnla impresora y ay aventana principal de Visual FoxPro o una ventana activa denida por usuario. Si SET PRINTER est denido como ON principal de Visual FoxPro o aauna ventana activa denida por elel usuario. Si SET PRINTER est denido como ON y SET CONSOLE est denido como OFF, los resultados se dirigirn nicamente a la impresora. y SET CONSOLE est denido como OFF, los resultados se dirigirn nicamente a la impresora. Ejemplo Ejemplo ? 15*(10+10) ? 15*(10+10) ? Welcome To picture @! ? Welcome To picture @! ?? Visual FoxPro ?? Visual FoxPro ? date() font courier,16 ? date() font courier,16 ? date() font courier style bi ? date() font courier style bi ? date(1998,02,16) ? date(1998,02,16) ? nombre = Juan Fernando ? nombre = Juan Fernando ? nombre at 25 ? nombre at 25 ? precio = 123456.30 ? precio = 123456.30 ? precio * 16 // 100 ? precio * 16 100Vea tambin tambin ??? (Comando) ||@ ... SAY (Comando) | SET MEMOWIDTH (Comando) | SET PRINTER (Comando) | SET SPACE (Comando) (Comando) @ ... SAY (Comando) | SET MEMOWIDTH (Comando) | SET PRINTER (Comando) | SET SPACE (Comando) Format (Propiedad) InputMask (Propiedad) | Format (Propiedad) | |InputMask (Propiedad)

CLEAR (Comandos) Libera de la memoria el elemento o los elementos especicados. CLEAR [ALL | CLASS ClassName | CLASSLIB ClassLibraryName | DEBUG | DLLS [cAliasNameList]| EVENTS | FIELDS | GETS | MACROS | MEMORY | MENUS | POPUPS | PROGRAM | PROMPT | READ [ALL] | RESOURCES [FileName] | TYPEAHEAD | WINDOWS] Observaciones CLEAR borra la ventana principal de Visual FoxPro o la ventana activa denida por el usuario y libera de la memoria todos los controles @ ... GET pendientes. Se puede incluir CLEAR en archivos de formato. Ejemplo clear Vea tambin @ ... CLEAR | CLOSE | DECLARE - DLL | READ | READ EVENTS | RELEASE | RELEASE CLASSLIB | RELEASE WINDOWS DATE() (Funcin) Devuelve la fecha actual del sistema, que est controlada por el sistema operativo, o crea un valor Date compatible con el milenio. DATE([nYear, nMonth, nDay]) Valores devueltos Date / Fecha Parmetros nYear Especica el ao devuelto en el valor Date compatible con el milenio. nYear puede tener un valor entre 1 y 9999. nMonth Especica el mes devuelto en el valor Date compatible con el milenio. nMonth puede tener un valor entre 1 y 12. nDay Especica el da devuelto en el valor Date compatible con el milenio. nDay puede ser un valor entre 1 y 31. Observaciones DATE() devuelve la actual fecha del sistema si se ejecuta sin argumentos opcionales. Incluya los argumentos opcionales para devolver un valor de fecha compatible con el ao 2000 en el formato establecido en la cha Regional del cuadro de dilogo cuadro de dilogo Opciones. Los parmetros ausentes se sustituyen con el valor actual del sistema. Ningn comando o funcin de Microsoft Visual FoxPro puede cambiar directamente la fecha del sistema. Ejemplo && Limpiar Pantalla

El ejemplo siguiente muestra la fecha actual del sistema con y sin el siglo, y despus, muestra una fecha preparada para el milenio. clear set century off ? date() set century on ? date() ? date(1998,02,16) ? date() + 30 ? actual = date(1998,02,16) ? date() - actual Vea tambin CTOD() | DATETIME() | DTOC() | SET CENTURY | SET DATE | SET MARK TO | SYS() - Introduccin a las funciones SET CENTURY (Comando) Determina si Microsoft Visual FoxPro mostrar o no el siglo en las expresiones Date y cmo interpreta Visual FoxPro las fechas que slo especican los aos con 2 dgitos. SET CENTURY ON | OFF | TO [nCentury [ROLLOVER nYear]] Parmetros ON Especica un formato de ao con cuatro dgitos que ocupa 10 caracteres (incluidos los delimitadores de fecha). Nota: Para proporcionar compatibilidad con el ao 2000, se recomienda que establezca siempre SET CENTURY en ON. OFF (Predeterminado) Especica un formato de ao de dos dgitos que ocupa ocho caracteres y supone el siglo veinte para los clculos de fechas. Ejemplo set century on Vea tambin DATE() | SET DATASESSION | SET STRICTDATE | SET SYSFORMATS | YEAR() SET DATE (Comando) Especica el formato para mostrar las expresiones Date y DateTime. SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | TAIWAN | USA | MDY | DMY | YMD| SHORT | LONG Observaciones A continuacin se muestran las conguraciones y los formatos de fecha resultantes: Valor AMERICAN ANSI BRITISH/FRENCH mm/dd/aa aa.mm.dd dd/mm/aa Formato && Ao a 4 Digitos

GERMAN ITALIAN JAPAN TAIWAN USA MDY DMY AMD SHORT LONG

dd.mm.aa dd-mm-aa aa/mm/dd aa/mm/dd mm-dd-aa mm/dd/aa dd/mm/aa aa/mm/dd El formato de fecha corto determinado en la conguracin de fecha corta del Panel de Control de Windows. El formato de fecha larga determinado en la conguracin de fecha larga del Panel de Control de Windows.

Nota: Cuando se establece SET DATE en SHORT o LONG, las fechas anteriores a {1601-01-01} no sern vlidas y generarn un error. La conguracin predeterminada es AMERICAN. El valor SET DATE tambin determina cmo aparecer la fecha en las expresiones DateTime. Si se establece DATE en SHORT o en LONG, se omitirn los valores de conguracin establecidos para SET CENTURY, SET MARK, SET HOURS y SET SECONDS. SET DATE tiene como alcance la sesin actual de datos. Ejemplo set century on set date to dmy Vea tambin DATE() | DATETIME() | SET CENTURY | SET DATASESSION | SET MARK TO | SET SYSFORMATS TIME() (Funcin) Devuelve la hora actual del sistema en formato de 24 horas, en una cadena de 8 caracteres (HH:MM:SS). TIME([nExpression]) Valores devueltos Character / Caracter Parmetros nExpression La hora devuelta incluir las centsimas de segundo si se incluye nExpression. La expresin numrica nExpression puede ser cualquier valor. No obstante, la resolucin mxima real es de aproximadamente 1/18 de segundo. Utilice SECONDS() para obtener mayor resolucin. Ejemplo ? time() && Imprimir la hora actual Vea tambin CTOT() | DATE() | DATETIME() | DTOT() | HOUR() | SEC() | SECONDS() | SET SECONDS | SYS(2) - Segundos desde medianoche DATETIME() (Funcin) && Formato dd/mm/aaaa

Devuelve la fecha y la hora actuales como un valor DateTime o crea un valor DateTime compatible con el milenio. DATETIME([nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]]) Valores devueltos DateTime / Fecha Hora Parmetros nYear Especica el ao devuelto en un valor DateTime compatible con el milenio. nYear puede tener un valor entre 1 y 9999. nMonth Especica el mes devuelto en un valor DateTime compatible con el milenio. nMonth puede tener un valor entre 1 y 12. nDay Especica el da devuelto en un valor DateTime compatible con el milenio. nDay puede tener un valor entre 1 y 31. nHours Especica las horas devueltas en un valor DateTime compatible con el milenio. nHours puede tener un valor entre 0 (medianoche) y 23 (11 p.m.). Toma el valor predeterminado 0 si se omite. nMinutes Especica los minutos devueltos en un valor DateTime compatible con el milenio. nMinutes puede tener un valor entre 0 y 59. Toma el valor predeterminado 0 si se omite. nSeconds Especica los segundos devueltos en un valor DateTime compatible con el milenio. nSeconds puede tomar un valor entre 0 y 59. Toma el valor predeterminado 0 si se omite. Observaciones DATETIME() devuelve la fecha actual del sistema si se ejecuta sin ningn argumento opcional. Los parmetros opcionales de fecha ausentes se sustituyen por los valores actuales del sistema. Un parmetro de hora ausente se sustituye por 12:00:00. Incluya los argumentos opcionales para devolver un valor DateTime compatible con el ao 2000 en el formato especicado en la cha Regional del cuadro de dilogo cuadro de dilogo Opciones. Ejemplo En El ejemplo se usa DATETIME() para crear un valor DateTime compatible con el milenio. clear set century on set date to american ? datetime(1998,02,16,12,34,56) && displays 02/16/1998 12:34:56 pm

Vea tambin CTOT() | DATE() | DTOT() | HOUR() | SEC() | SECONDS() | SET SECONDS | SET SYSFORMATS | TIME() | TTOC() | TTOD() TYPE() (Funcin) Evala una expresin de carcteres y devuelve el tipo de datos de su contenido. TYPE(cExpression) Valores devueltos Carcter Parmetros cExpression Especica la expresin que se va a evaluar, que puede ser una variable, un campo, un campo de memoria o cualquier otra expresin. La expresin se debe transferir como una cadena de carcteres; escriba entre comillas los nombres de las variables de memoria, los campos, etc. Si no escribe la expresin entre comillas, la funcin TYPE() evaluar el contenido de la cadena. Si no se puede evaluar el contenido como una expresin vlida de FoxPro, TYPE() devuelve U (expresin no denida). Observaciones La tabla siguiente presenta los caracteres que devuelve TYPE() y sus tipos de datos correspondientes: Tipo de datos Carcter Numrico (Tambin Float, Double e Integer) Currency Fecha DateTime Lgico Memo Objeto General Screen (creado con SAVE SCREEN) Tipo de expresin no denido Carcter devuelto C N Y D T L M O G S U

Si pasa un orden como un parmetro a TYPE(), entonces el tipo de datos retomados corresponde al primer elemento en el orden. Si desea comprobar el tipo de datos por un elemento especco del orden, entonces debe especicar ese elemento en el parametro. Por ejemplo: ? TYPE(myarray[3]) Puede utilizar adems la funcin TYPE() para comprobar si una variable de memoria es un orden. Por ejemplo: ? TYPE(myarray[1])#U Ejemplo ntest = 1.01 ctest = string clear ? type((12 * 3) + 4) ? type(date()) ? type(.f. or .t.) ? type(answer=42) ? type($19.99) ? type(ntest)

&& && && && && &&

n d l u y n

? type(ctest) Vea tambin ? type(ctest) EVALUATE() | SAVE SCREEN | VARTYPE() Vea tambin SET DEFAULT (Comando) EVALUATE() | SAVE SCREEN | VARTYPE()

&& c&& c

Especica la (Comando) SET DEFAULTunidad o el directorio predeterminados. SET DEFAULT TO [cPath] Especica la unidad o el directorio predeterminados. Parmetros SET DEFAULT TO [cPath] cPath ParmetroscPath

Especica uno de los elementos siguientes:

uno de los elementos siguientes: Especica Un designador de unidad. ObservacionesUn designador de unidad. con un nombre de directorio. Un designador de unidad Un designador de unidad con un nombre de directorio. Un nombre de un directorio secundario. Un nombre de un directorio secundario. Cualquiera de los anteriores, utilizando la notacin abreviada de Microsoft MS-DOS ( \ o ..). Cualquiera de los anteriores, utilizando la notacin abreviada de Microsoft MS-DOS ( \ o ..).

Observaciones SET DEFAULT cambia el directorio predeterminado al directorio que usted especique. SET DEFAULT cambia el directorio predeterminado al directorio que usted especique. Cuando salga de Visual FoxPro, volver a Microsoft Windows. Si sale de Windows, volver a la unidad y al directorio desde Visual inici volver a Cuando salga de los queFoxPro,Windows. Microsoft Windows. Si sale de Windows, volver a la unidad y al directorio desde los devuelve la unidad predeterminada. SYS(2003) devuelve el directorio predeterminado sin Sugerencia: SYS(5) que inici Windows.

designador SYS(5) devuelve la unidad predeterminada. unidad y devuelve el predeterminados. Sugerencia: de unidad. SYS(5) + SYS(2003) devuelven laSYS(2003)el directorio directorio predeterminado sin designador de unidad. SYS(5) + SYS(2003) devuelven la unidad y el directorio predeterminados. Ejemplo Ejemplo Set default to z: Set default to z: Vea tambin Vea tambin CD | CHDIR | MD | MKDIR | RD | RMDIR | SET PATH | SYS(5) - Unidad predeterminada | SYS(2003) - Directorio actual CD | CHDIR | MD | MKDIR | RD | RMDIR | SET PATH | SYS(5) - Unidad predeterminada | SYS(2003) - Directorio actual CREATE (Comando) CREATE (Comando) Crea una nueva tabla de Visual FoxPro. Crea una nueva tabla de Visual FoxPro. CREATE [FileName | ?] CREATE [FileName | ?] Parmetros Parmetros FileName FileName Especica el nombre de la tabla que desea crear. Especica el nombre de la tabla que desea crear. ? ? Presenta el cuadro de dilogo Crear, que pide el nombre para la tabla que se va a crear. Presenta el cuadro de dilogo Crear, que lele pide el nombre para la tabla que se va a crear. Observaciones ObservacionesEn Visual FoxPro, si hay una base de datos abierta cuando usted crea una tabla, dicha tabla se se agregar Visual FoxPro, si hay una base de datos abierta cuando usted crea una tabla, dicha tabla agregar

automticamente a la base de datos. En el sistema operativo de Windows, no puede crear una tabla con el nombre de un dispositivo de MS-DOS, como CON, NUL, PRN y COM1. Debe evitar la utilizacin de guiones en el nombre de una tabla porque los nombres de tabla con guiones no aparecen en la ventana Sesin de datos y pueden crear confusin con el puntero de alias (->). Una tabla se crea al denir el nombre, tipo y tamao de cada campo. Una vez creada la estructura de la tabla, puede agregar registros a la tabla. Ejemplo set default to z: create alumnos

Vea tambin ADD TABLE (Comando) | ALTER TABLE - SQL (Comando) | CREATE DATABASE (Comando) | CREATE TABLE - SQL (Comando) | MODIFY STRUCTURE (Comando)

USE (Comando)USE (Comando) Abre una tabla y sus archivos de ndice asociados, o una vista SQL. Abre una tabla y sus archivos de ndice ?] [IN nWorkArea | vista SQL. USE [[DatabaseName!]Table | SQLViewName |asociados, o unacTableAlias] [ONLINE] [ADMIN] [AGAIN] [NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList | ? [ORDER [nIndexNumber | IDXFileName [AGAIN] [NOREQUERY USE [[DatabaseName!]Table | SQLViewName | ?] [IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] | [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE] [nDataSessionNumber]] [NODATA] [INDEX IndexFileList | ? [ORDER [nIndexNumber | IDXFileName | [TAG] TagName [CONNSTRING cConnectionString | (m.nStatementHandle) ] [ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE] [OF CDXFileName] [ASCENDING | DESCENDING]]]] [CONNSTRING Parmetros cConnectionString | (m.nStatementHandle) ] Parmetros [DatabaseName!]TableName

[DatabaseName!]TableName Especica el nombre de la tabla que se va a abrir. Puesto que los espacios en blanco son importantes en los nombres de archivo de Microsoft Windows 98Puesto que losevite usar espacios adicionales en Especica el nombre de la tabla que se va a abrir. y posteriores, espacios en blanco son importantes TableName. Si unde archivo de Microsoft Windows 98 y posteriores,comillas ( espacios adicionales en en los nombres nombre de tabla contiene espacios, escrbalo entre evite usar o ) TableName. Si un nombre de tabla contiene espacios, escrbalo entre comillas ( o ) Para abrir una tabla fuera de la base de datos actual, identique la tabla con el nombre de la base de Para abrir un signo fuera de la base para separar el identi de la tabla con el del nombre de la datos, con una tablade exclamacin (!)de datos actual,nombre quela base de datosnombre de la base de datos, con un signo de exclamacin nombre de base de datos, de la base de datos del nombre tabla. Si no identica una tabla con un(!) para separar el nombre Microsoft Visual FoxPro slo podrde la tabla. Si no identica una tabla con un nombre de base de base Microsoft Visual FoxPro slo podr abrir las tablas de la base de datos actual. Si el nombre de ladatos,de datos, el nombre de la tabla abrir las contienen espacios, escriba el nombre de la base de datos y el datos, el nombre de la tabla o ambos tablas de la base de datos actual. Si el nombre de la base de nombre de la tabla entre o ambos o ) comillas ( contienen espacios, escriba el nombre de la base de datos y el nombre de la tabla entre comillas ( o ) ? ? Muestra el cuadro de dilogo Uso, que le permite elegir una tabla para abrirla. Muestra el cuadro de dilogo Uso, que le permite elegir una tabla para abrirla.

IN nWorkArea IN nWorkArea Especica el rea de trabajo en la que se abre la tabla. Puede cerrar una tabla de un rea de trabajo Especica el ejecutando USE en la clusula IN el nmero del cerrar trabajo. determinada, rea de trabajo conla que se abreyla tabla. Puederea de una tabla de un rea de trabajo determinada, ejecutando USE con la clusula IN y el nmero del rea de trabajo. La clusula IN admite 0 como rea de trabajo. Al incluir 0, se abrir una tabla en el rea de trabajo La clusula IN admite 0 como rea de trabajo. Al incluir 0, se abrir una tabla en el rea de trabajo que tenga el nmero ms bajo. Por ejemplo, si hay tablas abiertas en las reas de trabajo de 1 a 10, el que tenga el nmero ms bajo. Por ejemplo, si hay tablas abiertas en las reas de trabajo de 1 a 10, el siguiente comando abrir la tabla customer en el rea de trabajo 11: siguiente comando abrir la tabla customer en el rea de trabajo 11: USE customer IN 0 USE customer IN 0 IN cTableAlias IN cTableAlias Especica que la tabla se abre en elel rea de trabajo de una tabla que est abierta actualmente. El alias Especica que la tabla se abre en rea de trabajo de una tabla que est abierta actualmente. El alias de la tabla abierta se especica con cTableAlias. de la tabla abierta se especica con cTableAlias. Si omite nWorkArea y y cTableAlias, la tabla se abrir en rea de de trabajo seleccionada actualmente. Si omite nWorkArea cTableAlias, la tabla se abrir en el el rea trabajo seleccionada actualmente. AGAIN AGAIN Para abrir una tabla de forma simultnea enen varias reas de trabajo, puede realizar algunalas las Para abrir una tabla de forma simultnea varias reas de trabajo, puede realizar alguna de de acciones siguientes: acciones siguientes:

Seleccionar otra rea de trabajo y ejecutar USE con el nombre de la tabla y la y la clusula Seleccionar otra rea de trabajo y ejecutar USE con el nombre de la tabla clusula AGAIN. AGAIN. Ejecutar USE con elel nombre de la tablala clusula AGAIN, y especicar un rearea de trabajo Ejecutar USE con nombre de la tabla y y la clusula AGAIN, y especicar un de trabajo distinta con lala clusula IN. distinta con clusula IN.

Cuando vuelva abrir una tabla en otra rea de trabajo, la la tabla la la nueva rea de trabajo tomar Cuando vuelva aa abrir una tabla en otra rea de trabajo, tabla de denueva rea de trabajo tomar los atributos de la tabla del rea de trabajo original. Por ejemplo, si la tabla se abre para acceso de los atributos de la tabla del rea de trabajo original. Por ejemplo, si la tabla se abre para acceso de slo slo lectura o exclusivo, se vuelve a a abrir otra rea de trabajo, la la tabla se abrir el mismo tipo de lectura o exclusivo, y y se vuelve abrir enen otra rea de trabajo,tabla se abrir concon el mismo tipo de

acceso en la nueva rea de trabajo. Los archivos de ndice abiertos para la tabla original estarn disponibles para la tabla que vuelva a abrir si no abre ningn ndice al abrir de nuevo la tabla. El orden de ndice se establecer en 0 en las reas de trabajo donde vuelva a abrir la tabla. Puede abrir ndices que no estuvieran abiertos en la tabla original. El orden de ndice se establece en 0 para la tabla original. A una tabla abierta de nuevo se le asigna el alias predeterminado del rea de trabajo. Puede incluir un alias cada vez que abra una tabla en varias reas de trabajo, siempre y cuando los alias sean nicos. En Visual FoxPro para Windows, al volver a abrir una tabla en otra rea de trabajo no se consume ningn controlador de archivo adicional. NOREQUERY [nDataSessionNumber] Especica que los datos de una vista SQL remota no se vuelvan a descargar. NOREQUERY solamente est disponible para vistas SQL y se suele utilizar cuando se vuelve a abrir una vista SQL, incluyendo la clusula AGAIN. Al incluir la clusula NOREQUERY se mejora el rendimiento de grandes conjuntos de datos porque no es necesario volver a descargar los datos. nDataSessionNumber puede incluirse para especicar que los datos para una vista SQL remota de una sesin de datos determinada no se descarguen de nuevo. Si se omite nDataSessionNumber, los datos no se descargarn para la vista abierta en la sesin de datos actual. Para obtener informacin adicional acerca de la clusula NOREQUERY, vea Crear vistas. NODATA Especica que slo se descargue la estructura de una vista SQL. Los datos de la vista SQL no se descargan. NODATA es el mtodo ms rpido de determinar la estructura de una vista SQL. Para obtener ms informacin acerca de la clusula NODATA, vea Crear vistas. INDEX IndexFileList Especica un conjunto de ndices que se deben abrir junto con la tabla. Si una tabla tiene un archivo de ndice compuesto estructural, el archivo de ndice se abrir automticamente con la tabla. IndexFileList puede contener cualquier combinacin de nombres de archivos de ndice .idx de una sola entrada y .cdx de entrada compuesta. No necesita incluir las extensiones de los nombres de los archivos de ndice, a no ser que haya archivos .idx y .cdx con el mismo nombre en la lista de archivos. El archivo de ndice cuyo nombre aparezca el primero en la lista de archivos de ndice ser el archivo de ndice de control, y controlar cmo se tiene acceso y se muestran los registros de la tabla. Si el primer archivo de ndice es un archivo de ndice compuesto .cdx, se mostrarn los registros de la tabla y se tendr acceso a ellos en el orden fsico de los registros. INDEX ? Muestra el cuadro de dilogo Abrir con una lista de archivos de ndice disponibles entre los que puede elegir. ORDER [nIndexNumber] Especica una etiqueta de archivo de ndice .cdx compuesto o un archivo .idx de ndice de una sola entrada de control principal distinto del primer archivo de ndice o de la primera etiqueta de ndice especicados en IndexFileList.

Los archivos de ndice .idx se numeran primero en el orden en que aparecen en la lista de archivos de ndice. Las de ndice de se archivos de ndice compuesto que aparecen existe alguno) se numeran Los archivosetiquetas .idxlos numeran primero en el orden enestructural (si en la lista de archivos de entonces etiquetas de los archivos de las etiquetas. Por estructural (si existe de todos los archivos ndice. Lasen el orden en que se crearonndice compuesto ltimo, las etiquetas alguno) se numeran de entonces en el orden en que se crearon las etiquetas. Por ltimo, las etiquetas de todos los archivos utilizar ndice compuesto independientes se numeran en el orden en que se crearon. Tambin puede de ndice compuestoespecicar el archivo de ndice o la etiqueta de se crearon.Tambin puede utilizar SET ORDER para independientes se numeran en el orden en que control. Vea SET ORDER para obtener SET ORDER para especicar el archivo de ndice archivos y etiquetas de Vea SET ORDER para obtener ms informacin acerca de la numeracin de o la etiqueta de control. ndice. ms informacin acerca de la numeracin de archivos y etiquetas de ndice. Si nIndexNumber es 0, los registros de la tabla se mostrarn y se tendr acceso a ellos en el orden Si nIndexNumber es 0, y los registros permanecern abiertos. se tendr accesoORDER 0 permitir que fsico de los registros, los registros de la tabla se mostrarn y La inclusin de a ellos en el orden fsico de los registros, y los registros permanecern abiertos. La inclusin delos registros ordenados por todos los archivos de ndice abiertos se actualicen mientras se presentan ORDER 0 permitir que todos los archivos de ndice abiertos sesin nIndexNumber es idntico a incluir ORDER 0. el nmero de registro. Incluir ORDER actualicen mientras se presentan los registros ordenados por el nmero de registro. Incluir ORDER sin nIndexNumber es idntico a incluir ORDER 0. ORDER [IDXFileName] ORDER [IDXFileName] Especica un archivo de ndice .idx de una sola entrada como archivo de ndice de control principal. Especica un archivo de ndice .idx de una sola entrada como archivo de ndice de control principal. ORDER [TAG TagName] [OF CDXFileName] ORDER [TAG TagName] [OF CDXFileName] Especica una etiqueta de control principal en un archivo de ndice .cdx compuesto. El nombre Especica una etiqueta de control principal en un archivo de ndice .cdx compuesto. El nombre de la etiqueta puede ser de un archivo de ndice compuesto estructural o de cualquier archivo de de la etiqueta puede ser de un archivo de ndice compuesto estructural o de cualquier archivo de ndice compuesto que est abierto. Si existen nombres de etiqueta idnticos en los archivos de ndice compuesto que est abierto. Si existen nombres de etiqueta idnticos en los archivos de ndice compuesto abiertos, incluya OF CDXFileName y especique el nombre del archivo de ndice ndice compuesto abiertos, incluya OF CDXFileName y especique el nombre del archivo de ndice compuesto que contiene la etiqueta deseada. compuesto que contiene la etiqueta deseada. ASCENDING ASCENDING Especica que se tiene acceso se muestran los registros de la la tabla en orden ascendente. Especica que se tiene acceso y y se muestran los registros detabla en orden ascendente. DESCENDING DESCENDING Especica que se tiene acceso se muestran los registros de la la tabla en orden descendente. Especica que se tiene acceso y y se muestran los registros detabla en orden descendente. La inclusin de ASCENDING DESCENDING no cambia el el archivo o la etiqueta de ndice: solamente La inclusin de ASCENDING o o DESCENDING no cambia archivo o la etiqueta de ndice: solamente altera el orden en que se muestran y tiene acceso a a registros. altera el orden en que se muestran y sese tiene accesoloslos registros. cTableAlias ALIAS cTableAlias Crea un alias para la tabla. Puede hacer referencia a una tabla por su alias en los comandos y funciones Crea un alias para la tabla. Puede hacer referencia a una tabla por su alias en los comandos y funciones que requieren admiten un alias. que requieren oo admiten un alias.Cuando se abre una tabla, se lele asigna automticamente un alias, queel nombre de la tabla si no se se Cuando se abre una tabla, se asigna automticamente un alias, que es es el nombre de la tabla si no incluye ALIAS. Puede crear un alias nuevo o distinto para la tabla si incluye ALIAS. En Visual FoxPro, un un incluye ALIAS. Puede crear un alias nuevo o distinto para la tabla si incluye ALIAS. En Visual FoxPro, alias puede contener hasta 254 letras, dgitos o signos dede subrayado, y debe comenzar por una letra o alias puede contener hasta 254 letras, dgitos o signos subrayado, y debe comenzar por una letra o un signo de subrayado. En las dems versiones dede FoxPro, los alias pueden contener como mximo 10 un signo de subrayado. En las dems versiones FoxPro, los alias pueden contener como mximo 10 letras, dgitos oo signos de subrayado, deben comenzar por una letra o un signo de subrayado. letras, dgitos signos de subrayado, y y deben comenzar por una letra o un signo de subrayado. Se asigna automticamente un alias predeterminado cuando abre una sola tabla de forma simultnea Se asigna automticamente un alias predeterminado cuando abre una sola tabla de forma simultnea en varias reas de trabajo con AGAIN y no sese especica un alias abrir la tabla en cada rearea de en varias reas de trabajo con AGAIN y no especica un alias al al abrir la tabla en cada de trabajo. trabajo. EXCLUSIVE EXCLUSIVE Abre la tabla para uso exclusivo en una red. Para obtener ms informacin acerca del del uso exclusivo de Abre la tabla para uso exclusivo en una red. Para obtener ms informacin acerca uso exclusivo de tablas, vea SET EXCLUSIVE. tablas, vea SET EXCLUSIVE. SHARED SHARED

Abre una tabla para uso compartido en una red. SHARED permite abrir una tabla para uso compartido, incluso cuando EXCLUSIVE est establecido en ON. NOUPDATE Impide realizar cambios en la tabla y en su estructura. Observaciones Si se ejecuta USE sin un nombre de tabla y est abierto un archivo de tabla en el rea de trabajo actual, la tabla se cerrar. Tambin se cerrar la tabla cuando se abra otra tabla en la misma rea de trabajo. No puede tener abierta ms de una tabla a la vez en una misma rea de trabajo. Ejemplo use use alumnos use z:\alumnos Vea tambin CREATE | CREATE SQL VIEW | CREATE TABLE - SQL | CREATEOFFLINE() | DBF() | INDEX | USED() | Crear vistas | SET EXCLUSIVE APPEND (Comando) Agrega uno o ms registros nuevos al nal de una tabla. APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU] Parmetros BLANK Agrega un registro en blanco al nal de la tabla activa. Visual FoxPro no abre ninguna ventana de edicin cuando usted ejecuta APPEND BLANK. Es posible modicar los nuevos registros con BROWSE, CHANGE o EDIT. IN nWorkArea Especica el rea de trabajo de la tabla a la que se agrega el nuevo registro. IN cTableAlias Especica el alias de la tabla a la que se agrega el nuevo registro. Si omite nWorkArea y cTableAlias, se agregar un nuevo registro a la tabla en el rea de trabajo seleccionada actualmente. Si ejecuta APPEND, se agregar un registro en blanco a la tabla especicada mediante nWorkArea o cTableAlias, y la tabla se seleccionar automticamente. Si ejecuta APPEND BLANK, se agregar un registro en blanco a la tabla especicada con nWorkArea o cTableAlias, y la tabla no se seleccionar. NOMENU Especica que se eliminar el ttulo de men Tabla de la barra de mens del sistema, lo que impide efectuar cambios en el formato de la ventana de edicin. Observaciones El cuadro de dilogo Abrir aparece cuando ejecuta APPEND o APPEND BLANK y no hay una tabla abierta en el

rea de trabajo activa. Elija una tabla para agregar registros. APPEND abre una ventana de edicin para que pueda escribir datos en uno o varios registros nuevos. Cuando agregue un nuevo registro, Visual FoxPro actualizar cualquier ndice que haya abierto. Ejemplo append blank append && Adiciona un registro en blanco && Adiciona un registro y lo edita en blanco

Vea tambin APPEND FROM ARRAY | BROWSE | CHANGE | EDIT | INSERT - SQL | REPLACE BOF() (Funcin) Determina si el puntero de registro est situado al principio de una tabla. BOF([nWorkArea | cTableAlias]) Valores devueltos Lgico Parmetros nWorkArea Especica el nmero del rea de trabajo para una tabla abierta en otra rea de trabajo. cTableAlias Especica el alias para una tabla abierta en otra rea de trabajo.

Si la tabla cuya condicin de principio de archivo desea probar est abierta en un rea de trabajo distinta de la seleccionada actualmente, utilice estos argumentos opcionales para especicar el nmero del rea de trabajo o el alias para la tabla. Si no hay ninguna tabla abierta en el rea de trabajo especicada, BOF() devolver Falso (.F.). Observaciones Utilice BOF() para probar la condicin de principio de archivo de una tabla. BOF() devuelve Verdadero (.T.) si ha intentado mover el puntero de registro a una posicin anterior al primer registro de la tabla. Vea tambin EOF() | FEOF() (Funcin) | _FEOF() (Rutina de biblioteca API) EOF() (Funcin) Determina si el puntero de registro est situado o no ms all del ltimo registro de la tabla actual o especicada. EOF([nWorkArea | cTableAlias]) Valores devueltos Logical Parmetros nWorkArea Especica el nmero de rea de trabajo de la tabla. cTableAlias Especica el alias de la tabla. EOF() devuelve falso (.F.) si no est abierta una tabla en un rea de trabajo que especique. Si no especica un alias de rea de trabajo, se probar la condicin de nal de archivo en la tabla abierta en el rea de trabajo seleccionada. Observaciones EOF() devuelve verdadero (.T.) si el puntero de registro alcanza el nal del archivo de tabla (EOF). El nal de la tabla se alcanza cuando el puntero del registro transere el ltimo registro de la tabla. Por ejemplo, cuando se ejecuta FIND, LOCATE o SEEK sin xito, Visual FoxPro mueve el puntero de registro hasta despus del ltimo registro, y EOF() devuelve verdadero (.T.). EOF() devuelve falso (.F.) si el puntero del registro no est al nal de la tabla. Vea tambin BOF() | GO | GOTO | SKIP

Si la tabla cuya condicin de principio de archivo desea probar est abierta en un rea de trabajo distinta de cuya condicin actualmente, de archivo desea probar opcionales para un reacar el Si la tabla la seleccionada de principio utilice estos argumentos est abierta en especi de trabajo nmero del reaseleccionada actualmente, utilice estos argumentosabierta en el rea deespecicar el distinta de la de trabajo o el alias para la tabla. Si no hay ninguna tabla opcionales para trabajo especicada, rea de trabajo o el alias para la tabla. Si no hay ninguna tabla abierta en el rea de trabajo nmero del BOF() devolver Falso (.F.).especicada, BOF() devolver Falso (.F.).

Observaciones

Observaciones intentado mover el puntero de registro a una posicin anterior al primer registro de la tabla. Vea tambin EOF() | FEOF() (Funcin) | _FEOF() (Rutina de biblioteca API) EOF() (Funcin)

Utilice BOF() para probar la condicin de principio de archivo de una tabla. BOF() devuelve Verdadero (.T.) si ha Utilice BOF() para puntero condicin de principio de archivo primer tabla. BOF() tabla. intentado mover elprobar lade registro a una posicin anterior al de una registro de ladevuelve Verdadero (.T.) si ha Vea tambin

EOF() | FEOF() (Funcin) | _FEOF() (Rutina de biblioteca API) EOF() (Funcin)

Determina si el puntero de registro est situado o no no ms all del ltimo registrolade la tabla actual o tabla actual o Determina si el puntero de registro est situado o ms all del ltimo registro de especicada. especicada. EOF([nWorkArea | |cTableAlias]) EOF([nWorkArea cTableAlias]) Valores devueltos Valores devueltos Logical LogicalParmetros Parmetros nWorkArea nWorkArea Especica el nmero de rea trabajo de la la tabla. Especica el nmero de rea dede trabajo detabla. cTableAlias cTableAlias

Especica el alias de la tabla.

Especica el alias de la tabla. EOF() devuelve falso (.F.) si no est abierta una tabla en un rea de trabajo que especique. Si no especica un alias de rea de trabajo, se probar la condicin de nal de archivo en la tabla

EOF() devuelve falso (.F.) si no est abierta una tabla en un rea de trabajo que especique.

Si no especica un de trabajo seleccionada.se probar la condicin de nal de archivo en la tabla abierta en el rea alias de rea de trabajo, abierta en el rea de trabajo seleccionada. ObservacionesObservaciones

EOF() devuelve verdadero (.T.) si el puntero de registro alcanza el nal del archivo de tabla (EOF). El nal de la

EOF() se alcanza cuando el puntero del registro transere el ltimo registro de detabla. (EOF). El nal de la se tabla devuelve verdadero (.T.) si el puntero de registro alcanza el nal del archivo la tabla Por ejemplo, cuando ejecuta FIND, LOCATE el puntero xito, Visual FoxPro el ltimo puntero de tabla. Por ejemplo, cuando se tabla se alcanza cuandoo SEEK sin del registro transere mueve elregistro de la registro hasta despus del ltimo registro, y EOF() devuelve verdadero Visual FoxPro mueve el puntero el registro del registro no est al ejecuta FIND, LOCATE o SEEK sin xito, (.T.). EOF() devuelve falso (.F.) si de puntero hasta despus del ltimonal de la tabla. y EOF() devuelve verdadero (.T.). EOF() devuelve falso (.F.) si el puntero del registro no est al nal de registro, la tabla.Vea tambin

Vea tambin

BOF() | GO | GOTO | SKIP GO | GOTO (Comando)

BOF() | GO | GOTO | SKIP

GO | GOTO (Comando)registro en el nmero de registro especicado de una tabla. Coloca el puntero deGO [RECORD] nRecordNumber [IN nWorkArea | registro especi Coloca el puntero de registro en el nmero deIN cTableAlias] cado de una tabla.

GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]

O bien GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias] O bien GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias] O bien GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias] Parmetros RECORD nRecordNumber Especica el nmero de registro fsico al que desea mover el puntero de registro. Puede omitir por completo GO o GOTO y especicar simplemente el nmero de registro. Si especica solamente el nmero de registro, podr mover el puntero solamente en el rea de trabajo actual. IN nWorkArea Especica el rea de trabajo de la tabla en la cual se mueve el puntero de registro. IN cTableAlias Especica el alias de la tabla en la cual se mueve el puntero de registro. TOP Sita el puntero de registro en el primer registro de la tabla. Si la tabla tiene en uso un ndice ascendente, el primer registro ser el registro con el valor clave ms bajo. Si el ndice est en orden descendente, el primer registro ser el registro con el valor clave ms alto. BOTTOM Sita el puntero de registro en el ltimo registro de la tabla. Si la tabla tiene activo un ndice ascendente, el ltimo registro ser aqul con el valor de clave ms elevado. Si el ndice est en orden descendente, el ltimo registro ser el que tenga el menor valor de clave. Observaciones GO y GOTO pueden utilizarse indistintamente. Estos comandos actan sobre la tabla del rea de trabajo actual a menos que especique otra rea de trabajo con la clusula IN. Ejemplo go top go bottom go 5 skip 1 ? recno() skip -2 skip Vea tambin RECNO() | SELECT | SKIP SKIP (Comando)

Mueve el puntero de registro hacia adelante o hacia atrs en una tabla. SKIP [nRecords] [IN nWorkArea | cTableAlias] Parmetros nRecords Especica el nmero de registros que hay que mover el puntero. Si ejecuta SKIP sin nRecords, el puntero avanzar al siguiente registro. El puntero de registro se mueve hacia el nal del archivo nRecords si nRecords tiene un valor positivo. El puntero de registro se mover hacia el principio del archivo nRecords si nRecords tiene un valor negativo. Si el puntero de registro est colocado en el ltimo registro de una tabla y se ejecuta SKIP sin argumentos, RECNO() devolver un valor superior en uno al nmero de registros de la tabla y EOF() devolver verdadero (.T.). Si el puntero de registro est colocado en el primer registro de una tabla y se ejecuta SKIP -1, RECNO() devolver 1 y BOF() devolver (.T.). IN nWorkArea | cTableAlias Mueve el puntero de registro en una tabla de un rea de trabajo especca. nWorkArea especica el nmero del rea de trabajo y cTableAlias especica el alias de una tabla o de un rea de trabajo. Observaciones Si la tabla tiene una etiqueta de ndice de control principal o un archivo de ndice, SKIP mueve el puntero de registro al registro determinado por la secuencia de ndice. Ejemplo clear skip 4 ? recno() go bottom skip -5 ? recno() Vea tambin GO | GOTO | SET SKIP | CLEAR (Comandos) RECNO() (Funcin) Devuelve el nmero del registro actual de la tabla actual o la especicada. RECNO([nWorkArea | cTableAlias]) Valores devueltos Numrico Parmetros nWorkArea Especica el nmero del rea de trabajo para una tabla abierta en otra rea de trabajo. Si no est abierta ninguna tabla en el rea de trabajo que especica, RECNO() devolver cero. cTableAlias

Especica el alias para una tabla abierta en otra rea de trabajo. Observaciones El registro actual es el registro en el cual se encuentra el puntero de registro. RECNO() devuelve nmeros negativos para registros anexados en un bfer de tablas. RECNO() devuelve un valor que es el nmero de registros de la tabla ms uno si el puntero de registro se encuentra mas all del ltimo registro de la misma. RECNO() devuelve 1 si el puntero de registro se encuentra antes del primer registro de la tabla. Si la tabla no tiene registros, EOF() siempre devolver verdadero (.T.). Ejecutar RECNO() sin los argumentos opcionales nWorkArea o cTableAlias devuelve el nmero de registro actual de la tabla situada en el rea de trabajo seleccionada actualmente. Si ha ejecutado SEEK sin xito en una tabla indizada, puede especicar 0 para que nWorkArea utilice la lgica de bsqueda cercana para devolver el nmero del registro ms similar. RECNO(0) devuelve 0 si no puede encontrarse ninguna coincidencia. Visual FoxPro generar un mensaje de error si ejecuta GO RECNO(0) y no se encuentra ninguna coincidencia. Ejemplo use alumnos skip 4 ? recno() Vea tambin GO|GOTO | RECCOUNT() | RECSIZE() | SEEK | SKIP RECCOUNT() (Funcin) Devuelve el nmero de registros de la tabla actual o especicada. RECCOUNT([nWorkArea | cTableAlias]) Valores devueltos Numrico Parmetros nWorkArea Especica el nmero del rea de trabajo para una tabla abierta en otra rea de trabajo. Si no hay ninguna tabla abierta en el rea de trabajo especicada, RECCOUNT() devolver cero. cTableAlias Especica el alias para una tabla abierta en otra rea de trabajo. Observaciones El valor devuelto por RECCOUNT() no se ve afectado por SET DELETED y SET FILTER. RECCOUNT() sin los argumentos opcionales nWorkArea o cTableAlias devuelve el nmero de registros de la tabla del rea de trabajo seleccionada actualmente. Ejemplo

use alumnos use alumnos ? reccount() ? reccount() use use tambin Vea tambin RECNO() RECSIZE() SET DELETED | SET FILTER RECNO() || RECSIZE() | |SET DELETED | SET FILTER LOCATE (Comando) LOCATE (Comando) Busca secuencialmente en tabla el primer registro que coincida con la la expresin lgica especicada. Busca secuencialmente en lala tabla el primer registro que coincida conexpresin lgica especicada. LOCATE [FOR lExpression1] [Scope] [WHILE] [NOOPTIMIZE] LOCATE [FOR lExpression1] [Scope] [WHILE] [NOOPTIMIZE] Parmetros Parmetros lExpression1 FOR lExpression1 LOCATE busca secuencialmente en tabla actual el el primer registro coincida con la expresin LOCATE busca secuencialmente en la la tabla actual primer registro queque coincida con la expresin lgica lExpression1. lgica lExpression1. Rushmore optimizar una consulta creada con LOCATE FOR si lExpression1 es expresin Rushmore optimizar una consulta creada con LOCATE FOR si lExpression1 es una una expresin optimizable. Para obtener mximo rendimiento, utilice una expresin optimizable en en la clusula optimizable. Para obtener elel mximo rendimiento, utilice una expresin optimizablela clusula FOR. FOR. Si desea obtener ms informacin, vea SET OPTIMIZE y Utilizar optimizacin de consultas Rushmore Si desea obtener ms informacin, vea SET OPTIMIZE y Utilizar optimizacin de consultas Rushmore para acelerar el acceso de datos. para acelerar el acceso de datos. Scope Scope Especica el intervalo de objetos que buscar. Solamente se se buscarn los registros incluidos Especica el intervalo de objetos que sese buscar. Solamente buscarn los registros incluidos en en el intervalo. Las clusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. el intervalo. Las clusulas de alcance son: ALL, NEXT nRecords, RECORD nRecordNumber y REST. Los Los comandos que incluyen Scope slo actan sobre la tabla rea de de trabajo activa. comandos que incluyen Scope slo actan sobre la tabla deldel rea trabajo activa. El alcance predeterminado de LOCATE ALL (todos los registros). El alcance predeterminado de LOCATE eses ALL (todos los registros). WHILE lExpression2 WHILE lExpression2 Especica una condicin por cual se buscan los registros siempre y cuando la expresin lgica Especica una condicin por la la cual se buscan los registros siempre y cuando la expresin lgica lExpression2 d como resultado verdadero (.T.). lExpression2 d como resultado verdadero (.T.). NOOPTIMIZE NOOPTIMIZE Desactiva la optimizacin Rushmore LOCATE. Desactiva la optimizacin Rushmore dede LOCATE. Si desea obtener ms informacin, vea SET OPTIMIZE y Utilizar optimizacin de consultas Rushmore Si desea obtener ms informacin, vea SET OPTIMIZE y Utilizar optimizacin de consultas Rushmore para acelerar el acceso de datos. para acelerar el acceso de datos. Observaciones Observaciones es necesario que la tabla est indizada. No es necesario que la tabla est indizada. utiliza el comando LOCATE sin expresin FOR, Visual FoxPro coloca el el puntero registro en en el primer Si utiliza el comando LOCATE sin lala expresin FOR, Visual FoxPro colocapuntero del del registroel primer registro lgico. Esto es ms rpido que utilizar GO TOP cuando se se utiliza un ltro o cuando DELETED est registro lgico. Esto es ms rpido que utilizar GO TOP cuando utiliza un ltro o cuando DELETED est establecido a ON. establecido a ON.Si LOCATE encuentra un registro coincidente, podr utilizar RECNO() para devolver el nmero del registro LOCATE encuentra un registro coincidente, podr utilizar RECNO() para devolver el nmero del registro coincidente. Si se encuentra un registro coincidente, FOUND() devolver verdadero (.T.) (.T.) y EOF() devolver falso coincidente. Si se encuentra un registro coincidente, FOUND() devolver verdadero y EOF() devolver falso (.F.). Si SET TALK est establecido en ON, sese mostrar nmero deldel registro coincidente. Si SET TALK est establecido en ON, mostrar el el nmero registro coincidente. Despus de que LOCATE encuentre un registro coincidente, puede ejecutar CONTINUE parapara buscar registros Despus de que LOCATE encuentre un registro coincidente, puede ejecutar CONTINUE buscar registros

coincidentes adicionales en el resto de la tabla. Cuando se ejecuta CONTINUE, se reanuda el proceso de bsqueda a partir del registro que sigue inmediatamente al registro coincidente. Puede ejecutar CONTINUE repetidamente hasta llegar al nal del alcance o de la tabla. Si no se encuentra ninguna coincidencia, RECNO() devolver el nmero de registros de la tabla ms uno, FOUND() devolver falso (.F.) y EOF() devolver verdadero (.T.). LOCATE y CONTINUE son especcos del rea de trabajo actual. Si se selecciona otra rea de trabajo, el proceso de bsqueda original podr continuarse cuando se vuelva a seleccionar el rea de trabajo original. Ejemplo En el ejemplo siguiente se encuentran los registros correspondientes al alumno Amparo. A continuacin se muestra el nmero total. use alumnos set talk o store 0 to contador && contador = 0 locate for Amparo $ nombre do while found() contador = contador + 1 ? nombre continue enddo ? Total alumnos que contienen Amparo en el nombre + alltrim(str(contador)) Vea tambin CONTINUE | EOF() | FIND | FOUND() | INDEXSEEK() | RECNO() | SEEK | SEEK() | SET OPTIMIZE CONTINUE (Comando) Contina el comando LOCATE previo. CONTINUE Observaciones CONTINUE se utiliza despus de que LOCATE tenga xito al encontrar un registro, para continuar la operacin de bsqueda. CONTINUE desplaza el puntero de registro al siguiente registro para el que la expresin lgica especicada en el comando LOCATE previo d como resultado verdadero (.T.). CONTINUE puede repetirse hasta que se encuentre el nal del archivo o hasta que se llegue al nal del alcance especicado en LOCATE. Si CONTINUE tiene xito al encontrar un registro, RECNO() devolver el nmero del registro, FOUND() devolver el valor Verdadero (.T.) y EOF() devolver el valor Falso (.F.). Si CONTINUE no tiene xito al buscar un registro, RECNO() devolver el nmero de registros de la tabla ms uno, FOUND() devolver Falso (.F.) y EOF() devolver Verdadero (.T.). Vea tambin EOF() | FOUND() | LOCATE | SEEK $ (Operador) Devuelve verdadero (.T.) si una expresin de caracteres est contenida dentro de otra expresin de caracteres;

de lo contrario, devuelve falso (.F.). cSearchFor $ cSearchIn Valores devueltos Lgico Parmetros cSearchFor Especica la expresin buscada en cSearchIn. cSearchIn Especica la expresin en que se busca para comprobar si contiene cSearchFor. Si en cSearchFor se encuentra cSearchIn, $ devolver verdadero (.T.); de lo contrario, devolver falso (.F.). cSearchFor y cSearchIn pueden ser variables o elementos de matriz de tipo carcter, campos de tipo carcter, literales de cadena de caracteres o campos memo de cualquier longitud. Los campos memo pueden manipularse de la misma forma que las expresiones de caracteres, los campos de tablas, las variables o los elementos de matriz. Por ejemplo, si MEMO_FLD es un campo memo, lo siguiente ser aceptable: LIST FOR FOX $ UPPER(memo_d) Observaciones Si no se encuentra la expresin de caracteres, se devolver falso (.F.). El operador $ distingue maysculas de minsculas y no es optimizable mediante Rushmore. Ejemplo En el ejemplo siguiente se encuentran los registros correspondientes al alumno Amparo. A continuacin se muestra el nmero total. use alumnos set talk o store 0 to contador && contador = 0 locate for Amparo $ nombre do while found() contador = contador + 1 ? nombre continue enddo ? Total alumnos que contienen Amparo en el nombre + alltrim(str(contador)) Vea tambin % (Operador) | DELETE FILE (Comando) | CREATE TABLE - SQL (Comando) | Utilizar optimizacin de consultas Rushmore para acelerar el acceso de datos | AT() | Operadores | ATLINE() | RAT() | RATLINE() | OCCURS() | INLIST() (Funcin) DO WHILE ... ENDDO (Comando) Ejecuta un conjunto de comandos dentro de un bucle condicional. DO WHILE lExpression

Commands [LOOP] [EXIT] ENDDO Parmetros lExpression Especica una expresin lgica cuyo valor determina si se debe ejecutar el conjunto de comandos incluido entre DO WHILE y ENDDO. Siempre que lExpression d como resultado verdadero (.T.), el conjunto de comandos se ejecutar. Commands Especica el conjunto de comandos de Visual FoxPro que se ejecutan siempre y cuando lExpression d como resultado verdadero (.T.). LOOP Devuelve el control del programa directamente a DO WHILE. LOOP se puede situar en cualquier lugar entre DO WHILE y ENDDO. EXIT Transere el control del programa desde el interior del bucle DO WHILE hasta el primer comando situado detrs de ENDDO. EXIT puede situarse en cualquier lugar entre DO WHILE y ENDDO. Observaciones Un conjunto de comandos situados entre DO WHILE y ENDDO se ejecuta siempre y cuando el valor de la expresin lgica lExpression sea verdadero (.T.). Una instruccin DO WHILE debe tener su correspondiente instruccin ENDDO. Puede situar observaciones despus de DO WHILE y ENDDO en la misma lnea. Estos observaciones se pasan por alto durante la compilacin y ejecucin del programa. Ejemplo En el ejemplo siguiente se encuentran los registros correspondientes al alumno Amparo. A continuacin se muestra el nmero total. use alumnos set talk o store 0 to contador && contador = 0 locate for Amparo $ nombre do while found() contador = contador + 1 ? nombre continue enddo ? Total alumnos que contienen Amparo en el nombre + alltrim(str(contador)) Vea tambin DO CASE ... ENDCASE | FOR EACH ... ENDFOR | FOR ... ENDFOR | IF ... ENDIF | IIF() | SCAN ... ENDSCAN FOUND() (Funcin) Devuelve verdadero (.T.) si CONTINUE, FIND, INDEXSEEK(), LOCATE o SEEK tienen xito.

FOUND([nWorkArea | cTableAlias]) Valores devueltos Lgico Parmetros nWorkArea Especica el rea de trabajo de la tabla sobre la cual FOUND() devuelve el valor indicando si ha tenido xito el ltimo comando CONTINUE, FIND, INDEXSEEK(), LOCATE o SEEK. FOUND() devuelve falso (.F.) si la tabla no esta abierta en el rea de trabajo especicada. cTableAlias Especica el alias de la tabla sobre la cual FOUND() devuelve el valor indicando si ha tenido xito el ltimo comando CONTINUE, FIND, INDEXSEEK(), LOCATE, o SEEK. Visual FoxPro genera un mensaje de error si especica un alias de tabla que no existe. Observaciones FOUND() devuelve un valor lgico que indica si el comando mas recientemente ejecutado CONTINUE, FIND, INDEXSEEK(), LOCATE o SEEK ha tenido xito, o si el puntero de registro se ha movido en la tabla relacionada. FOUND() devuelve verdadero (.T.) si la busqueda se ha realizado con xito; en caso contrario FOUND() devuelve falso (.F.). Si se omiten los argumentos opcionales, FOUND() devuelve un valor indicando el xito del ltimo comando CONTINUE, FIND, INDEXSEEK(), LOCATE o SEEK para la tabla abierta en el rea de trabajo actual. Sugerencia Esta funcin es til para determinar si una tabla secundaria tiene un registro que coincide con el registro primario. Ejemplo En el ejemplo siguiente se encuentran los registros correspondientes al alumno Amparo. A continuacin se muestra el nmero total. use alumnos set talk o store 0 to contador && contador = 0 locate for Amparo $ nombre do while found() contador = contador + 1 ? nombre continue enddo ? Total alumnos que contienen Amparo en el nombre + alltrim(str(contador)) Vea tambin CONTINUE | EOF() | FIND | INDEXSEEK() | LOCATE | SEEK STORE (Comando) Almacena datos en una variable, en una matriz o en un elemento de matriz. STORE eExpression TO VarNameList | ArrayNameList-or- VarName | ArrayName = eExpression Parmetros

eExpression Especica una expresin cuyo valor se almacena en la variable, la matriz o el elemento de matriz. Si no existe la variable, se crea y se inicializa en eExpression. Una matriz debe estar denida previamente con DIMENSION. STORE sustituye el valor de una variable, matriz o elemento de matriz existente con el valor nuevo. VarNameList Especica una lista de variables o elementos de matriz en los que se almacena eExpression. Separe los nombres o elementos de matriz con comas. ArrayNameList Especica una lista de nombres de matrices existentes en las que se almacena eExpression. Separe con comas el nombre de las matrices. STORE inicializa cada elemento de las matrices con el valor especicado si SET COMPATIBLE est establecido en OFF. STORE almacena el valor especicado en variables de memoria con los nombres especicados si SET COMPATIBLE est establecido en ON y sobrescribe las matrices existentes que tengan esos nombres. Observaciones Una alternativa a STORE es el signo igual (=). La variable, la matriz o el elemento de matriz debe estar a la izquierda del signo igual, y su valor a la derecha. Las fechas pueden almacenarse directamente en variables, matrices o elementos de matriz mediante llaves. store {^1998-12-25} to gdxmas El nmero mximo de variables o matrices que puede crear se muestra en el tema Capacidades del sistema. El lmite se puede aumentar o reducir en el archivo de conguracin de Visual FoxPro. Para obtener ms informacin acerca de la conguracin de Visual FoxPro, vea Personalizar el entorno de Visual FoxPro. Ejemplo store date() to gddate store 50 to gnnumeric store hello to gccharacter store .t. to gllogical store $19.99 to gycurrency dimension gamyarray(2,2) set compatible off store 2 to gamyarray Vea tambin DIMENSION | SET COMPATIBLE | Capacidades del sistema | Personalizar el entorno de Visual FoxPro VAL() (Funcin) Devuelve un valor numrico a partir de una expresin de caracteres compuesta por nmeros. Puede usar VAL() para convertir cadenas de caracteres devueltas por las funciones SYS() de Visual FoxPro en valores numricos. VAL(cExpression) Parmetros cExpression

Especica una expresin de caracteres compuesta por un mximo de 16 nmeros. Si en cExpression Especica una expresin de caracteres compuesta por un mximo de 16 nmeros. Si en cExpression se incluyen ms de 16 nmeros, se redondear. se incluyen ms de 16 nmeros, se redondear. Si el primer carcter de cExpr