Vai al contenuto principale

Seleziona per primo

Struttura

SelectFirst(sSQL): Stringa:

Tipo

Funzione

Descrizione

Questa funzione modifica il testo SQL in modo che restituisca solo il primo 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:

SelectFirst("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

Un client del database MSSQL restituirebbe questo testo:

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

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) 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

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

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

Fine Se |