Está en la página 1de 13

Visual FoxPro

Es un lenguaje de programacin orientado a objetos y procedural, un Sistema Gestor de Bases de datos o Database Management System (DBMS), y desde la versin 7.0, un Sistema administrador de bases de datos relacionales, producido por Microsoft.

Caractersticas
Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web. Entre sus caractersticas se pueden enumerar: Capacidades poderosas y muy veloces para el manejo de datos nativos y remotos. Flexibilidad para crear todo tipo de soluciones de bases de datos. Lenguaje de Programacin Orientado a objetos. Utilizacin de Sentencias SQL en forma nativa. Poderoso manejo de vistas, cursores y control completo de estructuras relacionales. Su propio gestor de base de datos incorporado. Sin embargo, tambin puede conectarse con servidores de base de datos, tales comoOracle, Microsoft SQL Server o MySQL. Cuenta con un motor de generacin de informes renovado y muy flexible para soluciones ms robustas. Desde la versin 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reports en formato XML. Desde la versin 7.0, soporte de la tecnologa IntelliSense de Microsof

La ltima versin liberada es la 9.0. Se plane inicialmente la salida de una nueva versin llamada 'Sedna', la cual pretenda ser un poderoso y completo lenguaje interactuando an ms con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12, teniendo a su vez soporte para Windows Vista. Posteriormente se supo que no habr una prxima versin (Mensaje a la comunidad VFP). Microsoft ha cancelado su desarrollo y lanz lo que han hecho hasta ahora como add-ons en conjunto con el service pack 2 ambos por el momento en versin Beta (SP2 y "Sedna" - Beta). Igualmente, segn las polticas de soporte de Microsoft, ste continuar dando soporte al producto hasta el ao 2015. Hay un movimiento MasFoxPro que est haciendo presin para que Microsoft contine o deje el Visual FoxPro como cdigo abierto para que otra gente pueda seguir evolucionndolo. La versin 9.0 de Visual FoxPro cuenta con el SP1 y el (ms reciente) SP2 (en ingls) en los que hay algunas nuevas caractersticas y especialmente brindan estabilidad al producto.

Historia

Visual FoxPro proviene de FoxPro, que a su vez deriva de FoxBASE, creado por Fox Technologies en 1984; inicialmente un compilador dedBase, acab superndolo y con Clipper, convirtindose en una de las estrellas de los lenguajes xBase. Fox Technologies fue adquirido porMicrosoft en 1992. Visual FoxPro 3.0, fue la primera versin Visual, redujo su compatibilidad a solo Mac y Windows (La ltima versin de FoxPro (2.6) corra enMS-DOS, MS Windows, Mac OS y UNIX), versiones posteriores fueron solo para Windows. La versin actual se basa en archivos COM y Microsoft ha declarado que no piensan crear una versin .NET. En la versin 5.0 se integra en Microsoft Visual Studio aadindosele el soporte de Microsoft Source Safe. Hasta entonces es visto tpicamente por el pblico como meramente un Sistema de gestin de base de datos (SGBD), ignorando el hecho de que no solo incluye el entorno SGBD, sino un completo lenguaje de programacin. Visual FoxPro 6.0, publicado en 1999, no supone un cambio radical respecto de la anterior versin sino nicamente una mejora en sus diversas funcionalidades y una adaptacin al mundo internet y al mundo de los objetos. Esta versin hace ms atractivo a los desarrolladores el tratamiento de los datos en los entornos COM. Es un paso ms en la evolucin de este producto desde un entorno de aplicaciones monousuario o de redes pequeas centradas en los datos hacia una herramienta orientada a objeto diseada para la construccin de la lgica del negocio en los entornos multi-tier con una fuerte orientacin hacia los tratamientos intensivos de datos en Internet. Pese a su relativa antigedad, es hoy todava ampliamente utilizado en grandes empresas (por ej., la compaa de seguros Mapfre) por su estabilidad. Visual FoxPro 7.0, publicado en 2001, supuso su salida de Visual Studio, pues aunque en un principio se pensaba incluir a Fox en .NET, no era posible sin romper con la herencia de anteriores versiones. Esta versin incorpor por primera vez el IntelliSense, y se mejor el manejo de arrays, acercndolo al de cursores. A finales del 2002, algunos miembros de comunidades demostraron que Visual FoxPro puede correr en Linux usando un reimplememtador del API de Windows (Win16 y Win32) llamado Wine. En el 2003, esto llevo a quejas de Microsoft: se dijo que el desarrollo de cdigo de FoxPro para rutinas en mquinas no-Windows viola el Acuerdo de Licencia de Usuario Final. Los rumores de que Microsoft planea terminar el soporte para FoxPro han sido comunes desde su adquisicin del producto, a pesar del hecho de que ste ha tenido el tiempo de vida de soporte ms largo para un producto de Microsoft (hasta el 2014). VFP 9 fue lanzado el 17 de diciembre del 2004 y el equipo de Fox luego trabaj en un proyecto cuyo nombre clave fue Sedna. Este fue construido sobre el cdigo base de VFP 9 y consisti principalmente en componentes Xbase que soportando un nmero de escenarios interoperables con varias tecnologas de Microsoft incluyendo SQL Server 2005, .NET, WinFX, Windows Vista y Office 12. Lamentablemente el proyecto no prosper y fue cancelado por Microsoft.

