Werte und Sonderzeichen
Werte und Sonderzeichen
In CODESYS müssen Sonderzeichen in Strings mit $ kodiert werden.
Wichtigste $ Codes
Zeichen
Code
Verwendung
Beispiel
' (Apostroph)
$27
Text in SQL
$27Max Mustermann$27
" (Anführungszeichen)
$22
Selten benötigt
$22Text$22
$ (Dollar)
$$
Dollar-Zeichen
$$100
Praktische Beispiele
Text-Werte in SQL einfügen
// Falsch - funktioniert nicht:
MySQL_Command[0] := 'INSERT INTO users (name) VALUES ('Max')';
// Richtig - mit $27:
MySQL_Command[0] := 'INSERT INTO users (name) VALUES ($27Max$27)';Dynamische Text-Werte
VAR
sName : STRING := 'Max Mustermann';
sCity : STRING := 'Berlin';
END_VAR
// Text mit $27 einschließen
MySQL_Command[0] := 'INSERT INTO users (name, city) VALUES ($27';
MySQL_Command[1] := CONCAT(sName, '$27, $27');
MySQL_Command[2] := CONCAT(sCity, '$27)');
// Ergebnis: INSERT INTO users (name, city) VALUES ('Max Mustermann', 'Berlin')WHERE-Bedingung mit Text
VAR
sSearchName : STRING := 'Schmidt';
END_VAR
MySQL_Command[0] := 'SELECT * FROM users WHERE name = $27';
MySQL_Command[1] := CONCAT(sSearchName, '$27');
// Ergebnis: SELECT * FROM users WHERE name = 'Schmidt'Datum und Zeit
// Datum
MySQL_Command[0] := 'SELECT * FROM logs WHERE date = $272024-01-15$27';
// Datum und Zeit
MySQL_Command[0] := 'SELECT * FROM logs WHERE timestamp = $272024-01-15 10:30:00$27';Zahlen brauchen kein $27
// Richtig - Zahlen ohne $27:
MySQL_Command[0] := 'INSERT INTO data (value) VALUES (123)';
// Falsch - nicht bei Zahlen:
MySQL_Command[0] := 'INSERT INTO data (value) VALUES ($27123$27)'; // FALSCH!NULL-Werte
// Richtig - NULL ohne $27:
MySQL_Command[0] := 'INSERT INTO data (value) VALUES (NULL)';
// Falsch:
MySQL_Command[0] := 'INSERT INTO data (value) VALUES ($27NULL$27)'; // FALSCH!Referenz
Datentyp -> SQL Format
CoDeSys Typ
SQL Format
Beispiel Code
STRING
$27text$27
$27Berlin$27
INT
Direkt
123
REAL
Direkt (mit Punkt)
23.5
BOOL
Als 0/1 oder Text
1 oder $27TRUE$27
DATE
$27YYYY-MM-DD$27
$272024-01-15$27
TIME
$27HH:MM:SS$27
$2710:30:00$27
DATETIME
$27YYYY-MM-DD HH:MM:SS$27
$272024-01-15 10:30:00$27
Häufige Fehler vermeiden
Falsch
MySQL_Command[0] := 'INSERT INTO users (name) VALUES ('Max')';
// Syntaxfehler!Richtig
MySQL_Command[0] := 'INSERT INTO users (name) VALUES ($27Max$27)';Falsch
MySQL_Command[0] := 'INSERT INTO data (value) VALUES ($27100$27)';
// Zahl als Text!Richtig
MySQL_Command[0] := 'INSERT INTO data (value) VALUES (100)';Zuletzt aktualisiert

