SQL_Exec

Führt einen SQL-Befehl aus.

Prototype


SQL_Exec( query )

Parameter


ParameterTypBedeutung
querystringSQL-Statement

Rückgabewert


NummerTypBedeutung
1number0 bei erfolgreicher Ausführung oder ungleich 0 im Fehlerfall
2numberletzter SERIAL Wert bei erfolgreicher Ausführung oder 0 im Fehlerfall

Hinweise


  • Der Mandant muss eingeschränkt werden, dies erfolgt nicht wie zum Teil bei andern Lua-Funktionen automatisch!
  • Ein SELECT-Statement ist unzulässig!
  • Das SQL-Statement kann, muss aber nicht mit einem Semikolon beendet werden.
  • Gibt man ein ungueltiges SQL-Statement an, führt dies nicht zu einem Laufzeitfehler, es wird lediglich ein entsprechender Fehlercode zurückgegeben. Dieser kann z.B. im DBA10 eingegeben werden, um eine aussagekräftigere Fehlermeldung zu erhalten.
  • Für INSERT- oder UPDATE-Statements kommen auch die Lua-Funktionen DB_Insert oder DB_Update in Frage.
  • Es gibt die EXPOS-Funktion ExecSql, die genau das gleiche leistet.
  • Um die korrekte Ausführung sicherzustellen, sollte man auch hier den Rückgabewert prüfen.
  • ACHTUNG: Ein falscher Befehl, und die ganze Datenbank kann zerstört sein!

Beispiel


--[[
Aktualisiert die Artikelbezeichnung des Artikels mit der Artikel-Nr. 4711
und gibt den Rückgabewert der Funktion SQL_Exec aus
--]]

local query = "UPDATE arttab SET artbez1 = 'mein Lieblingsartikel' WHERE finr = " .. SysLogFinr .. " AND artnr = '4711'"
local res = SQL_Exec( query )
SY_Msg( "Rückgabewert = " .. res )