Cláusula FOR UPDATE

La cláusula FOR UPDATE bloquea registros para actualizaciones posicionadas o eliminaciones posicionadas mediante los cursores SQL. El formato es:

Copiar
FOR UPDATE [OF expresiones_columna]

expresiones_columna es una lista de nombres de campos en una tabla de la base de datos que desea actualizar, separados por una coma. expresiones_columna es opcional y se omite.

Ejemplo

Devuelva todos los registros de la base de datos de empleados que tengan un valor del campo SALARIO superior a 20.000 €.

Copiar
SELECT * FROM emp WHERE salario > 20000 FOR UPDATE OF apellidos, nombre, salario

Cuando se recupera cada registro, se bloquea. Si el registro se actualiza o elimina, el bloqueo se mantiene hasta que consigne el cambio. En caso contrario, el bloqueo se levanta al recuperar el siguiente registro.

Ejemplos

Uso

SQL de ejemplo

constante de texto

Copiar
SELECT 'CatDog' FROM Vendedores

constante numérica

Copiar
SELECT 999 FROM Vendedores

constante de fecha

Copiar
SELECT DATE '05/06/2021' FROM Vendedores

constante de hora

Copiar
SELECT TIME '02:49:03' FROM Vendedores

constante de fecha y hora

Copiar
SELECT TIMESTAMP '05/06/2021 02:49:03' FROM Vendedores

columna de texto

Copiar
SELECT Nombre_Empresa FROM Datos_ventas
SELECT DISTINCT Nombre_Empresa FROM Datos_ventas

columna numérica

Copiar
SELECT Cantidad FROM Datos_ventas
SELECT DISTINCT Cantidad FROM Datos_ventas

columna de fecha

Copiar
SELECT Fecha_Venta FROM Datos_ventas
SELECT DISTINCT Fecha_Venta FROM Datos_ventas

columna de hora

Copiar
SELECT Hora_Venta FROM Datos_ventas
SELECT DISTINCT Hora_Venta FROM Datos_ventas

columna de fecha y hora

Copiar
SELECT Fecha_Hora_Venta FROM Datos_ventas
SELECT DISTINCT Fecha_Hora_Venta FROM Datos_ventas

columna BLOB

Copiar
SELECT Empresa_folletos FROM Datos_ventas
SELECT GETAS(Empresa_Logo, 'JPEG') FROM Datos_ventas

Nota  Un BLOB es un campo contenedor de un archivo de base de datos de FileMaker Pro.

Comodín *

Copiar
SELECT * FROM Vendedores
SELECT DISTINCT * FROM Vendedores

Notas de los ejemplos

Una columna es una referencia a un campo en el archivo de base de datos de FileMaker Pro. (El campo puede contener muchos valores distintos).

El carácter comodín asterisco (*) es una forma abreviada de indicar "todo". En el ejemplo SELECT * FROM Vendedores, el resultado son todas las columnas de la tabla Vendedores. En el ejemplo SELECT DISTINCT * FROM Vendedores, el resultado son todas las filas no repetidas de la tabla Vendedores.

  • El software de FileMaker no almacena datos de cadenas vacías, de manera que las siguientes consultas siempre se devuelven sin registros:

    Copiar
    SELECT * FROM prueba WHERE c =''
    SELECT * FROM prueba WHERE c <>''
  • Si utiliza SELECT con datos binarios, debe utilizar la función GetAs() para especificar la secuencia que se va a devolver. Consulte Recuperación del contenido de un campo contenedor: Función CAST() y función GetAs() para obtener más información.

Recuperación del contenido de un campo contenedor: Función CAST() y función GetAs()

Puede recuperar información de referencia de archivos, datos binarios o datos de un tipo de archivo específico de un campo contenedor.

  • Para recuperar la información de referencia de archivo de un campo contenedor, como la ruta a un archivo, imagen o vídeo, utilice la función CAST() con una secuencia SELECT.

  • Si existen datos de archivo o los datos binarios JPEG, la secuencia SELECT con GetAS(nombre de campo, 'JPEG') recupera los datos en formato binario; en caso contrario, la secuencia SELECT con nombre de campo devuelve NULL.

Ejemplo

Utilice la función CAST() con una secuencia SELECT para recuperar la información de referencia de archivos.

Copiar
SELECT CAST(Empresa_folletos AS VARCHAR) FROM Datos_ventas

En este ejemplo, si:

  • Ha insertado un archivo en un campo contenedor mediante FileMaker Pro pero ha almacenado sólo una referencia al archivo, la secuencia SELECT recupera la información de la referencia del archivo como tipo SQL_VARCHAR.

  • Ha insertado el contenido de un archivo en el campo contenedor mediante FileMaker Pro, la secuencia SELECT recupera el nombre del archivo.

  • Ha importado un archivo en un campo contenedor desde otra aplicación, la secuencia SELECT muestra '?' (el archivo se muestra como Untitled.dat en FileMaker Pro).

Puede utilizar la secuencia SELECT con la función GetAs() para recuperar los datos en formato binario de las siguientes formas:

  • Al utilizar la función GetAs() con la opción DEFAULT, recuperará la secuencia predeterminada del contenedor sin necesidad de definir explícitamente el tipo de secuencia.

    Ejemplo

    Copiar
    SELECT GetAs(Empresa_Folletos, DEFAULT) FROM Datos_ventas
  • Para recuperar un tipo de secuencia individual de un campo contenedor, utilice la función GetAs() con el tipo del archivo según la manera en que se insertaron los datos en el campo contenedor en FileMaker Pro.

    Ejemplos

    Si los datos se insertaron mediante el comando Insertar > Archivo, especifique 'FILE' en la función GetAs().

    Copiar
    SELECT GetAs(Empresa_Folletos, 'FILE') FROM Datos_ventas

    Si los datos se insertaron mediante el comando Insertar > Imagen, la función arrastrar y soltar o se pegaron desde el portapapeles, especifique uno de los tipos de archivos que se muestran en la siguiente tabla, por ejemplo,'JPEG'.

    Copiar
    SELECT GetAs(Logo_Empresa, 'JPEG') FROM Iconos_Empresa

    Tipo de archivo

    Descripción

    'GIFf'

    Formato de intercambio de gráficos

    'JPEG'

    Imágenes fotográficas

    'TIFF'

    Formato de archivos raster para imágenes digitales

    'PDF '

    Formato de documento portátil

    'PNGf'

    Formato de imagen de mapa de bits