4D v16.3

SQL LOGIN

Home

 
4D v16.3
SQL
SQL LOGIN

SQL LOGIN 


 

SQL LOGIN {( Datenquelle ; Benutzername ; Kennwort ; * )} 
Parameter Typ   Beschreibung
Datenquelle  String in Name der externen Datenbank oder IP Adresse der externen Datenbank
oder Name der eingegebenen Datenquelle im ODBC Manager
oder "", um Auswahldialog anzuzeigen
Benutzername  String in Name des in der Datenquelle registrierten Benutzers
Kennwort  String in Kennwort des in der Datenquelle registrierten Benutzers
Operator in 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:

  • ü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
  • Die lokale 4D Datenbank (interne Datenbank)

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.

  • 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 Datenbank-Eigenschaften auf der Seite SQL können Sie die TCP Port Nummer des SQL Server verändern. Siehe hierzu die Beispiele 4 und 5.
    Haben Sie TLS für den "Ziel" SQL Server aktiviert (Option in den Datenbank-Eigenschaften), müssen Sie an die IP Adresse das Schlüsselwort ".ssl" und die TCP Portnummer (in diesem Fall zwingend) anhängen, damit der Server die Anfrage korrekt bearbeiten kann (siehe Beispiel 6)
  • 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 Datenbank-Eigenschaften auf der Seite Client-Server 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 Datenquelle den Namen der Datenquelle, so wie er im ODBC Treiber Manager festgelegt wurde.
    Hinweise:
    • Um die Kompatibilität mit früheren 4D Versionen zu bewahren, können Sie die Vorsilbe "ODBC:" weglassen, zur besseren Lesbarkeit des Code empfehlen wir jedoch, diese Vorsilbe zu verwenden.
      Siehe Beispiel 2.
    • Unter Windows wird beim Namen der Datenquelle zwischen Klein- und Großschreibung unterschieden. Wurde die Datenquelle z.B. "4D_v16" genannt, funktioniert der Name "4D_V16" nicht.
    • Die Vorsilbe "ODBC:" muss unter Windows und auf Mac in Großbuchstaben eingegeben werden. Übergeben Sie "odbc:", schlägt die Verbindung fehl.
  • 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 Applikation. Lediglich der Ordner mit den .4DLink Dateien heißt anders. Er hat den Namen "Favorites SQL vXX" anstatt "Favorites vXX".
    • 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 Datenquelle 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 Adresse und evtl. den TCP Port der Datenbank, die im DropDown-Menü Zielname ausgewählt wurde. Sie können auch eine 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 Treiber 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 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 ö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).



Siehe auch 

Begin SQL
End SQL
SQL LOGOUT

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: SQL
Nummer: 817

Dieser Befehl ändert die Systemvariable OK

 
GESCHICHTE 

Geändert: 4D v11 SQL Release 3
Geändert: 4D v12

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)