Der Funktionsbaustein FB_SqlDbRequest wird zu folgenden Zwecken eingesetzt:
Einrichten einer permanenten und entweder sicheren oder nicht sicheren TCP-Verbindung zum SQL Gateway. Detaillierte Informationen finden Sie unter ST_ExtendedConnectionSettings.
Ausführen von SQL-Requests zum Auslesen von Daten aus der SQL-Datenbank. Die Rückgabedaten werden in einem zweidimensionalen Daten-Array bereitgestellt, dessen Größe über globale Parameter festgelegt wird.
Ausführen von SQL-Requests zum Aktualisieren oder Ändern der SQL-Datenbank. Bei diesen Requests werden keine Daten zurückgegeben.
Nachdem der Funktionsbaustein aktiviert wurde (i_xEnable wird auf TRUE gesetzt), wird eine TCP-Verbindung (entweder gesichert über TLS V1.2 oder ungesichert) zum SQL Gateway mit den in der Variablen iq_stExtendedConnSettings definierten Einstellungen hergestellt.
Sobald die Verbindung aufgebaut ist, wird der Ausgang q_xReady auf TRUE gesetzt und der Funktionsbaustein kann SQL-Requests an das SQL Gateway senden, das die Requests an die über den Verbindungsnamen konfigurierte SQL-Datenbank weiterleitet.
Bei Erkennung einer steigenden Flanke an i_xExecute sendet der Funktionsbaustein den SQL-Request an das SQL Gateway und verarbeitet die Antwort.
Statusmeldungen und Diagnoseinformationen werden unter Verwendung der Ausgänge q_xError (TRUE, wenn ein Fehler erkannt wurde), q_etResult und q_etResultMsg bereitgestellt.
Diagnosemeldungen bei einer fehlgeschlagenen Befehlsausführung können quittiert werden, indem der Eingang i_xErrorQuit auf TRUE gesetzt wird. Der Funktionsbaustein bleibt aktiv und die TCP-Verbindung wird nicht getrennt.
Deaktivieren Sie nach Abschluss des Datenaustauschs mit der SQL-Datenbank den Funktionsbaustein. Setzen Sie i_xEnable auf FALSE, um die Verbindung zu trennen.
Ob eine Verbindung unter Verwendung von TLS unterstützt wird, ist von der Steuerung abhängig, auf der der FB_SqlDbRequest zum Einsatz kommt. Im Handbuch zu Ihrer Steuerung finden Sie Informationen dazu, ob die TCP-Kommunikation über TLS unterstützt wird.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xEnable |
BOOL |
Bei steigender Flanke an diesem Eingang stellt der Funktionsbaustein eine Verbindung zum SQL Gateway her. Wenn der Eingang auf FALSE gesetzt wird, wird der Funktionsbaustein zurückgesetzt und eine vorhandene Verbindung wird getrennt bzw. ein laufender Verbindungsaufbau abgebrochen. For more information, also refer to Behavior of Function Blocks with the Inputs i_xEnable and i_xExecute and i_xErrorQuit. |
i_xExecute |
BOOL |
Der Funktionsbaustein führt einen SQL-Request aus, um bei einer steigenden Flanke an diesem Eingang Daten aus der SQL-Datenbank auszulesen bzw. in die SQL-Datenbank zu schreiben. For more information, also refer to Behavior of Function Blocks with the Inputs i_xEnable and i_xExecute and i_xErrorQuit. |
i_xErrorQuit |
BOOL |
Bei einer steigenden Flanke an diesem Eingang quittiert der Funktionsbaustein einen von q_xError signalisierten Fehler. For more information, also refer to Behavior of Function Blocks with the Inputs i_xEnable and i_xExecute and i_xErrorQuit. |
i_etSqlRequest |
Definiert, welche Art von SQL-Request (Lesen oder Schreiben) ausgeführt werden soll. Standard: ET_SqlRequest.Read |
|
i_refRequestWstring |
REFERENCE TO [RequestWstring] |
Verweis auf die Request-Daten, die einen SQL-Abfragerequest enthalten (zum Lesen oder Schreiben). Jeder SQL-Request muss in separate Zeichenfolgen einer Länge von jeweils maximal 200 Zeichen aufgespaltet werden. Passen Sie die Größe der globalen Parameter Gc_uiMaxRequest und Gc_uiRequestWstringLength in Übereinstimmung mit der Länge der in Ihrer Anwendung verwendeten SQL-Requests an.
HINWEIS: Verwenden Sie zur Verkettung der WSTRINGS die Funktion WCONCAT der Standard64-Bibliothek.
|
i_uiNumOfWstrings |
UINT |
Die Anzahl der erforderlichen WSTRINGS, die den aufgeteilten SQL-Request enthalten. Die maximale Anzahl wird über den globalen Parameter Gc_uiMaxRequest vorgegeben. |
i_refUserData |
REFERENCE TO [UserData] |
Verweis auf die UserData, d. h. die Benutzerdaten, die in der Steuerung zur Speicherung der aus der Datenbank ausgelesenen SQL-Daten verfügbar sein müssen. |
Eingang/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_stExtendedConnSettings |
ST_ExtendedConnectionSettings |
Enthält die Informationen für den Aufbau einer Verbindung zu einem SQL Gateway. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xActive |
BOOL |
Gibt an, dass die Ausführung des Funktionsbausteins aktiv ist. Solange dieser Ausgang TRUE ist, muss der Funktionsbaustein zyklisch ausgeführt werden. |
q_xReady |
BOOL |
Gibt an, dass die Initialisierung erfolgreich war und die TCP-Verbindung hergestellt wurde. Dieser Ausgang übergibt den Wert TRUE, solange der Funktionsbaustein in der Lage ist, Eingänge anzunehmen. |
q_xBusy |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird. |
q_xDone |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen. |
q_xError |
BOOL |
Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen siehe q_etResult und q_etResultMsg. |
q_etResult |
ET_Result |
Gibt Diagnose- und Statusinformationen an. |
q_sResultMsg |
STRING[255] |
Gibt zusätzliche Diagnose- und Statusinformationen an. |
q_uiRetNumOfRows |
UINT |
Anzahl der Zeilen in den Rückgabedaten. Dieser Ausgang wird mit der Anzahl der von der SQL-Datenbank empfangenen Datensätze aktualisiert.
HINWEIS: Nur gültig nach erfolgreichem Lese-Request.
|
q_uiRetNumOfColumns |
UINT |
Anzahl der Spalten in den Rückgabedaten. Dieser Ausgang wird mit der Anzahl der von der SQL-Datenbank empfangenen Datensätze aktualisiert.
HINWEIS: Nur gültig nach erfolgreichem Lese-Request.
|
Weitere Informationen finden Sie außerdem unter Gemeinsame Eingänge und Ausgänge.
Ein zweidimensionales ARRAY muss in der Steuerung für die Zwischenspeicherung der aus der Datenbank ausgelesenen SQL-Daten verfügbar sein. Das zweidimensionale ARRAY wird im ALIAS UserData definiert.
Die Größe des ARRAY kann über die globalen Parameter Gc_uiMaxRows, Gc_uiMaxColumns und Gc_uiTableWstringLength angepasst werden.
Bei der Konfiguration dieser Parameter ist der Umfang der SQL-Daten zu berücksichtigen, deren Empfang erwartet wird. Vor dem Start der Datenübertragung werden die SQL-Daten gemäß der Größe dieses Puffers segmentiert.
Wenn die empfangenen SQL-Daten die Größe des ARRAY überschreiten, wird der SQL-Datentransfer angehalten und der Funktionsbaustein signalisiert einen Fehler.