Cláusula FOR UPDATE

A cláusula FOR UPDATE bloqueia os registros das atualizações ou exclusões posicionadas através dos cursores SQL. O formato é:

Copiar
FOR UPDATE [OF expressões_coluna]

expressão_colunas é uma lista de nomes de campo na tabela de banco de dados que você pretende atualizar, separados por vírgula. expressão_colunas é opcional e é ignorado.

Exemplo

Retorne todos os registros do banco de dados de funcionários que têm um valor de campo SALÁRIO superior a US$ 20.000.

Copiar
SELECT * FROM emp WHERE salário > 20000 FOR UPDATE OF sobrenome, nome, salário

Quando cada registro é retornado, ele é bloqueado. Se o registro for atualizado ou excluído, o bloqueio será mantido até que você confirme a alteração. Do contrário, o bloqueio será liberado quando você pesquisar o próximo registro.

Exemplos

Uso

SQL de amostra

constante de texto

Copiar
SELECT 'CatDog' FROM Vendedores

constante numérica

Copiar
SELECT 999 FROM Vendedores

constante de data

Copiar
SELECT DATE '2021-06-05' FROM Vendedores

constante de hora

Copiar
SELECT TIME '02:49:03' FROM Vendedores

constante de carimbo de data/hora

Copiar
SELECT TIMESTAMP '2021-06-05 02:49:03' FROM Vendedores

coluna de texto

Copiar
SELECT Nome_Empresa FROM Dados_Venda
SELECT DISTINCT Nome_Empresa FROM Dados_Venda

coluna numérica

Copiar
SELECT Montante FROM Dados_Venda
SELECT DISTINCT Montante FROM Dados_Venda

coluna de data

Copiar
SELECT Data_Venda FROM Dados_Venda
SELECT DISTINCT Data_Venda FROM Dados_Venda

coluna de hora

Copiar
SELECT Tempo_Venda FROM Dados_Venda
SELECT DISTINCT Tempo_Venda FROM Dados_Venda

coluna de carimbo de data/hora

Copiar
SELECT Timestamp_Sold FROM Dados_Venda
SELECT DISTINCT Timestamp_Sold FROM Dados_Venda

coluna BLOB

Copiar
SELECT Brochuras_Empresa FROM Dados_Venda
SELECT GETAS(Logo_Empresa, 'JPEG') FROM Dados_Venda

Nota  Um BLOB é um campo de container de arquivo de banco de dados do FileMaker Pro.

Curinga *

Copiar
SELECT * FROM Vendedores
SELECT DISTINCT * FROM Vendedores

Notas dos exemplos

Uma coluna é uma referência para um campo no arquivo de banco de dados do FileMaker Pro. (O campo pode conter muitos valores distintos.)

O caractere curinga de asterisco (*) é a forma abreviada para “tudo”. No exemplo SELECT * FROM Vendedores, o resultado é todas as colunas da tabela Vendedores. No exemplo SELECT DISTINCT * FROM Vendedores, o resultado é todas as linhas exclusivas da tabela Vendedores (sem duplicatas).

Recuperação do conteúdo de um campo de container: CAST() function and GetAs() function

Você pode recuperar informações de referência de arquivo, dados binários ou dados de um tipo de arquivo específico em um campo de container.

  • Para recuperar informações de referência de arquivo de um campo de container, como o caminho para um arquivo, uma imagem ou um filme do QuickTime, use a função CAST() com uma instrução SELECT.

  • Se os dados do arquivo ou dados binários JPEG existem, a instrução SELECT com GetAs(nome de campo, 'JPEG') recupera os dados no formato binário. Caso contrário, a instrução SELECT com nome de campo retorna NULL.

Exemplo

Use a função CAST() com uma instrução SELECT para recuperar informações de referência de arquivo.

Copiar
SELECT CAST(Brochuras_Empresa AS VARCHAR) FROM Dados_Venda

Neste exemplo, se você

  • tiver inserido um arquivo em um campo de container, usando o FileMaker Pro, mas tiver armazenado somente uma referência ao arquivo, a instrução SELECT recuperará as informações de referência de arquivo como tipo SQL_VARCHAR.

  • tiver inserido o conteúdo de um arquivo no campo de container usando o FileMaker Pro, a instrução SELECT recuperará o nome do arquivo.

  • tiver importado um arquivo para o campo de container de outro aplicativo, a instrução SELECT exibirá '?' (o arquivo é exibido como Sem nome.dat no FileMaker Pro).

É possível usar a instrução SELECT com a função GetAs() para recuperar dados em formato binário das seguintes maneiras:

  • Se você usar a função GetAs() com a opção DEFAULT, recuperará o fluxo padrão para o container sem a necessidade de definir explicitamente o tipo de fluxo.

    Exemplo

    Copiar
    SELECT GetAs(Brochuras_Empresa, DEFAULT) FROM Dados_Venda
  • Para recuperar um tipo de fluxo individual de um container, use a função GetAs() com o tipo de arquivo baseado em como os dados foram inseridos no campo de container do FileMaker Pro.

    Exemplos

    Se os dados tiverem sido inseridos por meio do comando Inserir > Arquivo, especifique 'FILE' na função GetAs().

    Copiar
    SELECT GetAs(Brochuras_Empresa, 'FILE') FROM Dados_Venda

    Se os dados tiverem sido inseridos por meio do comando Inserir > Imagem, arraste e solte ou cole da Área de transferência, especifique um dos tipos de arquivo listados na tabela a seguir, por exemplo, 'JPEG'.

    Copiar
    SELECT GetAs(Logo_Empresa, 'JPEG') FROM Ícones_Empresa

    Tipo de arquivo

    Descrição

    'GIFf'

    Formato de intercâmbio de gráficos

    'JPEG'

    Imagens fotográficas

    'TIFF'

    Formato de arquivo raster para imagens digitais

    'PDF '

    Formato de documento portátil

    'PNGf'

    Formato de imagem de bitmap