Vai al contenuto principale

Seleziona l'ultimo

Struttura

SelectLast(sSQL): Stringa:

Tipo

Funzione

Descrizione

Questa funzione modifica il testo SQL in modo che restituisca solo l'ultimo record nel set di risultati. La sintassi SQL varia a seconda che si tratti di MSSQL, FIREBIRD o ORACLE; è quindi utile ricorrere a questa funzione piuttosto che ricorrere a un codice fisso per un solo tipo di database. In questo modo, se la configurazione viene sincronizzata con un tipo di database diverso, il codice SQL continuerà a funzionare correttamente. Ad esempio, se avessi questa funzione:

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

In tal caso, un client del database FIREBIRD restituirebbe questo testo:

SELECT PRIMO 1 GAGE_SN DA GAGES DOVE COMPANY = 'ABC COMPANY' ORDER BY COMPANY, GAGE_SN DESC

Un client del database MSSQL restituirebbe questo testo:

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

Un client del database ORACLE restituirebbe questo testo:

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

IMPORTANTE: affinché questa funzione funzioni, il codice SQL fornito DEVE iniziare con il testo «SELECT » e includere una clausola «ORDER BY»; in caso contrario, il testo restituito sarà semplicemente una copia del codice SQL originale.

Parametri: 1

sSQL = il codice SQL originale

Valore restituito

Stringa

Esempio

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

ShowMessage("Ultimo record = " & tdFieldByNameAsString(1, "GAGE_SN"))

End If |