Visual Foxpro no va a desaparecer ya que una empresa llamada etecnologia "www.etecnologia.net" ha desarrollado el .NET EXTENDER que permite utilizar el .net framework en visual foxpro, y han anunciado que a finales del 2009 van a sacar su "VFP Developer Studio" herramienta la cual convierte a VFP en un lenguaje .Net. este producto est soportando el 92 por ciento de los comandos y funciones de VFP al 31 de mayo del 2009 y se puede comprar por $250.00. No obstante, siempre parece el patito feo de los productos Microsoft. Solicitar informacin sobre l en cualquier stand oficial de una feria informtica como el espaol SIMO supone que se deba preguntar al menos a 3 personas, y muchas veces el usuario de Fox dispone de mayor informacin que los empleados (azafatas) presentes en l. Son varios los testimonios de visitas a empresas por parte de delegaciones de la central de Microsoft que no han sabido reconocer el producto como propio o lo han confundido con Visual Basic. En la actualidad, a pesar que Microsoft ha decicido no continuar con Microsoft Visual FoxPro, la gran comunidad que poseen los desarrolladores de Fox son muchsimos en todo el mundo, sin duda es una de las comunidades ms importantes en el mundo de la programacin e incluso lograron traducir al espaol la versin 8.0. Comunidades como PortalFox y Mundo Visual FoxPro son las ms importantes entre los desarrolladores de habla hispana. La gran mayora de programadores Visual FoxPro se resisten a dejar de programar en este lenguaje porque consideran que es una herramienta muy poderosa, verstil y robusta que les permite crear aplicaciones tan poderosas y hasta ms estables que las creadas por otros lenguajes. Incluso programadores que han tenido la oportunidad de desarrollar tanto en Visual Basic.NET y Visual FoxPro 9.0 coinciden que FoxPro es largamente superior en cuanto a practicidad y flexibilidad al momento de programar. Algunos miembros de la comunidad acusaron a Microsoft de "matar" a Visual FoxPro por el simple hecho que era ms poderoso que su producto "el engredo Visual Basic". 1. Crear tablas Determinar su nombre y definir su estructura indicando el nombre, tipo y longitud de cada campo. CREA <dbf / ?> [FROM <archivo>] 2. Usar Abrir una tabla y activar un ndice en determinada rea. USE [<dbf>] [ALIAS <alias>] [IN <area>] [ORDE <tag>] [ASCENDING|DESCENDING] [AGAIN] [EXCLUSIVE/SHARED] [NOUPDATE] CLOSE DATABASE = Cierra todas las tablas activas y selecciona como activa el area numero 1. Algunas funciones tiles: DBF([<area>|<alias>]) --> da el nombre de la tabla en uso. ALIAS([<area>]) --> da el nombre del alias de una tabla.

