SQL_Fetch
- lk
Owned by lk
Liest den n+1-ten Datensatz bei einer Datenbankabfrage, die mehrere Datensätze als Ergebnis liefert.
Prototype
SQL_Fetch( query, n )
Parameter
Parameter | Typ | Bedeutung |
---|---|---|
query | string | SQL-Statement |
n | number | Index des zu lesenden Datensatzes (beginnt bei 0!) |
Rückgabewert
Nummer | Typ | Bedeutung |
---|---|---|
1 | table | Datensatz 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