Version 11.3 (Geändert)
SQL LOGIN{(Datenquelle; Benutzername; Kennwort; *)}
Parameter | Typ | Beschreibung | |
Datenquelle | String | Name der externen Datenbank oder | |
IP Adresse der externen Datenbank oder | |||
Name der eingegebenen Datenquelle im | |||
ODBC Manager oder | |||
"" um Auswahldialog anzuzeigen | |||
Benutzername | String | Name des in der Datenquelle registrierten Benutzers | |
Kennwort | String | Kennwort des in der Datenquelle registrierten Benutzers | |
* | * | Anwenden auf Begin SQL/End SQL | |
Ohne *: Nein (lokale Datenbank); Mit *: Ja |
Beschreibung
Der Befehl SQL LOGIN öffnet eine Verbindung mit der SQL Datenquelle, angegeben im Parameter Datenquelle. Er bezeichnet das Ziel des nachfolgend in der Anwendung ausgeführten SQL Code:
über den Befehl SQL EXECUTE
über den Code innerhalb der Tags Begin SQL / End SQL (wenn der Parameter * übergeben ist)
Die SQL Datenquelle kann folgendes sein:
Eine externe 4D Server Datenbank, auf die Sie direkt zugreifen können,
Eine externe ODBC Quelle,
Eine interne SQL Engine.
In Datenquelle können Sie einen der folgenden Werte übergeben: Eine IP Adresse, einen Anzeigename der 4D Datenbank, einen Namen der ODBC Datenquelle, einen leeren String oder eine Konstante SQL_INTERNAL.
IP Adresse
Syntax: IP:<IPAddress>{:<TCPPort>}
In diesem Fall öffnet der Befehl eine direkte Verbindung mit der auf dem Rechner ausgeführten 4D Server Datenbank mit der angegebenen IP Adresse. Auf dem Zielrechner muss der SQL Server gestartet sein. Übergeben Sie eine TCP Port Nummer, muss sie in der Zieldatenbank als Publikationsport für den SQL Server angegeben sein. Übergeben Sie keine TCP Portnummer, wird der standardmäßige Port verwendet (19812). In den Einstellungen auf der Seite SQL/Konfiguration können Sie die TCP Port Nummer des SQL Server verändern.
Siehe hierzu die Beispiele 1 und 2.
Anzeigename der 4D Datenbank
Syntax: 4D:<Publication_Name>
In diesem Fall öffnet der Befehl eine direkte Verbindung mit der 4D Server Datenbank, deren Netzwerk-Anzeigename dem angegebenen Namen entspricht. Der Netzwerk-Anzeigename wird in den Einstellungen der Anwendung auf der Seite Client-Server/Konfiguration gesetzt.
Siehe Beispiel 4.
Hinweis: Die TCP Port Nummer des Zielserver 4D SQL (der die 4D Datenbank veröffentlicht) und die TCP Port Nummer des SQL Server der 4D Anwendung, welche die Verbindung öffnet, müssen identisch sein.
Gültiger Name der ODBC Datenquelle
Syntax: ODBC:<My_DSN> oder <My_DSN>
In diesem Fall enthält der Parameter Dateneingabe den Namen der Datenquelle, so wie er im ODBC Treiber Manager festgelegt wurde. Dieses Prinzip entspricht der Funktionsweise des bisherigen Befehls ODBC LOGIN.
Hinweis: Um die Kompatibilität mit früheren 4D Versionen zu wahren, können Sie die Vorsilbe "ODBC:" weglassen; zur besseren Lesbarkeit des Code empfiehlt es sich jedoch, diese Vorsilbe zu verwenden.
Siehe Beispiel 4.
Leerer String
Syntax: ""
In diesem Fall zeigt der Befehl den Verbindungsdialog an, so dass Sie die Datenquelle für die Verbindung manuell eingeben können:
Dieses Dialogfenster besteht aus mehreren Seiten. Die Seite TCP/IP enthält folgende Elemente:
Zielname: Dieses DropDown-Menü enthält zwei Listen:
- Die Liste der Datenbanken, die zuletzt in direkter Verbindung geöffnet wurden. Die Operation zum Aktualisieren dieser Liste ist dieselbe wie für die 4D Developer Applikation. Lediglich der Ordner mit den .4DLink Dateien heißt anders. Er hat den Namen "Favorites SQL v11" anstatt "Favorites v11".
- Die Liste der 4D Server Anwendungen mit gestartetem SQL Server, und dessen TCP Port für SQL Verbindungen derselbe wie der der Quellanwendung ist. Diese Liste wird bei jedem neuen Aufruf des Befehls SQL LOGIN ohne den Parameter Dateneingabe dynamisch aktualisiert.
Das Zeichen "^" vor dem Datenbanknamen gibt an, dass die Verbindung im gesicherten Modus via SSL ausgeführt wird.
Netzwerk Adresse: Dieser Bereich zeigt die IP-Adresse und evtl. den TCP Port der Datenbank, die im DropDown-Menü Zielname ausgewählt wurde.
Sie können auch eine eigene IP Adresse eingeben und dann auf die Schaltfläche zur Verbindung klicken, um sich an die entsprechende 4D Server Datenbank anzumelden. Sie können den TCP Port auch mit Doppelpunkt (:) an die IP-Adresse anhängen, z.B.: 192.168.93.105:19855.
- Benutzername und Kennwort: In diese Bereiche können Sie die Kennung der Verbindung eingeben.
- Die Seiten Benutzer DSN und System DSN zeigen jeweils die Liste der Benutzer und die ODBC Datenquellen des Systems, die im ODBC Trei-ber des Rechners eingetragen sind. Auf diesen Seiten können Sie eine Datenquelle auswählen und die Kennung eingeben, um eine Verbindung mit einer externen ODBC Datenquelle zu öffnen.
Wird die Verbindung hergestellt, wird die Systemvariable OK auf 1 gesetzt. Andernfalls wird sie auf 0 gesetzt und ein Fehler erzeugt. Diesen Fehler können Sie über eine Fehlerverwaltungsmethode abfangen, die mit dem Befehl ON ERR CALL installiert wird.
Konstante SQL_INTERNAL
Syntax: SQL_INTERNAL
In diesem Fall leitet der Befehl nachfolgende SQL Anfragen an die interne SQL Engine der Datenbank.
Benutzername enthält den Namen des Benutzers, der berechtigt ist, sich an die die externe Datenquelle anzumelden. Der Benutzername für Oracle kann z.B. "Schott" lauten.
Kennwort enthält das Kennwort des Benutzers, der berechtigt ist, sich an die die externe Datenquelle anzumelden. Das Kennwort für Oracle kann z.B."Tiger" sein.
Hinweis: Übergeben Sie bei direkten Verbindungen in den Parametern Benutzername und Kennwort leere Strings, wird die Verbindung nur angenommen, wenn in der Zieldatenbank keine 4D Kennwörter aktiviert sind. Andernfalls wird die Verbindung zurückgewiesen.
Mit dem optionalen Parameter * können Sie das Ziel des SQL Code ändern, der innerhalb der Tags Begin SQL/End SQL ausgeführt wird. Übergeben Sie diesen Parameter NICHT, wird der Code innerhalb der Tags Begin SQL/End SQL weiterhin an die interne SQL Engine von 4D gesendet, ohne die im Befehl SQL LOGIN angegebene Konfiguration zu berücksichtigen. Übergeben Sie diesen Parameter, wird der innerhalb der Tags Begin SQL/End SQL ausgeführte Code an die Quelle gesendet, die im Parameter Datenquelle definiert ist.
Um die aktuelle Verbindung zu schließen und den Speicher freizumachen, führen Sie den Befehl SQL LOGOUT aus. Dann werden alle SQL Anfragen an die interne SQL Engine der Datenbank gesendet.
Rufen Sie SQL LOGIN erneut auf und wurde die aktuelle Verbindung nicht explizit geschlossen, wird sie automatisch geschlossen.
Diese Parameter sind optional; sind sie nicht angegeben, zeigt der Befehl das Dialogfenster für die ODBC Anmeldung an, in dem Sie die externe Datenquelle auswählen können:
Die Reichweite dieses Befehls ist der Prozess; wollen Sie zwei unterschiedliche Verbindungen ausführen, müssen Sie zwei Prozesse erstellen und jede Verbindung in einem eigenen Prozess ausführen.
Beispiele
(1) Diese Anweisung bringt das Verwaltungsfenster des ODBC Treibers nach vorne:
SQL LOGIN
(2) Eine Verbindung über das ODBC Protokoll mit der externen Datenquelle "MyOracle" öffnen. Über den Befehl SQL EXECUTE ausgeführte SQL Anfragen sowie Anfragen innerhalb der Tags Begin SQL/End SQL werden zu dieser Verbindung weitergeleitet:
SQL LOGIN("ODBC:MyOracle";"Schott";"tiger";*)
(3) Diese Anweisung initialisiert eine Verbindung mit der 4D internen SQL Engine:
SQL LOGIN(SQL_INTERNAL;$user;$password)
(4) Eine direkte Verbindung öffnen mit der Anwendung 4D Server v11 SQL, ausgeführt auf dem Rechner mit der IP Adresse 192.168.45.34, die auf dem standardmäßigen TCP Port antwortet. Über den Befehl SQL EXECUTE ausgeführte SQL Anfragen werden zu dieser Verbindung weitergeleitet, Anfragen innerhalb der Tags Begin SQL/End SQL werden nicht weitergeleitet.
SQL LOGIN("IP:192.168.45.34";"John";"azerty")
(5) Eine direkte Verbindung öffnen mit der Anwendung 4D Server v11 SQL, ausgeführt auf dem Rechner mit der IP Adresse 192.168.45.34, die auf dem TCP Port 20150 antwortet. Über den Befehl SQL EXECUTE ausgeführte SQL Anfragen werden zu dieser Verbindung weitergeleitet, Anfragen innerhalb der Tags Begin SQL/End SQL werden an diese Verbindung weitergeleitet.
SQL LOGIN("IP:192.168.45.34:20150";"John";"azerty";*)
(6) Eine direkte Verbindung öffnen mit der Anwendung 4D Server v11 SQL, die auf dem lokalen Netzwerk eine Datenbank mit Namen "Accounts_DB" veröffentlicht. Der für die SQL Server beider Datenbanken verwendete TCP Port (gesetzt in den Einstellungen der Seite SQL/Konfiguration) muss gleich sein (standardmäßig 19812). Über den Befehl SQL EXECUTE ausgeführte SQL Anfragen werden zu dieser Verbindung weitergeleitet, Anfragen innerhalb der Tags Begin SQL/End SQL werden nicht weitergeleitet.
SQL LOGIN
("4D:Accounts_DB";"John";"azerty")
(7) Dieses Beispiel zeigt die Möglichkeiten für Verbindungen über den Befehl SQL LOGIN:
ARRAY TEXT (30;aNames) ARRAY LONGINT(aAges;0) SQL LOGIN("ODBC:MyORACLE";"Mark";"azerty") If (OK=1) `Die folgende Anfrage wird an die externe ORACLE Datenbank `weitergeleitet SQL EXECUTE("SELECT Name, Age FROM PERSONS";aNames; aAges) `Die folgende Anfrage wird an die lokale 4D Datenbank weitergeleitet Begin SQL SELECT Name, Age FROM PERSONS INTO :aNames, :aAges; End SQL `Der folgende Befehl SQL LOGIN schließt die aktuelle Verbindung mit `der externen ORACLE Datenbank und öffnet eine neue Verbindung `mit einer externen MySQL Datenbank SQL LOGIN ("ODBC:MySQL";"Jean";"qwerty";*) If (OK=1) `Die folgende Anfrage wird an die externe MySQL Datenbank `weitergeleitet SQL EXECUTE("SELECT Name, Age FROM PERSONS";aNames; aAges) `Die folgende Anfrage wird auch an die externe MySQL Datenbank `weitergeleitet Begin SQL SELECT Name, Age FROM PERSONS INTO :aNames, :aAges; End SQL SQL LOGOUT `Die folgende Anfrage wird an die lokale 4D Datenbank gesendet Begin SQL SELECT Name, Age FROM PERSONS INTO :aNames, :aAges; End SQL End if End if
Referenz
Begin SQL, End SQL, SQL LOGOUT.
Systemvariablen oder Mengen
Bei erfolgreicher Verbindung wird die Systemvariable OK auf 1 gesetzt, sonst auf 0 (Null).