Ir al contenido principal

Seleccionar primero

Estructura

SelectFirst(sSQL): Cadena:

Tipo

Función

Descripción

Esta función modifica el texto SQL para que solo devuelva el primer registro del conjunto de resultados. La sintaxis SQL varía entre MSSQL, FIREBIRD y ORACLE, por lo que resulta útil utilizar esta función en lugar de codificarla de forma fija para un solo tipo de base de datos. De esta forma, si la configuración se sincroniza con un tipo de base de datos diferente, el código SQL seguirá funcionando correctamente. Por ejemplo, si tuvieras esta función:

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

Entonces, un cliente de la base de datos FIREBIRD devolvería este texto:

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

Un cliente de bases de datos MSSQL devolvería este texto:

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

Un cliente de la base de datos ORACLE devolvería 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 función funcione, la consulta SQL proporcionada DEBE comenzar con el texto «SELECT » e incluir una cláusula «ORDER BY»; de lo contrario, el texto devuelto será simplemente una copia del texto SQL original.

Parámetros: 1

sSQL = el código SQL original

Valor devuelto

Cadena

Ejemplo

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

ShowMessage("Primer registro = " & tdFieldByNameAsString(1, "GAGE_SN"))

Fin Si |