SQL_Exec
lk
sk
Owned by lk
Führt einen SQL-Befehl aus.
Prototype
SQL_Exec( query )
Parameter
Parameter | Typ | Bedeutung |
---|---|---|
query | string | SQL-Statement |
Rückgabewert
Nummer | Typ | Bedeutung |
---|---|---|
1 | number | 0 bei erfolgreicher Ausführung oder ungleich 0 im Fehlerfall |
2 | number | letzter 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 )