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
Eingänge
Name | Typ | Beschreibung |
---|---|---|
hDBID | UDINT | ID der eingestellten Datenbankkonfiguration |
iNoSSQLQueryBuilder | I_NoSQLQueryBuilder | Vorparametrierter QueryBuilder-Baustein. Je nach Datenbank ist dieser unterschiedlich. |
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.