DB_Update

Aktualisiert einen Datensatze einer Tabelle.

Prototype


DB_Update( name, table )

Parameter


ParameterTypBedeutung
namestringName der Tabelle, die aktualisiert werden soll
tabletableLua-table mit den Schlüsselfeldern der zu aktualisierenden Tabelle und mit allen Werten

Rückgabewert


NummerTypBedeutung
1number0 oder ungleich 0 im Fehlerfall

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!
  • Es werden alle Felder der Tabelle aktualisiert! Felder, die nicht im übergebenen Lua-Table enthalten sind werden (je nach Typ) mit 0 oder blank("") gefüllt! Es empfiehlt sich, den zu ändernden Datensatz mit DB_Select zu lesen, die zu ändernden Felder in dem von DB_Select zurückgegebenen Lua-Table zu ändern und den Datensatz anschließend mit DB_Update zu aktualisieren!
  • Es ist sinnvoll, den Rückgabewert zu prüfen, da sonst der Erfolg der Anweisung nicht sichergestellt werden kann.
  • Bei einem Rückgabewert != 0 handelt es sich um einen Fehlercode der Datenbank, zu dem eine aussagekräftigere Fehlermeldung im DBA30 beauskunftet werden kann.

Beispiel


--[[
Das Programm demonstriert die Verwendung von DB_Update, indem es die 
Artikelbezeichnung 1 des Artikels 4711 ändert.  
--]]

-- Artikel 4711 lesen
local arttab = DB_Select( "arttab", {finr=SysLogFinr, artnr="4711"} )

-- wenn Artikel gefunden
if arttab then
   arttab.artbez1 = "neue Artikelbezeichnung"    -- Artikelbezeichnung ändern
   local retcode = DB_Update( "arttab", arttab )  -- DB aktualisieren
   
   -- Rückgabewert auf Fehler prüfen
   if retcode ~= 0 then
      SY_Msg( "Fehler in DB_Update! - " .. retcode )
   end
end