FOR UPDATE-Klausel

Die FOR UPDATE-Klausel sperrt Datensätze für „Positioned Updates“ oder „Positioned Deletes“ über SQL-Cursor. Das Format ist:

Kopieren
FOR UPDATE [OF spaltenausdruecke]

spaltenausdruecke ist eine Liste von Feldnamen in der Datenbanktabelle, die Sie aktualisieren möchten, getrennt durch ein Komma. spaltenausdruecke ist optional und wird ignoriert.

Beispiel

Geben Sie alle Datensätze in der Angestellten-Datenbank zurück, die einen GEHALT-Feldwert von mehr als 20.000 Euro besitzen.

Kopieren
SELECT * FROM ang WHERE gehalt > 20000 FOR UPDATE OF nachname, vorname, gehalt

Wenn jeder Datensatz abgerufen wird, wird er gesperrt. Wird der Datensatz aktualisiert oder gelöscht, wird die Sperre gehalten, bis Sie die Änderung bestätigen. Ansonsten wird die Sperre freigegeben, wenn Sie den nächsten Datensatz abrufen.

Beispiele

Verwenden von

Beispiel-SQL

Textkonstante

Kopieren
SELECT 'KatzeHund' FROM Verkaeufer

Zahlenkonstante

Kopieren
SELECT 999 FROM Verkaeufer

Datumskonstante

Kopieren
SELECT DATE '05.06.2021' FROM Verkaeufer

Zeitkonstante

Kopieren
SELECT TIME '02:49:03' FROM Verkaeufer

Zeitstempelkonstante

Kopieren
SELECT TIMESTAMP '05.06.2021 02:49:03' FROM Verkaeufer

Textspalte

Kopieren
SELECT Firmenname FROM Vertriebsdaten
SELECT DISTINCT Firmenname FROM Vertriebsdaten

Zahlenspalte

Kopieren
SELECT Betrag FROM Vertriebsdaten
SELECT DISTINCT Betrag FROM Vertriebsdaten

Datumsspalte

Kopieren
SELECT Verkaufsdatum FROM Vertriebsdaten
SELECT DISTINCT Verkaufsdatum FROM Vertriebsdaten

Zeitspalte

Kopieren
SELECT Verkaufszeit FROM Vertriebsdaten
SELECT DISTINCT Verkaufszeit FROM Vertriebsdaten

Zeitstempelspalte

Kopieren
SELECT Verkaufszeitstempel FROM Vertriebsdaten
SELECT DISTINCT Verkaufszeitstempel FROM Vertriebsdaten

BLOB-Spalte

Kopieren
SELECT Firmenbroschueren FROM Vertriebsdaten
SELECT GETAS(Firmenlogo, 'JPEG') FROM Vertriebsdaten

Hinweis  Ein BLOB ist ein FileMaker Pro-Datenbankdatei-Containerfeld.

Jokerzeichen *

Kopieren
SELECT * FROM Verkaeufer
SELECT DISTINCT * FROM Verkaeufer

Hinweise zu den Beispielen

Eine Spalte ist ein Verweis auf ein Feld in der FileMaker Pro-Datenbankdatei. (Das Feld kann viele unterschiedliche Werte enthalten.)

Das Jokerzeichen (*) ist eine Abkürzung für „Alles“. Für das Beispiel SELECT * FROM Verkaeufer ist das Ergebnis alle Spalten in der Tabelle Verkaeufer. Für das Beispiel SELECT DISTINCT * FROM Verkaeufer ist das Ergebnis alle eindeutigen Zeilen in der Tabelle Verkaeufer (keine doppelten Werte).

  • Die FileMaker-Software speichert keine Daten für leere Zeichenfolgen, so dass die folgenden Abfragen immer keine Datensätze zurückgeben:

    Kopieren
    SELECT * FROM test WHERE c =''
    SELECT * FROM test WHERE c <>''
  • Wenn Sie SELECT mit Binärdaten verwenden, müssen Sie die Funktion GetAs() verwenden, um den zurückzugebenden Stream anzugeben. Siehe Abrufen des Inhalts eines Containerfelds: CAST()-Funktion und GetAs()-Funktion für weitere Informationen.

Abrufen des Inhalts eines Containerfelds: CAST()-Funktion und GetAs()-Funktion

Sie können Dateiverweisinformationen, Binärdaten oder Daten eines angegebenen Dateityps von einem Containerfeld abrufen.

  • Um Dateiverweisinformationen von einem Containerfeld wie den Dateipfad zu einer Datei, einem Bild oder einem QuickTime-Film abzurufen, verwenden Sie die CAST-Funktion mit einer SELECT-Anweisung.

  • Wenn Dateidaten oder JPEG-Binärdaten existieren, ruft die SELECT-Anweisung mit GetAS(feldname, 'JPEG') die Daten in Binärform ab. Ansonsten gibt die SELECT-Anweisung mit Feldname NULL zurück.

Beispiel

Verwenden Sie die Funktion CAST() zusammen mit einer SELECT-Anweisung, um Dateiverweisinformationen abzurufen.

Kopieren
SELECT CAST(Firmenbroschueren AS VARCHAR) FROM Vertriebsdaten

Wenn Sie in diesem Beispiel:

  • eine Datei in das Containerfeld mithilfe von FileMaker Pro eingefügt haben, aber nur einen Verweis auf die Datei gespeichert haben, ruft die SELECT-Anweisung die Dateiverweisinformationen als Typ SQL_VARCHAR ab.

  • den Inhalt einer Datei in das Containerfeld mithilfe von FileMaker Pro eingefügt haben, ruft die SELECT-Anweisung den Namen der Datei ab.

  • eine Datei in das Containerfeld von einer anderen Anwendung importiert haben, zeigt die SELECT-Anweisung '?' an (die Datei wird in FileMaker Pro als Untitled.dat angezeigt).

Sie können die SELECT-Anweisung mit der Funktion GetAs() auf folgende Arten verwenden, um die Daten in Binärform abzurufen:

  • Wenn Sie die Funktion GetAs() mit der Option DEFAULT verwenden, rufen Sie den Masterstream für den Container ab, ohne den Streamtyp exakt definieren zu müssen.

    Beispiel

    Kopieren
    SELECT GetAs(Firmenprospekte, DEFAULT) FROM Vertriebsdaten
  • Um einen einzelnen Streamtyp aus einem Container abzurufen, verwenden Sie die Funktion GetAs() mit dem Typ der Datei, je nachdem, wie die Daten in das Containerfeld in FileMaker Pro eingegeben wurden.

    Beispiele

    Wenn die Daten mit dem Befehl Einfügen > Datei eingefügt wurden, geben Sie 'FILE' in der Funktion GetAs() an.

    Kopieren
    SELECT GetAs(Firmenprospekte, 'FILE') FROM Vertriebsdaten

    Wenn die Daten mit dem Befehl Einfügen > Bild, per Drag & Drop oder aus der Zwischenablage eingefügt wurden, geben Sie einen der Dateitypen ein, die in der folgenden Tabelle genannt werden, z. B. 'JPEG'.

    Kopieren
    SELECT GetAs(Firmenlogo, 'JPEG') FROM Firmensymbole

    Dateityp

    Beschreibung

    'GIFf'

    Graphics Interchange Format

    'JPEG'

    Fotografische Bilder

    'TIFF'

    Raster-Dateiformat für digitale Bilder

    'PDF'

    Portable Document Format

    'PNGf'

    Bitmap-Bildformat