NTB16 - Inbetriebnahme

relationaler Datenbank Explorer

Startseite Inbetriebnahme Bedienung CLR16

Startfenster

Beim Starten verbindet sich NTB16 mit einer SQL Server Instanz. In dieser Instanz sollen nicht die Datenbanken mit den Daten sein. Die eigentlichen Datenbanken werden zu dieser Instanz als Linked Server verbunden. Für die Verwendung mit NTB16 eignet sich am Besten die (localdb). Der ConnectionString "Data Source=(localdb)\v11.0" ist vorgegeben. So erfolgt der erste Verbindungsversuch zu dieser lokalen Instanz. Der erste Start dauert eine Weile, weil die Instanz erst hoch gefahren werden muss.

Kontextmenü Connection

ConnectionString konfigurieren

Die Bedienung erfolgt grundsätzlich über Kontextmenüs, die sich beim Klicken mit der rechten Maustaste öffnen. Zur Konfiguration des ConnectionString ist also mit der rechten Maustaste auf die ComboBox (links unten) zu klicken. Das Menü ist im rechten Bild zu sehen.

Über den Menüpunkt 'Bearbeiten' können ConnectionStrings hinzu gefügt oder geändert werden. Diese Tabelle wird bei jeder Änderung automatisch als XML Datei gespeichert. Beim nächsten Start des Programms wird immer der erste ConnectionString aus dieser XML Datei aktiviert.

Die installierten Instanzen und Versionen von LocalDB können an der Eingabeaufforderung (DOS-Fenster) ermittelt werden:
C:\>sqllocaldb i

Es ist in der Regel nicht erforderlich mehr als einen ConnectionString zu konfigurieren.

Tabellen [ExtendedProperties] und [Nodes] erzeugen

In der Standard-Datenbank, die sich aus dem eigenen Login oder aus dem ConnectionString ergibt, sollen 2 Tabellen erzeugt werden, die Einstellungen des Programms speichern. Die Tabellen können in der master Datenbank angelegt werden, weil die (localdb) normalerweise gar keine Benutzer-Datenbanken hat. Werden die Tabellen nicht erzeugt, merkt sich das Programm zwar den ConnectionString, aber die unter 'Bedienung' beschrieben Konfigurationen sind beim nächsten Start wieder weg.

Zur einmaligen Erzeugung der Tabellen dbo.ExtendedProperties und dbo.Nodes ist jeweils im Kontextmenü der Root Node auf 'CREATE TABLE ...' zu klicken.

Create Tables

Linked Server Konfiguration

Add Linked Server

Um den Zugriff auf Daten zu bekommen, muss der Datenbank-Server (der die Tabellen enthält) als Linked Server mit der lokalen Instanz verbunden werden. Der Menüpunkt Add Linked Server ist durch klicken mit der rechten Maustaste auf die oberste Node zu erreichen. Hier kann nur ein (anderer) SQL Server mit SQL Server-Authentifizierung verbunden werden. 'name' wird auf der Node angezeigt und im SQL-Command gebraucht, sollte kurz sein und keine Sonderzeichen enthalten. 'data_source' kann eine IP-Adresse (,Portnummer) sein. 'rmtuser' ist das Login auf den verbundenen SQL Server, z.B. sa.

Benutzernamen und Passwörter zu den Linked Servers werden in der lokalen SQL Server Instanz (localdb) mit der dort implementierten Sicherheit gespeichert. Die Passwörter können nicht zurück gelesen werden. Weil die Linked Server Serverobjekte sind und nicht in Benutzer-Datenbanken gespeichert werden, können die Verbindungsdaten auch nicht über Datenbank-Sicherungen in falsche Hände gelangen.

Als Linked Server können aber nicht nur alle möglichen Versionen von SQL Server verbunden werden, sondern auch beliebige (ODBC) Datenquellen. Das können Access, dBase, Excel, Text-Dateien sein sowie auch andere Datenbank Systeme (Oracle). Das hängt nicht zuletzt vom Betriebssystem (32 oder 64 bit) und den installierten Treibern ab.

Mit dem SQL Server Management Studio können alle möglichen Linked Server verbunden werden, und sind dann in NTB16 auch als Node sichtbar. Als Servername wird eingegeben, was auf der obersten Node zu lesen ist: z.B. '(localdb)\v11.0'. Unter Serverobjekte-Verbindungsserver sind bereits vorhandene Linked Server zu sehen und es können weitere hinzu gefügt werden.

Der Zugriff auf jeden Linked Server erfolgt über eine standardisierte Schnittstelle (Distributed Queries Stored Procedures). Darüber sind nur Tabellen und Sichten in den Remote Datenbanken sichtbar. Allerdings werden die Primärschlüssel und Relations zwischen den Tabellen zur Verfügung gestellt. Und genau mit diesen Informationen erzeugt NTB16 automatisch 'Formulare', um die Daten in den Tabellen - ohne zu programmieren - bearbeiten zu können.

Mit Linked Server besteht auch die Möglichkeit, Abfragen - JOINs - mit Tabellen aus verschiedenen Datenbanken und Servern, die überall in der Welt verteilt sein können, zu verwenden. Um daraus druckbare html-Reports zu erzeugen gibt es das Projekt CLR16.

Lutz Elßner ° elssner@interdev.de