MsSqlQuery¶
Kurzbeschreibung¶
MsSqlQuery ist ein General-Brick. Er kann eine als Freitext-Parameter eingegebene SQL-Abfrage an einen SQL Server durchführen und schickt die dabei zurückgelieferten Zeilen als Flow-Packet weiter.
Input¶
MsSqlQuery besitzt einen Input-Port.
substitutions = <string -> variant>
: doc "map of variables to replace in the query.
The key is the name of the variable,
the value is the value of the variable";
Als Input empfängt MsSqlQuery ein Objekt oder eine Map mit Werten die in der SQL-Abfrage als Parameter genutzt werden können.
Output¶
MsSqlQuery besitzt zwei Output-Ports, "QueryResult"
und "Error"
.
result = variant* : doc "list of rows returned by the query";
error = none;
Als QueryResult verschickt MsSqlQuery eine Liste von Zeilen, die aus der
SQL-Abfrage entstanden ist. Sollte auf eine Abfrage kein Ergebnis erwartet
werden, wird eine leere list zurückgegeben. Dies ist beispielsweise bei
einer INSERT
Abfrage def Fall.
Der Error output wird verwendet, sobald ein Fehler auftritt, der durch fehlerhafte Nutzung des Bricks oder einen fehlenden Variabel-Input zustande kommt. Dies ist beispielsweise der Fall, wenn ein SQL-Syntaxfehler in dem Query-Parameter auftritt. Der Wert von Error ist immer none, da nur weitergeleitet wird, dass ein Fehler aufgetreten ist.
Parametrisierung¶
MsSqlQuery hat folgende Parameter:
Host
User
Password
Database
Query
Host¶
Host
ist die URL-Adresse des SQL Servers, and den Abfragen geschickt werden sollen.
Standardwert : “”
string
Pflichtfeld
User¶
User
ist der Name des Nutzers, mit dem der Login erfolgen soll.
Standardwert : “”
string
Password¶
Password
ist das zum Nutzer dazugehörige Passwort.
Standardwert : “”
secret
Database¶
Database
ist der Name der abzufragenden Datenbank.
Standardwert : “”
string
Query¶
Query
ist der Quelltext der SQL-Abfrage. Die Abfrage kann durch Variabel-Platzhalter
parametrisiert werden. Die Platzhalter werden in der Syntax %(name)s
, wo
name
durch den Variabelnamen zu ersetzen ist, angegeben. Dann erwartet der
Brick ein Objekt bzw. eine Map, in der für jede Variabel ein Feld existiert,
welches den Namen der Variabel trägt.
Beispiel¶
die Abfrage
SELECT * FROM TestTable WHERE id = %(id)s AND name = %(name)s;"
mit dem Input { "id": 1, "name": "TEST" }
generiert die finale Abfrage:
SELECT * FROM TestTable WHERE id = 1 AND name = "TEST";
Der Input wird dabei bereinigt, sodass möglicher SQL-Injection vorgebeugt wird.
Standardwert : “”
string
Pflichtfeld
Funktion¶
MsSqlQuery bekommt als Flow-Pakete eine Sammlung von Variabeln. Diese werden dann in die SQL-Abfrage eingebettet, indem dort vermerkte Variabeln durch die Input-Werte ersetzt werden. Die nun vervollständigte SQL-Abfrage wird dann an den angegebenen Server gesendet. Daraufhin wird die Antwort als Flow-Paket weiter verschickt. Sollte ein Fehler auftreten, wird dieser über den Error Port bekannt gegeben.
Python-Module¶
MsSqlQuery benutzt folgende Python-Module:
pymssql