Table
Diese Methode erzeugt eine neue Tabelle mit der Tabellenstruktur, die über ein Array mit x Elementen bzw. x Spalten in der SPS definiert wird.
Syntax
METHOD Table : BOOL
VAR_INPUT
hDBID : UDINT;
sTableName : T_MaxString;
pTableCfg : POINTER TO ARRAY[0..MAX_DBCOLUMNS] OF ST_ColumnInfo;
cbTableCfg : UDINT;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
hDBID | UDINT | Gibt die ID der zu verwendenden Datenbank an. |
sTableName | MaxString | Name der Tabelle, die erzeugt werden soll. |
pTableCfg | POINTER TO ARRAY[0..MAX_DBCOLUMNS] OF ST_ColumnInfo | Gibt die Pointer-Adresse des Tabellenstrukturarrays an. In diesem Array werden die einzelnen Spalten beschrieben. |
cbTableCfg | UDINT | Gibt die Länge der Arrays an, in dem die Spalten konfiguriert sind. |
Rückgabewert
Name | Typ | Beschreibung |
---|---|---|
Table | BOOL | Zeigt den Status der Methode. Liefert TRUE, sobald die Methodenausführung beendet ist, also auch im Fehlerfall. |
Beispiel
VAR
fbPLCDBCreate : FB_PLCDBCreateEvt(sNetID := '', tTimeout := T#5S);
ColumnInfo : ARRAY [0..14] OF ST_ColumnInfo;
tcMessage : I_TcMessage;
END_VAR
ColumnInfo[0].sName := 'colBigInt'; ColumnInfo[0].eType := E_ColumnType.BigInt; ColumnInfo[0].nLength := 8; ColumnInfo[0].sProperty := 'IDENTITY(1,1)';
ColumnInfo[1].sName := 'colInteger'; ColumnInfo[1].eType := E_ColumnType.Integer; ColumnInfo[1].nLength := 4;
ColumnInfo[2].sName := 'colSmallInt'; ColumnInfo[2].eType := E_ColumnType.SmallInt; ColumnInfo[2].nLength := 2;
ColumnInfo[3].sName := 'colTinyInt'; ColumnInfo[3].eType := E_ColumnType.TinyInt; ColumnInfo[3].nLength := 1;
ColumnInfo[4].sName := 'colBit'; ColumnInfo[4].eType := E_ColumnType.BIT_; ColumnInfo[4].nLength := 1;
ColumnInfo[5].sName := 'colMoney'; ColumnInfo[5].eType := E_ColumnType.Money; ColumnInfo[5].nLength := 8;
ColumnInfo[6].sName := 'colFloat'; ColumnInfo[6].eType := E_ColumnType.Float; ColumnInfo[6].nLength := 8;
ColumnInfo[7].sName := 'colReal'; ColumnInfo[7].eType := E_ColumnType.REAL_; ColumnInfo[7].nLength := 4;
ColumnInfo[8].sName := 'colDateTime'; ColumnInfo[8].eType := E_ColumnType.DateTime; ColumnInfo[8].nLength := 4;
ColumnInfo[9].sName := 'colNText'; ColumnInfo[9].eType := E_ColumnType.NText; ColumnInfo[9].nLength := 256;
ColumnInfo[10].sName := 'colNChar'; ColumnInfo[10].eType := E_ColumnType.NChar; ColumnInfo[10].nLength := 10;
ColumnInfo[11].sName := 'colImage'; ColumnInfo[11].eType := E_ColumnType.Image; ColumnInfo[11].nLength := 256;
ColumnInfo[12].sName := 'colNVarChar'; ColumnInfo[12].eType := E_ColumnType.NVarChar; ColumnInfo[12].nLength := 50;
ColumnInfo[13].sName := 'colBinary'; ColumnInfo[13].eType := E_ColumnType.Binary; ColumnInfo[13].nLength := 30;
ColumnInfo[14].sName := 'colVarBinary'; ColumnInfo[14].eType := E_ColumnType.VarBinary; ColumnInfo[14].nLength := 20;
IF fbPLCDBCreate.Table(
hDBID:= 1,
sTableName:= 'myNewTable',
pTableCfg:= ADR(ColumnInfo),
cbTableCfg:= SIZEOF(ColumnInfo))
THEN
IF fbPLCDBCreate.bError THEN
TcMessage:= fbPLCDBCreate.ipTcResult;
nState := 255;
ELSE
nState := 0;
END_IF
END_IF