DB_Insert




Beschreibung


Fügt einen Datensatz in die Datenbank ein.

Prototyp


DB_Insert( name, table )


Parameter


ParameterTypBedeutung
namestringName der Tabelle, in die eingefügt werden soll
tabletableLua-table mit den Werten, die in die Datenbank eingefügt werden sollen

Rückgabewerte


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!
  • Sind in dem als Lua-table übergebenen zweiten Parameter nicht alle Felder der Tabelle in der Datenbank enthalten, so werden zusätzliche Felder je nach Datentyp mit blank ("") oder mit 0 aufgefüllt.
  • Es empfiehlt sich, 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.

Beispiele


--[[
Das Programm demonstriert die Verwendung von DB_Insert, indem es einen 
neuen Datensatz in die Anreden-Tabelle (anrtab) schreibt. 
--]]

local anrtab = {} -- leeren Lua-table erzeugen

-- größten Wert für das Schlüsselfeld 'anrede' aus der anrtab lesen (um DUPLICATE VALUES zu verhindern!)
local res = SQL_Select( "SELECT MAX(anrede) AS max FROM anrtab WHERE anrtab.finr = " .. SysLogFinr )

-- neues Sachb.-Änderungs-Kz. ermitteln: 
local persnr = "wl" -- Personal-Nr. 
local sbaen = SY_UpdateSbaen( persnr, "" )

-- die einzelnen Felder befüllen
anrtab.finr   = SysLogFinr
anrtab.anrede = res.max + 1
anrtab.bez30  = "Mister"
anrtab.kbez10 = "Mister"
anrtab.status = "A"
anrtab.sbaen  = sbaen

-- ... und in die Datenbank schreiben
local retcode = DB_Insert( "anrtab", anrtab )

-- Rückgabewert prüfen
if retcode ~= 0 then
   SY_Msg( "Folgender Fehler ist beim INSERT aufgetreten: " .. retcode )
else
   SY_Msg( "INSERT erfolgreich!" )
end