Hallo,
Zitat von
Bernhard Geyer:
Ich erinnere mich das das Speichermanagement bei dem neuen String-Typ unterschiedlich ist wenn ein leerer String vorliegt. Vermutlich liegt hier ein Bug in D2009 vor.
nene, kein Bug in Delphi 2009, das Problem hatte ich schon mit Delphi 6.
Was ist denn ein Leersting, doch ein String der Länge 0.
Kannst Du denn per Insert einen String der Länge 0 (also ein '') in die Datenbank einfügen und hast anschließend kein NULL in der Datenbank? Erst dann kannst Du Dir Gedanken darüber machen, ob Du in Delphi ein Problem lösen musst. Wenn die Datenbank einen Leerstring als NULL interpretiert, kommst Du mit Delphimitteln nicht an dem Problem vorbei.
Was Du probieren könntest:
Dem Value einen String mit einem Leerzeichen zuweisen und dann speichern. Einige Datenbanken/Schnittstellen/Treiber (
SQL-Server glaub' ich auch, kann aber einstellungsabhängig sein) entfernen die am Ende befindlichen Leerzeichen, so dass Du auf diese Weise einen Leerstring in die Datenbank bekommen könntest.
Über das Thema "Eleganz" wollen wir uns dann bei dieser Lösung nicht unterhalten
Ansonsten: Value müsste ein Variant sein, wenn ja, versuch' es mal statt mit '' mit EmptyStr.