Aller directement au contenu principal

Sélectionner le dernier

Structure

SelectLast(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 dernier 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 :

SelectLast("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 DESC

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 DESC

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

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

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

Fin Si |