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