CreateSP
Mit dieser Methode wird eine Instanz des Bausteins FB_SQLStoredProcedureEvt mit der bereits geöffneten Datenbankverbindung des Bausteins FB_SQLDatabaseEvt initialisiert. Der Baustein FB_SQLStoredProcedureEvt verwendet nur die Datenbankverbindung, die ihm über die CreateCmd‑Methode zugewiesen wurde. Mehrere Instanzen vom Baustein FB_SQLStoredProcedureEvt können mit derselben Datenbankverbindung initialisiert werden.
Die Initialisierung des Bausteins FB_SQLStoredProcedureEvt kann einige Zyklen in Anspruch nehmen. Das Busy-Flag des Bausteins oder der Methodenrückgabewert der CreateCmd-Methode muss überprüft werden bevor der Baustein einsatzbereit ist.
Syntax
METHOD CreateSP : BOOL
VAR_INPUT
sProcedureName: T_MaxString;
pParameterInfo: POINTER TO ARRAY [0..MAX_SPPARAMETER] OF ST_SQLSPParameter;
cbParameterInfo: UDINT;
pSQLProcedure: POINTER TO FB_SQLStoredProcedureEvt;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
sProcedureName | T_MaxString | Gibt den Namen der Prozedur an, welche ausgeführt werden soll. |
pParameterInfo | POINTER TO ARRAY [0..MAX_SPPARAMETER] OF ST_SQLSPParameter | Pointer-Adresse zu der Parameter-Infoliste. |
cbParameterInfo | UDINT | Gibt die Länge der Parameter-Infoliste an. |
pSQLProcedure | POINTER TO FB_SQLStoredProcedureEvt | Liefert eine neue Instanz des Bausteins FB_SQLStoredProcedureEvt zurück. |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
CreateSP | BOOL | Zeigt den Status der Methode. Liefert TRUE, sobald die Methodenausführung beendet ist, also auch im Fehlerfall. |
Beispiel
VAR
fbSqlDatabase : FB_SQLDatabaseEvt(sNetID := '', tTimeout := T#5S);
ParaInfo : ST_SQLSPParameter;
END_VAR
ParaInfo.sParameterName := '@Customer_ID';
ParaInfo.eParameterType := E_SPParameterType.Input;
ParaInfo.eParameterDataType := E_ColumnType.BigInt;
ParaInfo.nParameterSize := 8;
IF fbSQLDatabase.CreateSP('dbo.SP_GetCustomerPositions', ADR(ParaInfo), SIZEOF(ParaInfo), ADR(fbSQLStoredProcedure)) THEN
IF fbSQLDatabase.bError THEN
nState:=255;
ELSE
nState:= nState+1;
END_IF
END_IF
Darauffolgend kann der FB_SQLStoredProcedureEvt verwendet werden, um die gespeicherte Prozedur auszuführen.