FCOUNT([<area>|<alias>]) --> da nmero de campos. FIELD(<#>[<area>|<alias>]) --> da el nombre del campo. FSIZE(#) --> Da el tamao de los campos que corresponden a un registro HEADER(#) --> La longitud de la cabecera de una tabla SELECT(0/1) --> Con 0 retorna el # del area activa y con 1 retorna el # del area mas alta no usada aun. 3. Mostrar estructura LIST STRU [NOCONSOLE] [TO PRIN | TO FILE <txt>] DISP STRU [NOCONSOLE] [IN <area>] [TO PRIN | TO FILE <txt>] 4. Estructura MODI STRU = modifica la estructura de la tabla activa COPY STRU TO <archivo> FIELD <campos> [EXTENDED] 5. Buscar tablas DIR [ON <d:>][LIKE[<ruta>][<skel>]][TO PRINTER | TO FILE <txt>] 6. Areas de trabajo FoxPRO puede manejar 225 reas (solo 25 en versin estndar), en cada una de las cuales puede abrir una tabla y mantener separadamente la posicin del puntero. De forma predeterminada, el rea de trabajo nmero 1 (A) est activa cuando se inicia FoxPRO. Puede especificar un rea de trabajo distinta con: SELE <#>. Si <#> es 0, se seleccionar el rea de trabajo libre cuyo nmero sea inferior. SELECT(0) --> Da el # del rea de trabajo activa SELECT(1) --> Da el # del rea de trabajo libre mas alta USED([<#>]) --> da .T. si rea est ocupada o .F. si esta libre. 7. Formas de visualizacion SET STATUS OFF/on --> Muestra o no la barra de estado SET HEADER ON/off --> Determina si se usara el concabezado o no en LIST, DISP y CALC SET DATE TO [ DMY / MDY / YMD ] --> Especifica el fomato de las fechas SET CENTURY OFF/on --> Determina si usa 2 (default) o 4 digitos para representar los aos. SET DECIMALS TO <#> --> Especifica el numero de decimales para las expresiones numerias (0 a 18) SET FIXED SET MESSAGE TO [<#> / LEFT / CENTER / RIGHT] [WINDOW <nombre>] SET STICKY ON/off --> Especifica como el mouse mostrara los menus de foxPRO. SET TALK ON/off --> Especifica si se mostara o no los comandos ejecutados desde la ventana de comandos. Capitulo 4 Manejo de registros 1. Aadir registros APPE [BLANK][FROM<dbf>[FIEL<campos>][FOR<cond>]] [DELIMITED [WITH TAB | WITH <delimit> | WITH BLANK] [TYPE WK1|WK3|WKS|XLS||] SET CARRY ON/OFF Si esta en ON copia los datos del registro anterior al nuevo registro aadido. 2. Modificar registros El comando BROW muestra los datos en una ventana, donde se pueden modificar los datos existentes. Para moverse <PgUp>, <PgDn>, <Tab>, <Shift><Tab>, <Ctrl><W> o <CTRL><End>

guardar y salir, <Esc> salir sin salvar, <Ctrl><G> aadir registro, <Ctrl><R> marcar/desmarcar para borrar. BROW [LAST] [FIELDS <campo1,compo2,...>] [FOR <cond>] [KEY <exp1>,<exp2>] [VALID [:F] <exp> [ERROR <mensaje>]] [WHEN <cond>] [FREEZE <campo>] [LOCK <exp>] [TITLE <titulo>][WIDTH <ancho>] [TIMEOUT <#>] [IN WINDOW <ventana>][COLOR <par1>,<par2>...,<par8>] [NOAPPEND] [NODELETE] [NOEDIT/NOMODIFY] [NOLGRID] [NORGRID] [NOLINK] [NOMENU] [NOWAIT] [NOCLEAR] [NOMENU] Si se usa la clausula FIELDS, es posible indicar las caracteristicas de cada campo de la siguiente manera: :# --> Ancho del campo en caracteres. :R --> Solo lectura, no ser posible modificar. (Read only) :P=<mascara> --> (Picture) :B=<min>,<max>[:F] --> Rango en el que debe estar (Between) :V=<cond> --> Si la condicin es :T: el valor es aceptado, sino ser rechazado. Solo verifica si hay algun cambio. (Valid) :E=<mensaje> --> Mensaje de error. (usado con :V)(Error) :F --> Fuerza la validacin al salir del campo (aunque no cambie) (Forced valid) :W=<cond> -> Si la condicion es falsa no se podra mover el cursos a dicho campo (When) Campos calculados: Es un campo creado con una expresion, de solo lectura, usando el formato: <nombre> = <exp> FOR <cond>: Permite filtrar registros, de manera que solo quedaran visibles los que cumplan la condicion. KEY <exp1>,<exp2>: Permite filtrar registros entre un rango basandose en la llave indice activa. VALID [:F] <cond> [ERROR <mensaje>]: Evalua <cond> si se efectuo un cambio o si usate :F, si la condicion es verdadera o 1 te deja continuar, si es falsa o 0 envia el mensaje de ERROR. Es una post-condicion. WHEN <cond>: Evalua <cond> si es verdadera o 1 te permite posicionarte en el registro, si es falsa o 0 se salta al siguiente registro. Es una pre-condicion. TITLE <exp>: Permite poner un titulo a la ventana WIDTH <ancho>: Permite limitar el ancho maximo de cada uno de los campos de forma general. TIMEOUT <#>: Determina cuantos segundos se esperara a que el usuario ingrese algo. Transcurrido dicho tiempo la ventana del BROWSE se cierra automaticamente. IN WINDOW <ventana>: El browse se abre dentro de la ventana previamente definida por el usuario. COLOR <par1,par2...,par8>

# Par 1 2 3 4 5 6

Elemento Resto de registros Campo activo Borde Titulo si Browse esta esta activo Titulo si Browse no esta activo Texto seleccionado

7 8

Registro activo Sombra

CHANGE y EDIT funcionan de manera muy paresida a BROWSE y usan las mismas clausulas 3. Borrar registros 3.1 Marcar DELETE [ALL / NEXT<#> / RECORD <#> / REST] [FOR<cond>] [WHILE<cond>] [NOOPTIMIZE] 3.2 Desmarcar RECALL [ALL / NEXT<#> / RECORD <#> / REST] [FOR<cond>] [WHILE<cond>] [NOOPTIMIZE] 3.3 Empaquetar PACK [MEMO] [DBF] 4. Mostrar o no los registros marcados Mientras que con SET DELETE OFF se podr ver los registros marcados para borrar con un rombo. Con SET DELETE ON ya no se mostraran dichos registros. DELETED() --> Devuelve verdadero si el registro actual est marcado para su eliminacin. 5. Borrar todos los registros ZAP Capitulo 5 Organizacin de registros Los registros de una tabla se pueden ordenar alfabtica, cronolgica o numricamente y existen dos tipos de ordenamiento: Fsico: Que consiste en generar una nueva tabla a partir de la tabla activa, con la misma estructura, cuyos registros se encuentran fsicamente ordenados respecto a un campo o conjunto de campos llamada llave o clave. Este mtodo solo es recomendable para tablas estables, es decir las que rara vez se modifican sus registros, ya que una modificacin obligara a generar un nuevo archivo. SORT ON <campo> TO <tabla> [FOR <cond>] [WHILE<cond>] [ASCE | DESC] [FIELDS [<campos> | LIKE<mascara> | EXCEPT<mascara>]][<alcance>] Lgicos: Que consiste en la generacin de un archivo ndice, que contiene el orden bajo el cual debe de verse los registros de la tabla. El campo o campos por los que se hace dicho ordenamiento se llama llave o clave. Este archivo ndice es pequeo comparado al tamao de la tabla que contiene los registros y mientras esta activo la modificacin o aadido de registros la actualiza automticamente. El FoxPRO maneja bsicamente dos tipos de ndices: Simples (IDX): Guardan una sola clave, hay que abrirlos manualmente cada vez que se usa la tabla, para que actualice las modificaciones en los registros de la tabla. Usados en FoxBASE. Compuestos (CDX): Pueden almacenar hasta 25 claves, cada una con una etiqueta (TAG), se abre automticamente al usar la tabla a la que estn asociados, por lo que no hay peligro de desactualizarlo al modificar la tabla y miden aproximadamente 1/6 del tamao en KB de un archivo IDX. Usados en FoxPRO. 1. Crear INDEX ON <campo> TO <idx> | TAG <tag> [FOR <exp>] [ASCENDING | DESCENDING] [UNIQUE] [ADDITIVE] 2. Abrir IDX SET INDEX TO <idx1>,<idx2>,<idx3> 3. Activar o cambiar

SET ORDE TO <tag>|<idx> [IN <area>|<alias>] [ASCE | DESC] Si usas SET ORDE TO se desactivan todos los ndices y quedara la tabla en el orden original, por numero de registro. 4. Reconstruir ndices Reconstruye todos los ndices activos. REINDEX 5. Eliminar ndices DELETE TAG <etiqueta> 6. Poner un filtro SET FILTER TO <exp> 7. Comandos que afectan los resultados SET COLLATE TO `spanish' Afecta la forma como se ordenan los registros (ejemplo: a, b, c, ch, d...) cuando activamos un indice y la forma de compara cadenas, segun el idioma.

? `A' = `a' ? `A' = `a'

.T. .F.

`spanish' o `general' `machine'

SET EXACT OFF/on Afecta la forma de comparar cadenas de diferente longitud. Si esta en OFF (default) las cadenas se consideran iguales si coinciden caracter a caracter hasta el final de la que esta a la derecha. Si esta en ON la cadena mas corta se rellena con espacios hasta igualar la longitud de la mas larga. Ejemplo: ? `Juancho' = `Juan' Si esta en OFF --> .T. Si esta en ON --> .F. Capitulo 6 Mostrar, imprimir y exportar datos 1. List LIST [OFF][<campo1>,<campo2>...][FOR<cond>] [WHILE<cond>][TO PRIN | FILE <txt>] [NOCONSOLE] 2. Display Muestra registros o expresiones de una tabla. DISP [ALL][OFF][<campo1>,<campo2>...][FOR<cond>] [WHILE <cond>][TO PRINTER | FILE <txt>] [NOCONSOLE] DISP MEMORY --> Muestra el contenido de las variables de memoria y las matrices. DISP STATUS --> Muestra el estado del entorno FoxPro. DISP STRUCTURE --> Muestra la estructura de una tabla. 3. Uno a uno ? | ?? <exp1>,<exp2>,<exp3>...[PICT <exp>][FUNC <exp>][AT <exp>] ??? <exp> --->directo a la impresora 4. Comandos adicionales SET HEADING ON/OFF

SET FILTER TO <cond> = Usado para hacer visible SOLO a los registros que cumplan con la condicion. SET FILTER ON/OFF/LOCAL/GLOBAL Capitulo 7 Mover puntero y buscar registros 1. Mover .1 Absoluto: Se pone el numero del registro al que queremos ir o mediante el comando: GO <#> [IN <area> | <alias>] .2 Relativo: Se queremos movernos a travs de los registros de forma relativa y segn el ndice activo: GO TOP | BOTTOM [IN <area> | <alias>] SKIP [<exp>] [IN <area> | <alias>] RECNO(<area>|<alias>) --> numero de registro activo RECCOUNT(<area>|<alias>) --> numero total de registros 2. Bsqueda Secuencial Bsqueda secuencial es la que partiendo del primer registro de una tabla, comprueba uno a uno si cumplen la condicin impuesta y se para en el primer registro que la cumpla. LOCATE [ALL][NEXT <exp>] [FOR <cond>][WHILE <cond>] Se usa CONTINUE para buscar el prximo registro. Esta bsqueda puede ser lenta en caso de muchos registros (mas de 1'000,000) si no se usa la tecnologa RUSHMORE, basada en el uso de la condicin FOR sobre un campo indexado con una expresin bsica optimizable del tipo: <exp ndice> <operador> <constante> donde: <exp ndice> debe coincidir exactamente con el ndice activo y no debe contener alias. <operador> debe ser uno de los siguientes: <, >, =, < =, > =, < >, #, != <constante> puede ser una variable de memoria o un campo. 3. Bsqueda en indexados SEEK <var> --> para buscar en base a una variable o si se usa una cadena deber estar entre comillas. FIND <expC> --> para buscar en base a una cadena o valor. No es necesario el uso de comillas. Nota 1: La expresin de bsqueda no es una condicin, sino simplemente el valor a buscar en coincidencia con la clave ndice en uso en ese momento. Es indispensable que este indexada la tabla para que funcione alguno de estos comandos. Nota 2: Es posible consultar el xito de una bsqueda con FOUND(<area>|<alias>), en caso no tener xito una bsqueda el puntero queda al final de la tabla, lo compruebas con EOF(<area>|<alias>). Capitulo 8 Operaciones con campos y registros 1. Operadores Lgicos: Para agrupar usa (), para negar usa (.NOT. o !), conjuncin (.AND.) y disyuncin (.OR.) 2. Operadores Aritmticos Sumar (+), restar (-), multiplicar (*), dividir (/), potenciar (^ o **). 3. Operadores Relacinales

Menor que (<), mayor que (>), igual (=), distinto (# o <>), menor o igual (<=), mayor o igual; (>=), exacto (==). 4. Calculo con campos Hacer clculos entre campos sobre un mismo registro. REPLACE<campo> WITH <exp> [ALL] [FOR<cond>] [WHILE<cond>] 5. Calculo con registros Hacer clculos sobre un mismo campo en todos los registros. CALCULATE <exp> [FOR<cond>][TO<var>] donde puedes usar: CNT(),SUM(),MAX(),MIN(),AVG(),STD(),VAR(), NPV(), etc SUM <campo>[FOR<cond>][TO<var>] AVERAGE <campo>[FOR<cond>][TO<var>] COUNT [FOR<cond>][TO<var>] Capitulo 9 Manipular mltiples tablas - relaciones Como consecuencia de la normalizacin es probable que para cierto caso tengamos un diseo de base de datos compuesto de varias tablas y es necesario conectarlas para lograr los resultados deseados. Esto se hace relacionando las tablas. El proceso exige abrir una tabla principal (padre) la cual puede o no estar indexada en un area cualquiera y en otra area diferente una segunda tabla (hijo) la cual deber estar indexada por el campo que determinara la relacin. Luego desde el area donde esta el archivo padre, se emite el siguiente comando: SET RELATION [TO <campo> INTO <area/alias>] [OFF] Desde este momento obtendremos una conexin entre estas tablas, de manera que cualquier movimiento en la tabla padre se refleja automticamente en la tabla hijo y para referirte a un campo de la tabla hijo solo debes anteponer el area o alias delante del nombre del campo de la tabla hijo. Ej: LIST COD,B.NOMBRE,FECHA Aqu se hace un listado mostrando el campo COD y FECHA que pertenecen a la tabla padre y NOMBRE que pertenece a la tabla hijo y esta ubicada en el area 2. Se llama relacin uno a uno, si un registro del padre corresponde a un registro en el hijo. Se llama relacin muchos a uno, si varios registros del padre corresponden al mismo registro hijo. Se llama relacin uno a muchos, si un registro en el padre corresponde a muchos registros en el hijo y entonces al posicionarse en cierto registro del padre, solo ser mostrado el primer registro correspondiente en el hijo, de manera que no es posible ver los dems. para solucionar este problema hay que emitir el siguiente comando en el area del padre: SET SKIP TO <area> Capitulo 10 Funciones incorporadas Tablas: DBF(<area>) --> Muestra el nombre de la tabla activa USED() --> Determina si tabla esta en area activa o no ALIAS() --> Muestra el sobrenombre de la tabla FLUSH() Escribe el contenido del buffer en disco FILE(archivo) Indica si existe o no un archivo HEADER() Muestra tamao en bytes del encabezado de tabla FLOCK() Boquea la tabla actual

Areas: SELECT() --> Muestra el area de trabajo activa RELATION() Muestra la relacion entre dos tablas TARGET() Muestra el alias de la tabla hija Indices: CDX() Muestra el nombre del archivo de indice activo TAG() Muestra la etiqueta del indice activo KEY() Muestra la esprecion de indexacion activa ORDER() Da el nombre del IDX o etiqueta (TAG) activa. FILTER() Da la condicin de filtro Campos: FCOUNT(<area>) Muestra el numero de campos FIELD(n,<area>) Muestra el nombre del campo n FSIZE() Tamao del campo Registros: DELETE(n) Responde .T. si el registro esta marcado para borrar BOF(<area>|<alias>) Devuelve verdadero si el puntero de registros se encuentra al principio de una tabla. EOF(<area>|<alias>) Devuelve verdadero si el puntero de registros se encuentra al final de una tabla. RECNO(<area>) Numero de registro activo RECCOUNT(<area>) Numero total de registros de la tabla RECSIZE(<area>) Longitud en bytes del registro RLOCK() Bloques registro actual o varios FOUND() Si encontro despues de LOCA FOR <cond> SEEK(<var>,<area>) Funcin avanzada que hace la bsqueda al mismo tiempo que da un .T. si la bsqueda fue exitosa.

El dato es una representacin simblica (numrica, alfabtica, algortmica etc.), un atributo o una caracterstica de una entidad. El dato no tiene valor semntico (sentido) en s mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realizacin de clculos o toma de decisiones. Es de empleo muy comn en el mbito informtico y, en general, prcticamente en cualquier disciplina cientfica. En programacin, un dato es la expresin general que describe las caractersticas de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mnima de la informacin.

Un dato por s mismo no constituye informacin, es el procesamiento de los datos lo que nos proporciona informacin.

Registro
Es una pequea unidad de almacenamiento destinada a contener cierto tipo de datos. Puede estar en la propia memoria central o en unidades de memoria de acceso rpido. Un registro refiere al asiento de unainformacin cualquiera y concreta como puede ser el apuntamiento de un nombre y un apellido y la pertinente hora en la cual se espera a esa persona en el caso de tratarse de una cita con el mdico. Esta anotacin podr realizarse de forma escrita en un cuaderno destinado a tal menester o bien puede hacerse en forma mecnica, ms concretamente a travs de la computadora y haciendo uso de unabase de datos relacional que se haya creado con ese objetivo.

En informtica, y concretamente en el contexto de una base de datos relacional, un registro (tambin llamado fila o tupla) representa un objetonico de datos implcitamente estructurados en una tabla. En trminos simples, una tabla de una base de datos puede imaginarse formada de filasy columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura. Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repeticin de entidad. Se le asigna automticamente un nmero consecutivo (nmero de registro) que en ocasiones es usado como ndice aunque lo normal y prctico es asignarle a cada registro un campo clave para su bsqueda. La estructura implcita de un registro y el significado de los valores de sus campos exige que dicho registro sea entendido como una sucesin de datos, uno en cada columna de la tabla. La fila se interpreta entonces como una variable relacional compuesta por un conjunto de tuplas, cada una de las cuales consta de dos tems: el nombre de la columna relevante y el valor que esta fila provee para dicha columna. Cada columna espera un valor de un tipo concreto.

Las tablas o entidades


Una tabla es un espacio abstracto de informacin ordenada segn un criterio. Esta tabla se basa en un ndice nico o compartido que facilita el acceso a los datos de la mejor y ms rpida manera. La tabla est compuesta por campos o atributos. Estos campos se pueden especificar de distintos tipos, numricos, campos de texto, de fecha, hora, etc. La forma tradicional de representar una tabla es por medio de un listado en el cual su cabezales seran los atributos y los renglones seran los datos almacenados.
identificador (Id) Nombre Apellido

1231 1444

Juan Mariano

Muoz Prez

Las relaciones
Una relacin es la forma en la cual van a interactuaro las entidades. Estas relaciones estn acompaadas por cardinalidades, que sirven para darle un sentido de navegabilidad al MER. (Modelo Entidad Relacin) Las relaciones pueden o no generar tablas. Una relacin entre dos tablas guarda datos comunes a las dos.

Manejadores de bases de datos.


Un manejador de base de datos o DBM, es un motor de software que se encarga de la administracin y el funcionamiento de la base de datos. Este puede ser de muchos tipos y funcionar en distintos sistemas operativos. Algunos de los ms conocidos son MySQL(para s.o. Linux), Oracle (para s.o. Unix) o SQL Server de Microsft (para s.o. Windows) Existen muchas aplicaciones que se distribuyen independientemente del DBM que sirve para gestionar la base de datos. Crear tablas, borrarlas, modificarlas, generar consultasetc. Uno de estos es phpMyAdmnin que gestiona MySQL y otros en servidores Linux.

SQL / Consultas
SQL es el lenguaje que se utiliza para interactuar con el DBM (manejador de base de datos). Es un lenguaje de SCRIPT, que interroga al DBM y obtenemos respuestas. No importa el lenguaje de programacin que estemos utilizando ya que todos utilizan clusulas SQL para realizar consultas. Una consulta es la que enva el programa de software a la base de datos y luego la base de datos retorna una respuesta. Ej; Quiero saber cuales son los datos de los usuarios que tienen edad mayor a 30 aos. SELECT * FROM USUARIOS WHERE EDAD>30; Esto retornar todas las filas comprendientes a los usuarios que cumplan con esa condicin. Las filas estarn ordenadas segn los atributos de la tabla. Ej: Id, Edad, Nombre, Apellido, etc. Esto est indicado por el asterisco.

Si solo quisiramos el nombre del usuario sera de la siguiente manera. SELECT NOMBRE FROM USUARIOS WHERE EDAD>30; Restringir los datos retornados por la base de datos ayuda a agilizar las consultas y no gastar tantos recursos del servidor. Cuantos mas recursos se ahorren, ser ms rpida la respuesta de consultas para otros usuarios que a la misma vez estn usando la base de dato.