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:
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.
Geef als resultaat alle records in de werknemersdatabase waarvan het veld SALARIS
een hogere waarde dan € 20.000 bevat.
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.
Zo gebruikt u een |
Voorbeeld-SQL |
tekstconstante |
Kopiëren
|
getalconstante |
Kopiëren
|
datumconstante |
Kopiëren
|
tijdconstante |
Kopiëren
|
tijdstempelconstante |
Kopiëren
|
tekstkolom |
Kopiëren
|
numerieke kolom |
Kopiëren
|
datumkolom |
Kopiëren
|
tijdkolom |
Kopiëren
|
tijdstempelkolom |
Kopiëren
|
BLOB-kolom |
Kopiëren
Opmerking Een BLOB (Binary Large Object) is een bestandscontainerveld in een FileMaker Pro-database. |
Jokerteken * |
Kopiëren
|
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ërenSELECT * FROM test WHERE c =''
SELECT * FROM test WHERE c <>'' -
Als u
SELECT
met binaire gegevens gebruikt, moet u de functieGetAs()
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 eenSELECT
-instructie. -
Als er bestandsgegevens of binaire JPEG-gegevens bestaan, haalt de
SELECT
-instructie metGetAs(veldnaam, 'JPEG')
de gegevens in binaire vorm op; anders geeft deSELECT
-instructie met veldnaam het resultaatNULL
.
Gebruik de functie C
AST()
met een SELECT
-instructie om bestandsverwijzingsinformatie op te halen.
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 typeSQL_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 optieDEFAULT
gebruikt, haalt u de standaardstroom voor de container op zonder het stroomtype uitdrukkelijk te moeten definiëren.KopiërenSELECT 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.Als de gegevens zijn ingevoegd met behulp van de opdracht Invoegen > Bestand, geeft u
'FILE'
op in de functieGetAs()
.KopiërenSELECT 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ërenSELECT 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