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 |