-> Hier kostenlos registrieren
Hallo,
um über S7 eine Selectanweisung an einer Datenbank im Stringformat zu übergeben,
habe ich in SCL mehrere Konstanten mit unterschiedlichen Selectanweisungen erstellt.
Mein Problem ist, dass beim Zuweisen eines Textstrings zur Konstanten ab einer gewissen Größe
beim übersetzen des SLC Programms der Editor abstürzt.
Meine Frage:
Wie kann ich einen Texstring der Konstanten mit bis zu einer Länge von 254 Byte zuordnen,
oder wie kann ich die Anweisung zeilenübergreifend erstellen?
Im Moment mache ich es über zwei Konstanten, die ich dann zusammenführe.
MFG Waldi
Mein Anweisung in SCL:
FUNCTION_BLOCK fb201
CONST
//=====================================================================
ST1:= 'SELECT iParam1, fParam2, Left([sText1],20) FROM tTable1 WHERE id<10';
ST1_2:='';
ST2:='SELECT MID([MASCHINENNUMMER],3,3), Left([Funktion],3), Left([STATUS],3), NACHNAME, LEFT([VORNAME],10), PERSONALNUMMER,';
ST2_2:=' Kommtzeit FROM VHW_PERSONAL_ANGEMELDET ORDER BY MASCHINENNUMMER';
ST3:='';
ST4:='';
ST5:='';
//=====================================================================
END_CONST
VAR_INPUT
Auswahl_SText : Int;
END_VAR
VAR_OUTPUT
AnzahlSaetze: INT;
Laenge : INT;
SelectString : STRING;
END_VAR
BEGIN
// Init default return values
CASE (Auswahl_SText) OF
1 : SelectString := ST1;
2 : SelectString := CONCAT (in1 := ST2, in2 :=ST2_2);
3 : SelectString := ST3;
4 : SelectString := ST4;
5 : SelectString := ST5;
ELSE:
SelectString := ' ';
END_CASE;
AnzahlSaetze := 1;
laenge := LEN(S := SelectString);
// Return value
END_FUNCTION_BLOCK
um über S7 eine Selectanweisung an einer Datenbank im Stringformat zu übergeben,
habe ich in SCL mehrere Konstanten mit unterschiedlichen Selectanweisungen erstellt.
Mein Problem ist, dass beim Zuweisen eines Textstrings zur Konstanten ab einer gewissen Größe
beim übersetzen des SLC Programms der Editor abstürzt.
Meine Frage:
Wie kann ich einen Texstring der Konstanten mit bis zu einer Länge von 254 Byte zuordnen,
oder wie kann ich die Anweisung zeilenübergreifend erstellen?
Im Moment mache ich es über zwei Konstanten, die ich dann zusammenführe.
MFG Waldi
Mein Anweisung in SCL:
FUNCTION_BLOCK fb201
CONST
//=====================================================================
ST1:= 'SELECT iParam1, fParam2, Left([sText1],20) FROM tTable1 WHERE id<10';
ST1_2:='';
ST2:='SELECT MID([MASCHINENNUMMER],3,3), Left([Funktion],3), Left([STATUS],3), NACHNAME, LEFT([VORNAME],10), PERSONALNUMMER,';
ST2_2:=' Kommtzeit FROM VHW_PERSONAL_ANGEMELDET ORDER BY MASCHINENNUMMER';
ST3:='';
ST4:='';
ST5:='';
//=====================================================================
END_CONST
VAR_INPUT
Auswahl_SText : Int;
END_VAR
VAR_OUTPUT
AnzahlSaetze: INT;
Laenge : INT;
SelectString : STRING;
END_VAR
BEGIN
// Init default return values
CASE (Auswahl_SText) OF
1 : SelectString := ST1;
2 : SelectString := CONCAT (in1 := ST2, in2 :=ST2_2);
3 : SelectString := ST3;
4 : SelectString := ST4;
5 : SelectString := ST5;
ELSE:
SelectString := ' ';
END_CASE;
AnzahlSaetze := 1;
laenge := LEN(S := SelectString);
// Return value
END_FUNCTION_BLOCK