DB_Select
lk
cs
Owned by lk
Liest einen Datensatz aus der Datenbank.
Prototype
DB_Select( name, table )
Parameter
Parameter | Typ | Bedeutung |
---|---|---|
name | string | Name der Tabelle, aus der der Datensatz gelesen werden soll |
table | table | Lua-table mit den Schlüsselfeldern des Datensatzes, der gelesen werden soll |
Rückgabewert
Nummer | Typ | Bedeutung |
---|---|---|
1 | table | Selektierten 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