Zum Hauptinhalt springen

Letztes auswählen

Aufbau

SelectLast(sSQL): Zeichenfolge:

Typ

Funktion

Beschreibung

Diese Funktion passt den SQL-Text so an, dass nur der letzte Datensatz der Ergebnismenge zurückgegeben wird. Diese SQL-Syntax unterscheidet sich zwischen MSSQL, FIREBIRD und ORACLE – daher ist es sinnvoll, diese Funktion zu verwenden, anstatt eine bestimmte Datenbankart fest zu programmieren. Auf diese Weise funktioniert die SQL-Anweisung auch dann einwandfrei, wenn die Konfiguration mit einem anderen Datenbanktyp synchronisiert wird. Nehmen wir zum Beispiel an, Sie hätten folgende Funktion:

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

Dann würde ein FIREBIRD-Datenbankclient folgenden Text zurückgeben:

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

Ein MSSQL-Datenbankclient würde folgenden Text zurückgeben:

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

Ein ORACLE-Datenbankclient würde folgenden Text zurückgeben:

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

WICHTIG: Damit diese Funktion funktioniert, MUSS die angegebene SQL-Anweisung mit dem Text „SELECT “ beginnen und eine „ORDER BY“-Klausel enthalten – andernfalls ist der zurückgegebene Text lediglich eine Kopie des ursprünglichen SQL-Textes.

Parameter: 1

sSQL = die ursprüngliche SQL-Anweisung

Rückgabewert

Zeichenkette

Beispiel

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

ShowMessage("Letzter Datensatz = " & tdFieldByNameAsString(1, "GAGE_SN"))

End If |