Ir diretamente para o conteúdo principal

Selecionar primeiro

Estrutura

SelectFirst(sSQL): String:

Tipo

Função

Descrição

Esta função modifica o texto SQL de forma a que apenas retorne o primeiro registo do conjunto de resultados. Esta sintaxe SQL varia entre o MSSQL, o FIREBIRD e o ORACLE — por isso, é útil utilizar esta função em vez de codificar manualmente para um único tipo de base de dados. Desta forma, se a configuração for sincronizada com um tipo de base de dados diferente, o código SQL continuará a funcionar corretamente. Por exemplo, se tivesse esta função:

SelectFirst("SELECT GAGE_SN FROM GAGES WHERE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN")

Nesse caso, um cliente da base de dados FIREBIRD devolveria este texto:

SELECT O PRIMEIRO GAGE_SN DA TABELA GAGES ONDE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN

Um cliente de base de dados MSSQL devolveria este texto:

SELECT TOP 1 GAGE_SN FROM GAGES WHERE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN

Um cliente da base de dados ORACLE apresentaria este texto:

SELECT GAGE_SN FROM (SELECT GAGE_SN FROM GAGES WHERE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN) WHERE ROWNUM = 1

IMPORTANTE: Para que esta função funcione, o código SQL fornecido DEVE começar com o texto «SELECT » e incluir uma cláusula «ORDER BY» — caso contrário, o texto devolvido será simplesmente uma cópia do código SQL original.

Parâmetros: 1

sSQL = o SQL original

Valor de retorno

Cadeia de caracteres

Exemplo

if tdDoSQLRecords(1, SelectFirst("SELECT GAGE_SN FROM GAGES WHERE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN")) then

ShowMessage("Primeiro registo = " & tdFieldByNameAsString(1, "GAGE_SN"))

End If |