Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
SQL LOGIN
|
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 | |||||
* | Operator |
![]() |
Anwenden auf Begin SQL/End SQL Ohne *: Nein (lokale Datenbank); Mit *: Ja |
|||||
Der Befehl SQL LOGIN öffnet eine Verbindung mit der SQL Datenquelle, angegeben im Parameter Datenquelle. Er bezeichnet das Ziel der SQL Anfragen, die nachfolgend im aktuellen Prozess ausgeführt werden:
Die SQL Datenquelle kann folgendes sein:
In Datenquelle können Sie einen der folgenden Werte übergeben: Eine IP Adresse, einen Namen zum Veröffentlichen der 4D Datenbank, einen Namen der ODBC Datenquelle, einen leeren String oder eine Konstante SQL_INTERNAL.
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 4D Datenbank.
Warnung: Die Vorsilben, die im Parameter Datenquelle verwendet werden, müssen großgeschrieben werden (IP, ODBC, 4D).
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 4D SQL Datenbank gesendet.
Rufen Sie SQL LOGIN erneut auf und wurde die aktuelle Verbindung nicht explizit geschlossen, wird sie automatisch geschlossen.
Hinweis: Wenn ein externer Verbindungsversuch via SQL LOGIN fehlschlägt, wird die interne 4D Datenbank automatisch die aktuelle Datenquelle.
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.
Diese Anweisung bringt das Verwaltungsfenster des ODBC Treibers nach vorne:
SQL LOGIN
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";*)
Diese Anweisung initialisiert eine Verbindung mit der 4D internen SQL Engine:
SQL LOGIN(SQL_INTERNAL;$user;$password)
Eine direkte Verbindung öffnen mit der 4D Server Anwendung, 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")
Eine direkte Verbindung öffnen mit der 4D Server Anwendung, 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";*)
Auf dem Rechner mit der IP Adresse 192.168.45.34 mit der 4D Server Anwendung eine direkte Verbindung in TLS öffnen und auf dem Standard TCP Port antworten. Dazu müssen Sie TLS für den SQL Server auf der 4D Server Application aktiviert haben:
SQL LOGIN("IP:192.168.45.34:19812:ssl";"Admin";"sd156") // Beachte ":ssl" am Ende von IP Adresse und TCP Port
Eine direkte Verbindung mit der 4D Server Application öffnen, die auf dem Rechner mit der IPv6 Adresse 2a01:e35:2e41:c960:dc39:3eb0:f29b:3747 ausgeführt wird und auf den 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 nicht weitergeleitet.
SQL LOGIN("IP:[2a01:e35:2e41:c960:dc39:3eb0:f29b:3747]:20150";"John";"qwerty")
Eine direkte Verbindung öffnen mit der 4D Server Application, 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 Datenbank-Eigenschaften auf der Seite SQL) 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")
Dieses Beispiel zeigt die Möglichkeiten für Verbindungen über den Befehl SQL LOGIN:
ARRAY TEXT(aNames;0)
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
Bei erfolgreicher Verbindung wird die Systemvariable OK auf 1 gesetzt, sonst auf 0 (Null).
Produkt: 4D
Thema: SQL
Nummer:
817
Geändert: 4D v11 SQL Release 3
Geändert: 4D v12
Geändert: 4D v16 R4
4D Programmiersprache ( 4D v20 R7)