Het element FOR UPDATE

Het element FOR UPDATE vergrendelt records voor geplaatste (positioned) updates of verwijderingen via SQL-cursors. Hiervoor gebruikt u de volgende syntaxis:

Kopiëren
FOR UPDATE [OF kolomuitdrukkingen]

kolomuitdrukkingen is een lijst met veldnamen in de databasetabel die u wilt gaan bijwerken, gescheiden door een komma. kolomuitdrukkingen is optioneel en wordt genegeerd.

Voorbeeld

Geef als resultaat alle records in de werknemersdatabase waarvan het veld SALARIS een hogere waarde dan € 20.000 bevat.

Kopiëren
SELECT * FROM werkn WHERE salaris > 20000 FOR UPDATE OF achternaam, voornaam, salaris

Bij het ophalen van records wordt elke record vergrendeld. Als de record wordt bijgewerkt of verwijderd, blijft de vergrendeling behouden tot u de wijziging vastlegt. Anders wordt de vergrendeling pas opgeheven wanneer u de volgende record opvraagt.

Voorbeelden

Zo gebruikt u een

Voorbeeld-SQL

tekstconstante

Kopiëren
SELECT 'CatDog' FROM Verkopers

getalconstante

Kopiëren
SELECT 999 FROM Verkopers

datumconstante

Kopiëren
SELECT DATE '2021-06-05' FROM Verkopers

tijdconstante

Kopiëren
SELECT TIME '02:49:03' FROM Verkopers

tijdstempelconstante

Kopiëren
SELECT TIMESTAMP '2021-06-05 02:49:03' FROM Verkopers

tekstkolom

Kopiëren
SELECT Naam_bedrijf FROM Verkoopgegevens
SELECT DISTINCT Naam_bedrijf FROM Verkoopgegevens

numerieke kolom

Kopiëren
SELECT Bedrag FROM Verkoopgegevens
SELECT DISTINCT Bedrag FROM Verkoopgegevens

datumkolom

Kopiëren
SELECT Verkoopdatum FROM Verkoopgegevens
SELECT DISTINCT Verkoopdatum FROM Verkoopgegevens

tijdkolom

Kopiëren
SELECT Verkooptijdstip FROM Verkoopgegevens
SELECT DISTINCT Verkooptijdstip FROM Verkoopgegevens

tijdstempelkolom

Kopiëren
SELECT Tijdstempel_Verkocht FROM Verkoopgegevens
SELECT DISTINCT Tijdstempel_Verkocht FROM Verkoopgegevens

BLOB-kolom

Kopiëren
SELECT Bedrijfsbrochures FROM Verkoopgegevens
SELECT GETAS (Bedrijfslogo, 'JPEG') FROM Verkoopgegevens

Opmerking  Een BLOB (Binary Large Object) is een bestandscontainerveld in een FileMaker Pro-database.

Jokerteken *

Kopiëren
SELECT * FROM Verkopers
SELECT DISTINCT * FROM Verkopers

Opmerkingen bij de voorbeelden

Een kolom is een verwijzing naar een veld in het FileMaker Pro-databasebestand. (Het veld kan vele verschillende waarden bevatten.)

Het jokerteken asterisk (*) staat voor “alles”. In het voorbeeld SELECT * FROM Verkopers, is het resultaat alle kolommen in de tabel Verkopers. In het voorbeeld SELECT DISTINCT * FROM Verkopers, is het resultaat alle unieke rijen in de tabel Verkopers (geen duplicaten).

  • FileMaker-software slaat geen gegevens op voor lege tekenreeksen. De volgende opvragen zullen bijgevolg geen records als resultaat opleveren:

    Kopiëren
    SELECT * FROM test WHERE c =''
    SELECT * FROM test WHERE c <>''
  • Als u SELECT met binaire gegevens gebruikt, moet u de functie GetAs() gebruiken om de stroom die als resultaat moet worden gegeven, op te geven. Raadpleeg De inhoud van een containerveld ophalen: de functie CAST() en GetAs() voor meer informatie.

De inhoud van een containerveld ophalen: de functie CAST() en GetAs()

U kunt bestandsverwijzingsinformatie, binaire gegevens of gegevens van een specifiek bestandstype uit een containerveld ophalen.

  • Als u bestandsverwijzingsinformatie, zoals het pad naar een bestand, afbeelding of video uit een containerveld wilt ophalen, gebruikt u de functie CAST() met een SELECT-instructie.

  • Als er bestandsgegevens of binaire JPEG-gegevens bestaan, haalt de SELECT-instructie met GetAs(veldnaam, 'JPEG') de gegevens in binaire vorm op; anders geeft de SELECT-instructie met veldnaam het resultaat NULL.

Voorbeeld

Gebruik de functie CAST() met een SELECT-instructie om bestandsverwijzingsinformatie op te halen.

Kopiëren
SELECT CAST (Bedrijfsbrochures AS VARCHAR) FROM Verkoopgegevens

Als u in dit voorbeeld:

  • in het containerveld een bestand zou invoegen met behulp van FileMaker Pro, maar alleen een verwijzing naar het bestand zou opslaan, haalt de SELECT-instructie de bestandsverwijzingsinformatie op als type SQL_VARCHAR.

  • in het containerveld de inhoud van een bestand zou invoegen met behulp van FileMaker Pro, haalt de SELECT-instructie de naam van het bestand op.

  • in het containerveld een bestand uit een andere toepassing zou importeren, geeft de SELECT-instructie '?' weer (het bestand wordt weergegeven als Untitled.dat (Naamloos.dat) in FileMaker Pro).

U kunt de SELECT-instructie met de functie GetAs() gebruiken om de gegevens in binaire vorm op te halen op de volgende manieren:

  • Wanneer u de functie GetAs() met de optie DEFAULT gebruikt, haalt u de standaardstroom voor de container op zonder het stroomtype uitdrukkelijk te moeten definiëren.

    Voorbeeld

    Kopiëren
    SELECT GetAs(Bedrijfsbrochures, DEFAULT) FROM Verkoopgegevens
  • Als u een afzonderlijke stroomtype uit een container wilt ophalen, gebruikt u de functie GetAs() met het bestandstype op basis van de manier waarop de gegevens in het containerveld in FileMaker Pro zijn ingevoegd.

    Voorbeelden

    Als de gegevens zijn ingevoegd met behulp van de opdracht Invoegen > Bestand, geeft u 'FILE' op in de functie GetAs().

    Kopiëren
    SELECT GetAs(Bedrijfsbrochures, 'FILE') FROM Verkoopgegevens

    Als de gegevens zijn ingevoegd met behulp van de opdracht Invoegen > Afbeeldingen, met slepen en neerzetten of door ze vanaf het klembord te plakken, geeft u een van de bestandstypen op die in de volgende tabel zijn vermeld, zoals 'JPEG'.

    Kopiëren
    SELECT GetAs(Bedrijfslogo, 'JPEG') FROM Bedrijf_Pictogrammen

    Bestandstype

    Beschrijving

    'GIFf'

    Graphics Interchange Format

    'JPEG'

    Fotografische afbeeldingen

    'TIFF'

    Rasterbestandsindeling voor digitale afbeeldingen

    'PDF '

    Portable Document Format

    'PNGf'

    Bitmapafbeeldingsindeling