FOR UPDATE 句

FOR UPDATE 句は、SQL カーソルによる位置付け更新または位置付け削除を実行します。形式は次のとおりです:

コピー
FOR UPDATE [OF 列式]

列式は、更新するデータベーステーブル内のフィールド名をコンマで区切ったリストです。列式はオプションで省略可能です。

給与フィールドの値が 2,000,000 円を超える、従業員名簿データベース内のすべてのレコードを返します。

コピー
SELECT * FROM "従業員名簿" WHERE "給与" > 2000000 FOR UPDATE OF "姓", "名", "給与"

各レコードは取得時にロックされます。レコードを更新または削除する場合、ロックは変更を確定するまで維持されます。その他の場合は次のレコードを取得するとロックは解除されます。

使用する列

SQL の例

文字列定数

コピー
SELECT 'CatDog' FROM "営業社員"

数値定数

コピー
SELECT 999 FROM "営業社員"

日付定数

コピー
SELECT DATE 2021-06-05 FROM "営業社員"

時刻定数

コピー
SELECT TIME '02:49:03' FROM "営業社員"

タイムスタンプ定数

コピー
SELECT TIMESTAMP 2021-06-05 02:49:03' FROM "営業社員"

テキスト列

コピー
SELECT "会社名" FROM "営業データ"
SELECT DISTINCT "会社名" FROM "営業データ"

数字列

コピー
SELECT "金額" FROM "営業データ"
SELECT DISTINCT "金額" FROM "営業データ"

日付列

コピー
SELECT "売上日" FROM "営業データ"
SELECT DISTINCT "売上日" FROM "営業データ"

時刻列

コピー
SELECT "売上時刻" FROM "営業データ"
SELECT DISTINCT "売上時刻" FROM "営業データ"

タイムスタンプ列

コピー
SELECT "売上タイムスタンプ" FROM "営業データ"
SELECT DISTINCT "売上タイムスタンプ" FROM "営業データ"

BLOB 列

コピー
SELECT "会社パンフレット" FROM "営業データ"
SELECT GETAS("会社ロゴ", 'JPEG') FROM "営業データ"

メモ  BLOB は、FileMaker Pro データベースファイルのオブジェクトフィールドです。

ワイルドカード *

コピー
SELECT * FROM "営業社員"
SELECT DISTINCT * FROM "営業社員"

これらの例に関する注意

は FileMaker Pro データベースファイルのフィールドの参照です(フィールドには複数の値が含まれている場合があります)。

アスタリスク (*) のワイルドカード文字は、「すべて」を簡単に指定する方法です。たとえば、SELECT * FROM "営業社員"では、結果は営業社員テーブル内のすべての行になります。SELECT DISTINCT * FROM "営業社員"の例では、結果は営業社員テーブル内にある固有な (重複しない) 行すべてになります。

  • FileMaker ソフトウェアは空の文字列のデータを保存しないため、次のクエリーでは常にレコードが返されません:

    コピー
    SELECT * FROM テスト WHERE c =''
    SELECT * FROM テスト WHERE c <>''
  • バイナリデータで SELECT を使用している場合は、返すストリームを指定する GetAs() 関数を使用する必要があります。詳細については、「オブジェクトフィールドの内容の取得:CAST() 関数と GetAs() 関数」を参照してください。

オブジェクトフィールドの内容の取得:CAST() 関数と GetAs() 関数

オブジェクトフィールドから、ファイル参照情報、バイナリデータ、または特定のファイルタイプのデータを取得することができます。

  • ファイルへのファイルパス、ピクチャ、またはビデオなど、オブジェクトフィールドからファイル参照情報 (ファイルパスなど) を取得するには、CAST() 関数を使用した SELECT ステートメントを使用します。

  • ファイルデータまたは JPEG バイナリデータが存在する場合、GetAs( "フィールド名", 'JPEG') を使用した SELECT ステートメントによってデータがバイナリ形式で取得されます。存在しない場合は、フィールド名を使用した SELECT ステートメントは NULL を返します。

ファイル参照情報を取得するには、CAST() 関数を使用した SELECT ステートメントを使用します。

コピー
SELECT CAST( "会社パンフレット" AS VARCHAR) FROM "営業データ"

この例で取得する内容は次のとおりです:

  • FileMaker Pro を使用してオブジェクトフィールドにファイルを挿入してファイルへの参照のみを保存する場合、SELECT ステートメントによってタイプ SQL_VARCHAR というファイル参照情報が取得されます。

  • FileMaker Pro を使用してオブジェクトフィールドにファイルの内容を挿入すると、SELECT ステートメントによってファイル名が取得されます。

  • 別のアプリケーションからオブジェクトフィールドにファイルがインポートされると、SELECT ステートメントは「?」を表示します (FileMaker Pro では、ファイルは 名称未設定.dat と表示されます)。

データをバイナリ形式で取得するには、次の方法で SELECT ステートメントと GetAs() 関数を使用できます:

  • GetAs() 関数を DEFAULT オプションと使用する場合、ストリームタイプを明示的に定義する必要なく、オブジェクトのデフォルトストリームを取得します。

    コピー
    SELECT GetAs("会社パンフレット", 'DEFAULT') FROM "営業データ"
  • オブジェクトから個々のストリームタイプを取得するには、FileMaker Pro のオブジェクトフィールドにデータが挿入された方法に基づいたファイルタイプを指定した GetAs() 関数を使用します。

    [挿入] > [ファイル...] コマンドでデータが挿入された場合、GetAs() 関数で 'FILE' を指定します。

    コピー
    SELECT GetAs("会社パンフレット", 'FILE') FROM "営業データ"

    [挿入] > [ピクチャ...] コマンド、ドラッグ&ドロップ、またはクリップボードから貼り付け (ペースト) してデータが挿入された場合、次の一覧の 'JPEG' などのファイルタイプの 1 つを指定します。

    コピー
    SELECT GetAs("会社ロゴ", 'JPEG') FROM "会社アイコン"

    ファイルタイプ

    説明

    'GIFf'

    Graphics Interchange Format

    'JPEG'

    写真イメージ

    'TIFF'

    デジタルイメージのラスタファイル形式

    'PDF'

    Portable Document Format

    'PNGf'

    Bitmap イメージ形式