Execute

Diese Methode sendet eine Abfrage an die NoSQL-Datenbank, welche vorher mit dem I_NoSQLQueryBuilder-Funktionsbaustein eingestellt wurde.

Syntax

METHOD Execute : BOOL
VAR_INPUT
    hDBID: UDINT;
    iNoSQLQueryBuilder: I_NoSQLQueryBuilder;
END_VAR

Execute 1: Eingänge

Name

Typ

Beschreibung

hDBID

UDINT

ID der eingestellten Datenbankkonfiguration

iNoSSQLQueryBuilder

I_NoSQLQueryBuilder

Vorparametrierter QueryBuilder-Baustein. Je nach Datenbank ist dieser unterschiedlich.

Execute 2: Rückgabewert

Name

Typ

Beschreibung

Execute

BOOL

Zeigt den Status der Methode. Liefert TRUE, sobald die Methodenausführung beendet ist, also auch im Fehlerfall.

Nutzt den QueryBuilder, um die entsprechende Abfrage auszuführen.

VAR
    fbNoSQLQuery : FB_NoSQLQueryEvt(sNetID := '', tTimeout := T#5S);
    fbNoSQLQueryBuilder_DocumentDB: FB_NoSQLQueryBuilder_DocumentDB;
    InsertQueryOptions: T_QueryOptionDocumentDB_Insert;
    myDBID : UDINT := 1;
    sDocument : STRING(1000);
    TcMessage : I_TcMessage;
END_VAR
// set QueryInputs
fbNoSQLQueryBuilder_DocumentDB.eQueryType := E_DocumentDbQueryType.InsertOne;
fbNoSQLQueryBuilder_DocumentDB.pQueryOptions := ADR(InsertQueryOptions);
fbNoSQLQueryBuilder_DocumentDB.cbQueryOptions := SIZEOF(InsertQueryOptions);

// set insert parameter:
sDocument := '{Name : "MyValue", Value : 123.456}';
InsertQueryOptions.pDocuments:= ADR(sDocument);
InsertQueryOptions.cbDocuments:= SIZEOF(sDocument);

// call nosql command
IF fbNoSQLQuery.Execute(myDBID, fbNoSQLQueryBuilder_DocumentDB) THEN
    IF fbNoSQLQuery .bError THEN
        TcMessage := fbNoSQLQuery.ipTcResult
        nState := 255; 
    ELSE
        nState := nState+1; 
    END_IF
END_IF

Zuvor wird der FB_NoSQLQueryEvt über den FB_NoSQLQueryBuilder_DocumentDB parametriert. Je nach Querytyp gibt es verschiedene Optionen, wie die des T_QueryOptionDocumentDB_Insert, um das einzufügende Dokument zu setzen.