Skip to main content

Optionen

string
erforderlich
Der Hostname oder die IP-Adresse des MSSQL-Servers.
string
erforderlich
Der Port des MSSQL-Servers.
string
erforderlich
Der Benutzername für die Anmeldung.
string
erforderlich
Das Passwort für die Anmeldung.
string
erforderlich
Der Name der Datenbank.
string
erforderlich
Das SQL-Statement, das ausgeführt werden soll. Werte aus den Argumenten werden über die Platzhalter ?1 bis ?10 eingesetzt. Setzen Sie Platzhalter nicht in Anführungszeichen.

Platzhalter im SQL-Statement

Die Platzhalter ?1 bis ?10 verweisen auf die Argumente argument1 bis argument10. Maßgeblich ist dabei die Nummer, nicht die Reihenfolge im Statement. Ein Platzhalter darf mehrfach vorkommen. Die Werte werden als Parameter an die Datenbank übergeben und dort ausschließlich als Werte behandelt, nicht als Teil des Statements. Das verhindert SQL-Injection und macht ein eigenes Maskieren oder Quoten unnötig. Daraus ergeben sich drei Regeln:
  • Platzhalter stehen immer ohne Anführungszeichen im Statement: WHERE kunde = ?1 ist korrekt, WHERE kunde = '?1' nicht.
  • Platzhalter stehen nur für Werte. Datenbank-, Tabellen- und Spaltennamen müssen fest im Statement hinterlegt sein.
  • Zusätzliche Zeichen wie Wildcards werden an den Platzhalter angehängt, statt in ihn hineingeschrieben zu werden.
Ein Platzhalter in Anführungszeichen wird zu festem Text und nicht zum übergebenen Wert. Die beiden Fehlerbilder unterscheiden sich: LIKE '%?1%' sucht nach dem festen Text ?1 und liefert ein leeres Ergebnis, ohne dass ein Fehler entsteht. datum >= '?2' erzeugt dagegen einen Konvertierungsfehler in SQL Server, den der Konnektor als fehlgeschlagene Abfrage meldet.

Suche mit LIKE

Die Prozentzeichen gehören als eigenständiger Text in das Statement und werden mit dem Platzhalter verbunden:
Gleichwertig ist WHERE kunde LIKE CONCAT('%', ?1, '%'). Nicht verwendbar ist WHERE kunde LIKE '%?1%'.

Datums- und Zahlenwerte

Argumente werden immer als Text übergeben. Verwenden Sie für Datumswerte das Format yyyy-mm-dd; SQL Server wandelt es beim Vergleich automatisch in einen Datumswert um:
Fragen Sie einen Zeitraum mit >= für den Beginn und < für das Ende ab. Bei Spalten mit Uhrzeit fehlen sonst die Einträge des letzten Tages. Soll die Umwandlung ausdrücklich im Statement stehen, verwenden Sie CAST(?2 AS date).

Nicht gefüllte Argumente

Nicht gefüllte Argumente werden als leerer Text übergeben. Bei einer LIKE-Suche entsteht daraus LIKE '%%', das alle Datensätze zurückgibt. Beschreiben Sie deshalb bei jedem Argument, welcher Wert und welches Format erwartet werden. argument1 ist ein Pflichtfeld: Ohne Wert führt der Konnektor die Abfrage nicht aus.

Argumente

string
erforderlich
Wert für den ersten Parameter im SQL-Statement.
string
Wert für den zweiten Parameter im SQL-Statement.
string
Wert für den dritten Parameter im SQL-Statement.
string
Wert für den vierten Parameter im SQL-Statement.
string
Wert für den fünften Parameter im SQL-Statement.
string
Wert für den sechsten Parameter im SQL-Statement.
string
Wert für den siebten Parameter im SQL-Statement.
string
Wert für den achten Parameter im SQL-Statement.
string
Wert für den neunten Parameter im SQL-Statement.
string
Wert für den zehnten Parameter im SQL-Statement.

Beispiel

Die folgende Abfrage sucht Verträge eines Kunden, deren Laufzeit in einem bestimmten Zeitraum endet. Der Kundenname wird als Teilbegriff gesucht, der Zeitraum über zwei Datumswerte eingegrenzt. Option query:
Beschreibung der Argumente:
Mit den Werten Muster, 2025-01-01 und 2025-07-01 führt die Datenbank die Abfrage so aus, als stünde dort kunde LIKE '%Muster%' und laufzeit_ende >= '2025-01-01' AND laufzeit_ende < '2025-07-01'.

Fehlerbehebung

Prüfen Sie, ob die Platzhalter in Anführungszeichen stehen. '%?1%' wird als fester Text ausgeführt und liefert deshalb ein leeres Ergebnis statt eines Fehlers. Schreiben Sie stattdessen '%' + ?1 + '%'.
Ein nicht gefülltes Argument wird als leerer Text übergeben. In einer LIKE-Bedingung entsteht daraus '%%', das auf alle Datensätze passt. Beschreiben Sie das erwartete Format im Argument oder grenzen Sie die Abfrage im Statement zusätzlich ein.
Übergeben Sie Datumswerte im Format yyyy-mm-dd. Bei Spalten mit Uhrzeit grenzen Sie den Zeitraum mit >= und < ein, damit die Einträge des letzten Tages enthalten sind.
Kann das Statement nicht ausgeführt werden, meldet der Konnektor dies als fehlgeschlagene Abfrage und gibt die Meldung der Datenbank weiter; sie wird zusätzlich im Systemprotokoll erfasst. Eine solche Meldung bedeutet nicht, dass keine passenden Daten vorhanden sind. Prüfen Sie das Statement direkt auf der Datenbank und ersetzen Sie die Platzhalter dort testweise durch feste Werte.