Clausola FOR UPDATE

La clausola FOR UPDATE blocca gli aggiornamenti o le eliminazioni nella posizione attraverso i cursori SQL. Il formato è:

Copia
FOR UPDATE [OF espressioni_colonna]

espressioni_colonna è una lista di nomi di campi nella tabella di database che si desidera aggiornare, separati da una virgola. espressioni_colonna è opzionale e viene ignorato.

Esempio

Restituire tutti i record nel database dei dipendenti per cui il valore del campo STIPENDIO è superiore a 20.000 Euro.

Copia
SELECT * FROM dip WHERE stipendio > 20000 FOR UPDATE OF cognome, nome, stipendio

I record recuperati vengono bloccati. Se il record viene aggiornato o eliminato, il blocco viene mantenuto finché non si applica la modifica. In caso contrario, il blocco viene rilasciato quando si recupera il record successivo.

Esempi

Usando

Esempio SQL

costante di testo

Copia
SELECT 'CatDog' FROM Venditori

costante numerica

Copia
SELECT 999 FROM Venditori

costante di data

Copia
SELECT DATE '2021-06-05' FROM Venditori

costante di ora

Copia
SELECT TIME '02:49:03' FROM Venditori

costante Indicatore data e ora

Copia
SELECT TIMESTAMP '2021-06-05 02:49:03' FROM Venditori

colonna di testo

Copia
SELECT Nome_Azienda FROM Dati_Vendite
SELECT DISTINCT NomeAzienda FROM Dati _Vendite

colonna numerica

Copia
SELECT Quantità FROM Dati_Vendite
SELECT DISTINCT Quantità FROM Dati_Vendite

colonna data

Copia
SELECT Data_Vendita FROM Dati_Vendite
SELECT DISTINCT Data_Vendita FROM Dati_Vendite

colonna ora

Copia
SELECT Ora_Vendita FROM Dati_Vendite
SELECT DISTINCT Ora_Vendita FROM Dati_Vendite

colonna Indicatore data e ora

Copia
SELECT IndicatoreDataOra_Vendita FROM Dati_Vendite
SELECT DISTINCT IndicatoreDataOra_Vendita FROM Dati_Vendite

colonna BLOB

Copia
SELECT Brochure_Società FROM Dati _Vendite
SELECT GETAS(Logo_Società, 'JPEG')FROM Dati _Vendite

Nota  Un BLOB è un campo Contenitore di un file di database FileMaker Pro.

carattere jolly*

Copia
SELECT * FROM Venditori
SELECT DISTINCT * FROM Venditori

Note sugli esempi

Una colonna è un riferimento a un campo nel file di database FileMaker Pro (il campo può contenere molti valori distinti).

Il carattere jolly asterisco (*) rappresenta "tutto". Per l'esempio SELECT * FROM Venditori, il risultato comprende tutte le colonne nella tabella Venditori. Per l'esempio SELECT DISTINCT * FROM Venditori, il risultato è costituito da tutte le righe uniche nella tabella Venditori (senza duplicati).

Recupero dei contenuti di un campo Contenitore: funzione CAST() e funzione RicavaCome()

Da un campo Contenitore si possono recuperare informazioni di riferimento al file, dati binari o dati di un tipo specifico di file.

  • Per recuperare le informazioni di riferimento al file da un campo Contenitore, come il percorso di un file, di un'immagine o di un video, utilizzare la funzione CAST() con un'istruzione SELECT.

  • Se esistono file o dati binari JPEG, l'istruzione SELECT con RicavaCome(nome di campo, "JPEG") recupera i dati in forma binaria; in caso contrario, l'istruzione SELECT con il nome campo restituisce NULL.

Esempio

Utilizzare la funzione CAST() con un'istruzione SELECT per recuperare le informazioni di riferimento al file.

Copia
SELECT CAST (Brochure_Società AS VARCHAR) FROM Dati_Vendite

In questo esempio se:

  • è stato inserito un file nel campo Contenitore utilizzando FileMaker Pro, ma è stato memorizzato solo un riferimento al file, l'istruzione SELECT recupera le informazioni di riferimento al file come SQL_VARCHAR.

  • sono stati inseriti i contenuti di un file nel campo Contenitore utilizzando FileMaker Pro, l'istruzione SELECT recupera il nome del file.

  • è stato importato un file nel campo Contenitore da un'altra applicazione, l'istruzione SELECT visualizza '?' (il file viene visualizzato come Senza nome.dat in FileMaker Pro).

È possibile utilizzare l'istruzione SELECT con la funzione RicavaCome() per recuperare i dati in forma binaria nei seguenti modi:

  • Se si utilizza la funzione RicavaCome() con l'opzione DEFAULT, viene recuperato il flusso predefinito per il contenitore senza la necessità di definire esplicitamente il tipo di flusso.

    Esempio

    Copia
    SELECT RicavaCome(Brochure_Società, DEFAULT) FROM Dati_Vendite
  • Per recuperare un tipo di flusso singolo da un contenitore, utilizzare la funzione RicavaCome() con il tipo di file basato su come sono stati inseriti i dati nel campo Contenitore in FileMaker Pro.

    Esempi

    Se i dati sono stati inseriti utilizzando il comando Inserisci > File, specificare 'FILE' nella funzione RicavaCome().

    Copia
    SELECT RicavaCome(Brochure_Società, 'FILE') FROM Dati_Vendite

    Se i dati sono stati inseriti utilizzando il comando Inserisci > Immagine, trascinandoli oppure incollandoli dagli appunti, specificare uno dei tipi di file elencati nella tabella di seguito, ad esempio 'JPEG'.

    Copia
    SELECT RicavaCome(Logo_Società, 'JPEG ') FROM Icone_Società

    Tipo di file

    Descrizione

    'GIFf'

    Graphics Interchange Format

    'JPEG'

    Immagini fotografiche

    'TIFF'

    Formato raster del file per immagini digitali

    'PDF'

    Portable Document Format

    'PNGf'

    Formato immagine Bitmap