Selecionar o último
Estrutura
SelectLast(sSQL): String:
Tipo
Função
Descrição
Esta função modifica o texto SQL de forma a que apenas retorne o último 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:
SelectLast("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 DESC
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 DESC
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 DESC) 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, SelectLast("SELECT GAGE_SN FROM GAGES WHERE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN")) then
ShowMessage("Último registo = " & tdFieldByNameAsString(1, "GAGE_SN"))
End If |