Dieses Dokument wurde von KI übersetzt. Für genaue Informationen lesen Sie bitte die englische Version.
ctx.sql
ctx.sql bietet Funktionen zur Ausführung und Verwaltung von SQL, die häufig in RunJS (wie JSBlock, Ereignis-Workflows) verwendet werden, um direkt auf die Datenbank zuzugreifen. Es unterstützt die temporäre SQL-Ausführung, die Ausführung gespeicherter SQL-Vorlagen nach ID, Parameterbindung, Vorlagenvariablen ({{ctx.xxx}}) sowie die Steuerung des Ergebnistyps.
Anwendungsfälle
Hinweis:
ctx.sqlgreift über dieflowSql-API auf die Datenbank zu. Stellen Sie sicher, dass der aktuelle Benutzer über die entsprechenden Ausführungsberechtigungen für die Datenquelle verfügt.
Berechtigungen
Die Frontend-Logik für reguläre Benutzer sollte ctx.sql.runById(uid, options) verwenden. Wenn dynamisches SQL oder die Verwaltung von Vorlagen erforderlich ist, stellen Sie sicher, dass die aktuelle Rolle über SQL-Konfigurationsberechtigungen verfügt.
Typdefinition
Gängige Methoden
Hinweis:
runwird zum Debuggen von SQL verwendet und erfordert Konfigurationsberechtigungen.saveunddestroywerden zur Verwaltung von SQL-Vorlagen verwendet und erfordern Konfigurationsberechtigungen.runByIdist für reguläre Benutzer offen; es kann nur gespeicherte Vorlagen ausführen und das SQL weder debuggen noch ändern.- Wenn eine SQL-Vorlage geändert wird, muss
saveaufgerufen werden, um die Änderungen zu speichern.
Parameter
Optionen für run / runById
Optionen für save
SQL-Vorlagenvariablen und Parameterbindung
Vorlagenvariablen {{ctx.xxx}}
Sie können {{ctx.xxx}} in SQL verwenden, um auf Kontextvariablen zu verweisen. Diese werden vor der Ausführung in tatsächliche Werte aufgelöst:
Die Quellen für referenzierbare Variablen sind dieselben wie bei ctx.getVar() (z. B. ctx.user.*, ctx.record.*, benutzerdefinierte ctx.defineProperty usw.).
Parameterbindung
- Benannte Parameter: Verwenden Sie
:nameim SQL und übergeben Sie ein Objekt{ name: value }inbind. - Positionsparameter: Verwenden Sie
?im SQL und übergeben Sie ein Array[value1, value2]inbind.
Beispiele
Temporäres SQL ausführen (Erfordert SQL-Konfigurationsberechtigung)
Verwendung von Vorlagenvariablen
Vorlagen speichern und wiederverwenden
Paginierte Liste (SQLResource)
Beziehung zu ctx.resource und ctx.request
ctx.sql kapselt die flowSql-API und ist auf SQL-Szenarien spezialisiert; ctx.request kann verwendet werden, um jede beliebige API aufzurufen.
Wichtige Hinweise
- Verwenden Sie Parameterbindung (
:name/?) anstelle von String-Verkettung, um SQL-Injection zu vermeiden. type: 'selectVar'gibt einen skalaren Wert zurück, der normalerweise fürCOUNT,SUMusw. verwendet wird.- Vorlagenvariablen
{{ctx.xxx}}werden vor der Ausführung aufgelöst; stellen Sie sicher, dass die entsprechenden Variablen im Kontext definiert sind.
Verwandte Themen
- ctx.resource: Datenressourcen; SQLResource ruft intern die
flowSql-API auf. - ctx.initResource(): Initialisiert SQLResource für paginierte Listen usw.
- ctx.request(): Allgemeine HTTP-Anfragen.

