Aller directement au contenu principal

Sélectionner d'abord

Structure

SelectFirst(sSQL) : Chaîne de caractères :

Type

Fonction

Description

Cette fonction modifie le texte SQL de manière à ce qu'il ne renvoie que le premier enregistrement du jeu de résultats. La syntaxe SQL varie selon qu'il s'agit de MSSQL, FIREBIRD ou ORACLE ; il est donc préférable d'utiliser cette fonction plutôt que de coder en dur pour un seul type de base de données. De cette façon, si la configuration est synchronisée avec un autre type de base de données, le code SQL continuera de fonctionner correctement. À titre d'exemple, si vous aviez cette fonction :

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

Dans ce cas, un client de base de données FIREBIRD renverrait ce texte :

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

Un client de base de données MSSQL renverrait ce texte :

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

Un client de base de données ORACLE renverrait ce texte :

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

IMPORTANT : Pour que cette fonction fonctionne, la requête SQL fournie DOIT commencer par « SELECT » et comporter une clause « ORDER BY » ; sinon, le texte renvoyé sera simplement une copie de la requête SQL d'origine.

Paramètres : 1

sSQL = le code SQL d'origine

Valeur de retour

Chaîne

Exemple

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

ShowMessage("Premier enregistrement = " & tdFieldByNameAsString(1, "GAGE_SN"))

End If |