SQL Datenbanken

Verbindungseinstellungen Firebird, IBM DB2, MariaDB, Microsoft Azure SQL, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SQLite

▪    Grundeinstellungen: Geben Sie den Server (<Servername>
[\<Instanzname>][:<Port>] an und wählen Sie die Authentifizierungsart.
Als Anmeldeart werden sowohl SQL Server Authentifizierung als auch Windows Authentifizierung unterstützt.

Die Windows Authentifizierung stellt die höchste Sicherheitsstufe dar und benutzt die Windows-Benutzerkonten auch für die Anmeldung am SQL Server.

Über die SQL Server Authentifizierung (sofern von Ihrem Server unterstützt) sind auch externe Zugriffe möglich.

▪    Expertenmodus: Für spezielle Verbindungseinstellungen können Sie die Verbindungszeichenfolge ("Connection String") manuell eingeben.

Beispiele für Connection Strings:

Firebird: User=SYSDBA;Password=masterkey;Database=myDataBase.fdb; DataSource=localhost;Port=3050;Dialect=3;Charset=NONE; Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0; MaxPoolSize=50;Packet Size=8192;ServerType=0

Microsoft Azure SQL: Server=tcp:myServerName.database.windows.net; Database=myDataBase;User ID=myUsername@myServerName; Password=myPassword;Trusted_Connection=False;Encrypt=True;

Microsoft SQL Server: Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

MySQL: Server=myServerAddress;Port=3306;Database=myDataBase; Uid=myUsername;Pwd=myPassword;

PostgreSQL: Server=127.0.0.1;Port=5432;Database=myDataBase;User
Id=myUsername;Password=myPassword;

In speziellen Fällen kann es notwendig sein, den Timeout direkt in der Verbindungszeichenfolge zu erhöhen, um eine Verbindung herstellen zu können. Informationen zu Connection Strings finden Sie z. B. auf https://www.connectionstrings.com.

Beispiel für PostgreSQL:

Server=127.0.0.1;Port=5432;Database=myDataBase;User Id=myUsername;Password=myPassword;CommandTimeout=20;Timeout=15;

Daten auswählen

Sie können die Datenbank auf verschiedene Arten als Datenquelle nutzen:

▪    Gesamte Datenbank: Es stehen alle Tabellen und Sichten zur Verfügung, auf die über die angegebene Authentifizierung zugegriffen werden kann.

▪    Ausgewählte Tabellen: Es stehen nur die ausgewählten Tabellen und Sichten zur Verfügung.

▪    Einzelabfragen: Sie definieren beliebige SQL-Abfragen, deren Ergebnistabellen dann in Berichten verwendet werden können. Testen Sie die Abfrage über die entsprechende Schaltfläche. Sie können beliebig viele Abfragen angeben.

▪    SQL-Abfrage hinzufügen: Geben Sie den Tabellennamen an und definieren Sie die Abfrage.

Beispiel für eine Einzelabfrage:

SELECT users.type, sale.date_finished::date AS date,

SUM(sale_position.amount) AS total_amount

FROM public.sale_position, public.sale, public.users

WHERE sale.date_finished IS NOT NULL

GROUP BY sale.date_finished::date, users.type;

▪    Abfrage hinzufügen (Assistent): Bei einigen Datenquellen (u. a. MS SQL, Oracle, MySQL, MariaDB, PostgreSQL, SQLite) steht Ihnen für die Erstellung der Abfrage auch ein Assistent zur Verfügung. Weitere Informationen zum Assistenten finden Sie im Abschnitt Abfrage-Assistent.

▪    Routine hinzufügen (Assistent): Bei einigen Datenquellen können  Routinen (Gespeicherte Prozeduren, Tabellenwertfunktionen) mit den definierten Parametern (inkl. Unterstützung für Datenquellen-Parameter) hinzugefügt werden. Diese Routinen können ebenfalls Daten zurückgeben und somit direkt im Report Server verwendet werden.

Unterstützte Datenquellen:

▪    MSSQL: Stored Procedures, Table-Valued Functions

▪    MySQL/MariaDB: Stored Procedures

▪    PostgreSQL: Table-Valued Functions (mindestens 2 Spalten innerhalb der Tabellenrückgabe)

▪    Oracle: Stored Procedures (nur Tabellenrückgabe)

▪    Schema: Bei einigen Datenquellen (MS SQL, Oracle, DB2) können Sie ein Schema angeben um nur Tabellen dieses Schemas zu laden. Je nach Datenquellentyp können auch mehrere Schemata angegeben werden, z. B. durch ein Komma getrennt. Dies kann bei besonders großen Datenbanken zu einer besseren Übersicht und Geschwindigkeitssteigerung führen.

▪    Relationen: Sie können Relationen zwischen den Einzelabfragen definieren oder die automatisch ermittelten Relationen der Datenbank um weitere Relationen ergänzen. Die Datenbankstruktur wird dabei analysiert, sodass die beteiligten Tabellen und Felder nur noch ausgewählt werden müssen. Gehen Sie folgendermaßen vor:

1. Wählen Sie "Relation hinzufügen"

2. Geben Sie einen Tabellenalias (Relationsname) an. Unter diesem Namen wird im Designer die 1:n-verknüpfte Kindtabelle unterhalb der Elterntabelle angezeigt.

3. Wählen Sie die Elterntabelle und das Primärschlüsselfeld.

4. Wählen Sie die Kindtabelle und das zum Primärschlüssel der Elterntabelle passende Fremdschlüsselfeld.

Abbildung 2.19: Relation definieren

Datenbankschemata

Über die bei einigen Datenquellen verfügbare Option "Schema-Präfix für die Tabellennamen verwenden" werden Datenbankschemata unterstützt. Ein Datenbankschema ermöglicht eine logische Aufteilung von Tabellen. Damit lassen sich z. B. gleichnamige Tabellen innerhalb derselben Datenbank verwenden.

Verbindungseinstellungen Microsoft Access

▪    Server URL: Dateipfad oder URL[:Port]

▪    Benutzername und Passwort

▪    Datenbankpasswort

Abfrage-Assistent

Der Assistent für Einzelabfragen ist eine sehr flexible Methode um Abfragen komfortabel zu erstellen und nur bestimmte Datensätze als Datenquelle zur Verfügung zu stellen. Dabei können Sie beliebige Bedingungen definieren, diese kombinieren und Bedingungen gruppieren. Der Assistent steht Ihnen bei den Datenquellen Microsoft SQL, Oracle, MySQL, SQLite und MariaDB zur Verfügung.

▪    Wählen Sie im Bereich Daten auswählen die Option Einzelabfragen und klicken dann auf Abfrage hinzufügen (Assistent).

▪    Wählen Sie die Tabelle und die zu übergebenden Felder für die Abfrage aus, d. h. damit definieren Sie den SELECT <Felder> FROM <Tabelle> - Teil der SQL-Abfrage.

▪    Wenn Sie auf das grüne Plus-Zeichen klicken können Sie über ein Kontextmenü entscheiden, ob eine Bedingung (WHERE-Klausel) hinzugefügt oder eine neue Gruppe erstellt werden soll.

▪    Wenn Sie auf eine Bedingung klicken können Sie diese bearbeiten/ändern.

▪    Über das X-Zeichen vor einer Bedingung können Sie diese entfernen.

▪    Wenn Sie auf eine Verknüpfung klicken können Sie diese Gruppe nach oben verschieben, nach unten verschieben, in eine neue Gruppe verschieben oder in eine übergeordnete Gruppe integrieren.

▪    Über die Schaltfläche "Zu SQL-Abfrage konvertieren" können Sie die mit dem Assistenten erstellte Abfrage in eine reguläre SQL-Abfrage konvertieren. Dies erlaubt die Bearbeitung der Abfrage über direktes SQL anstelle des Assistenten. Nach der Konvertierung steht der Assistent für diese Abfrage nicht mehr zur Verfügung!

Bedingung (WHERE-Klausel) hinzufügen

Sie können beliebige Bedingungen definieren und dabei auf alle Felder der Ansicht zugreifen.

▪    Um eine Bedingung zu definieren klicken Sie im Abfrage-Assistent zuerst auf das blaue Plus-Zeichen und dann auf "Bedingung hinzufügen".

Abbildung 2.20: Bedingung oder Gruppe definieren

▪    In der Liste "Felder" klicken Sie auf das Feld, das das gesuchte Merkmal enthält.

Anhand der Symbole sehen Sie den jeweiligen Feldtyp (Zeichen, Numerisch, Datum, Logisch).

Abbildung 2.21: Bedingung definieren

▪    Aus der Liste "Verknüpfungen" wählen Sie den gewünschten Operator aus. Angezeigt werden die für das selektierte Feld zulässigen Verknüpfungen (bspw. gleich, ungleich, beginnt mit, enthält, ist leer).

▪    Im Feld "Vergleichswert" geben Sie das gesuchte Merkmal ein (Fester Wert) oder vergleichen das Merkmal mit einem anderen Feld der gleichen Tabelle (Feld).

▪    Beispiel für Fester Wert: Status = "gewonnen" .

▪    Beispiel für Feld: Startdatum größer Plandatum.

▪    Bei Datum(zeit)-Feldern stehen Ihnen zusätzlich die Funktionen Year(), Quarter(), Month(), Day(), Hour(), Minute(), Second() zur Verfügung. Wählen Sie die jeweilige Funktion aus und geben Sie dann einen Vergleichswert an.

Beispiel: Alle Bestellungen aus dem Jahr "2016".

▪    Wählen Sie bei Eingabefeldern die Option "Groß-/Klein beachten" sofern gewünscht.

Hinweis: Die Option "Groß/Klein beachten" kann nur dann ausgeführt werden, wenn dies in der Datenbankserver Konfiguration eingestellt wurde.

▪    Um in den Filter-Assistent zurückzukehren wählen Sie "Übernehmen".

▪    Sofern Sie noch eine weitere Bedingung hinzufügen möchten klicken Sie auf das grüne Plus-Zeichen. Sie haben nun erneut folgende Optionen:

▪    Bedingung hinzufügen

▪    Neue Gruppe erstellen

▪    Klicken Sie auf "Abfrage testen" um die Abfrage zu überprüfen.

Gruppen erstellen

Mehrere Bedingungen werden in einer Gruppe kombiniert, Gruppen können dabei auch weitere Gruppen enthalten. Gruppen können auf verschiedene Arten erstellt werden und es werden beliebige Hierarchien unterstützt:

▪    Um eine neue Gruppe zu erstellen, klicken Sie auf das grüne Plus-Zeichen und wählen im Kontextmenü "Neue Gruppe erstellen".

▪    Wenn Sie auf eine Verknüpfung klicken (z. B. "alle") können Sie diese Gruppe nach oben verschieben, nach unten verschieben, in eine neue Gruppe verschieben oder in eine übergeordnete Gruppe integrieren.

Abbildung 2.22: Bedingungen verknüpfen oder bearbeiten

Für jede Gruppe wird dabei standardmäßig die Verknüpfung "alle" gesetzt. Um die Verknüpfung zu ändern klicken Sie auf die Verknüpfung und wählen eine der logischen Operatoren:

▪    Alle bzw. UND: Alle Bedingungen müssen zutreffen (Schnittmenge)

▪    Irgendeine bzw. ODER: Irgendeine der Bedingungen muss zutreffen (Vereinigungsmenge)

▪    Irgendeine nicht bzw. NICHT UND: Irgendeine der Bedingungen darf nicht zutreffen

Beispiel: alle außer (Land = "DE" und Kategorie="Newsletter")

Treffermenge: alle außer "DE" und alle "DE" ohne "Newsletter"

▪    Keine bzw. NICHT ODER: Keine der Bedingungen darf zutreffen.

Beispiel: alle außer (Land = "DE" oder Land = "CH" oder Land = "AT")

Treffermenge: alle außer "DE", "CH", "AT"

Abbildung 2.23: Logische Verknüpfungen