Ich bin gerade über was drüber gestolpert was eigentlich eh logisch ist, ich aber daran nicht gedacht habe.
Meine Erkenntnis möchte ich Euch nicht vorenthalten.
Zur Vorgeschichte:
Ich verwende eine UInt64 Variable um darin die Benutzerberechtigung zu speichern.
Diese werden dann in einer
MySql Datenbank gespeichert.
Beim Zusammenstöpseln des Strings habe ich die altbekannte und oft verwendete Funktion
IntToStr verwendet.
Wurden alle möglichen Rechte vergeben also
"18446744073709551615" so lieferte IntToStr trotzdem es eine unsigned Variable war ein
"-1".
Beim abspeichern in
MySql wurde
"0" daraus.
Statt allen rechten hatte der Benutzer jetzt gar keine.
Nach langen herumprobieren hab ich es mal mit "Format" probiert und siehe dar
"Format('%u',[UInt64(-1)])" liefert die gewünschten
"18446744073709551615"