SQL_Fetch

Liest den n+1-ten Datensatz bei einer Datenbankabfrage, die mehrere Datensätze als Ergebnis liefert.

Prototype


SQL_Fetch( query, n )

Parameter


ParameterTypBedeutung
querystringSQL-Statement
nnumberIndex des zu lesenden Datensatzes (beginnt bei 0!)

Rückgabewert


NummerTypBedeutung
1tableDatensatz oder nil

Hinweise


  • Der Mandant muss eingeschränkt werden, dies erfolgt nicht wie zum Teil bei andern Lua-Funktionen automatisch!
  • Das SQL-Statement kann, muss aber nicht mit einem Semikolon beendet werden.
  • Rückgabewert auf ungleich nil prüfen!
  • Wird am sinnvollsten innerhalb einer Schleife verwendet.
  • Siehe auch SQL_C*-Funktionen, die sind performanter.
  • Führt bei Syntaxfehlern im SELECT-Statement zu Laufzeitfehlern!

Beispiel


--[[ 
Alle Mitarbeiter aus dem Personalstamm lesen
und in einer alphabetisch sortierten Liste ausgeben
--]]

-- SELECT-Statement vorbereiten
local query = "SELECT * FROM gpktab WHERE finr = " .. SysLogFinr .. " ORDER BY nname, vname"
local index = 0;                            -- Datensatz-Zählvariable (beginnt bei 0!)
local gpktab = SQL_Fetch( query, index )    -- ersten Datensatz lesen

-- Ausgabe Titel
SY_Msg( "Alphabetische Mitarbeiterliste:" )

while gpktab do                             -- solange Datensätze vorhanden sind (gpktab ~= nil)
   index = index + 1                        -- index inkrementieren
   
   -- Ausgabe Mitarbeiter
   SY_Msg( "Mitarbeiter " .. index .. ": " .. gpktab.nname .. ", " .. gpktab.vname )
   
   gpktab = SQL_Fetch( query, index )       -- nächsten Datensatz lesen
end