SQL_CFetch
Liest den nächsten Datensatz aus einem mit SQL_CDecl erzeugten Cursor.
Prototype
SQL_CFetch( id )
Parameter
Parameter | Typ | Bedeutung |
---|---|---|
id | string | Eindeutiger Bezeichner für den Cursor |
Rückgabewert
Nummer | Typ | Bedeutung |
---|---|---|
1 | table | Lua-Table mit dem gelesenen Datensatz oder nil, wenn alle Datensätze gelesen sind. |
Hinweise
Die Funktion wird nur im Zusammenhang mit SQL_CDecl und SQL_CFree verwendet und macht alleine keinen Sinn.
Die Funktion kann nur auf einen Cursor angewendet werden, der mit SQL_CDecl angelegt wurde.
Tritt ein Datenbank-Fehler auf, führt dies zu einem Laufzeitfehler.
zum Lesen mehrerer Datensätze kann auch die Lua-Funktion SQL_Fetch verwendet werden.
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"
-- Cursor erzeugen
SQL_CDecl( "gpktab_curs", query )
local gpktab = SQL_CFetch( "gpktab_curs" ) -- ersten Datensatz lesen
-- Ausgabe Titel
SY_Msg( "Alphabetische Mitarbeiterliste:" )
while gpktab do -- solange Datensätze vorhanden sind (gpktab ~= nil)
-- Ausgabe Mitarbeiter
SY_Msg( gpktab.nname .. ", " .. gpktab.vname )
gpktab = SQL_CFetch( "gpktab_curs" ) -- nächsten Datensatz lesen
end
-- Speicher freigeben
SQL_CFree( "gpktab_curs" )