DB_Insert
- hjk
- lk
Owned by hjk
Beschreibung
Fügt einen Datensatz in die Datenbank ein.
Prototyp
DB_Insert( name, table )
Parameter
Parameter | Typ | Bedeutung |
---|---|---|
name | string | Name der Tabelle, in die eingefügt werden soll |
table | table | Lua-table mit den Werten, die in die Datenbank eingefügt werden sollen |
Rückgabewerte
Nummer | Typ | Bedeutung |
---|---|---|
1 | number | 0 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