DB_Select

Liest einen Datensatz aus der Datenbank.

Prototype


DB_Select( name, table )

Parameter


ParameterTypBedeutung
namestringName der Tabelle, aus der der Datensatz gelesen werden soll
tabletableLua-table mit den Schlüsselfeldern des Datensatzes, der gelesen werden soll

Rückgabewert


NummerTypBedeutung
1tableSelektierten Datensatz oder nil, wenn keiner gefunden wurde

Hinweise


  • Falsche Anzahl oder Typ der Parameter, ein ungültiger Tabellenname, ungültige Feldnamen im Lua-Table im zweiten Parameter und sonstige datenbankseitige Fehler lösen einen Laufzeitfehler aus!
  • Bevor auf einzelne Felder des selektierten Datensatzes zugegeriffen wird, sollte man den Rückgabewert auf ungleich nil prüfen, da sonst, wenn kein Datensatz gefunden wurde, ein Laufzeitfehler ausgelöst wird ("attempt to index a nil value").
  • Sofern in der Tabelle, aus der gelesen werden soll, ein Mandant (finr) enthalten ist, wird dieser automatisch auf den aktuellen Mandanten eingeschränkt.
  • Die EXPOS-Funktion LiesTab leistet vergleichbare Dienste.

Beispiel


Das Programm demonstriert die Verwendung von DB_Select, indem es einen 
Datensatz aus dem Artikelstamm (arttab) liest. 
--]]

local tablename = "arttab" 
local artnr = "4711"       

-- Tabelle mit den Schlüsselfeldern vorbereiten
local arttab = {}
arttab.artnr = artnr

-- Datensatz selektieren
arttab = DB_Select( tablename, arttab )

-- Prüfen, ob Datensatz gefunden und Ausgabe
if arttab then
   SY_Msg( "Artikel: " .. arttab.artnr .. ", Bezeichnung 1 = " .. arttab.artbez1 .. ", Bezeichnung 2 = " .. arttab.artbez2 )
else
   SY_Msg( "Artikel " .. artnr .. " konnte nicht gefunden werden" )
end