Forum: Datenbanken
Delphi
by berens,
30. Jun 2020
> _Target.FieldByName(MeinText).Value := EmptyParam
Auch das ergibt einen Laufzeitfehler.
Mein Witz von vorhin scheint sich doch allmählich als realistisch(st)e Lösung hervorzustun.
t := trim(_Source.FieldByName(MeinText).AsString);
if trim(t) = '' then begin
_Target.FieldByName(MeinText).AsString := #0;
end else begin
_Target.FieldByName(MeinText).AsString := t;
Forum: Datenbanken
Delphi
by berens,
30. Jun 2020
Typecastfehler :/
Ansonsten aber gute Idee...
Forum: Datenbanken
Delphi
by berens,
30. Jun 2020
@Delphi.Narium: Vielen Dank, die Problembeschreibung unter diesem Link trifft den Nagel auf den Kopf.
Ich habe zwischenzeitlich schon die Tabelle mit dem besagten Feld als VARCHAR(MAX) neu erstellt, und habe das identische Problem wie vorher. Selbst in der einfachst-möglichen Form:
_Target.SQL.Add('SELECT TOP 1 * FROM Layout');
_Target.Open;
_Target.Insert;
...
Forum: Datenbanken
Delphi
by berens,
30. Jun 2020
Danke für den Link. Dass TEXT deprecated ist, ist einerseits natürlich 'ne wichtige Info, andererseits macht es mir auch die Entscheidung leichter. Ich nehme dann VARCHAR(max), dann sind die kurzen und langen Stringfelder wenigstens auch vom grundlegend selben Datentyp, und hoffe, dass die generierten Inhalte da auch wirklich alle reinpassen. Wenn das aktuell wirklich 2 GB sind statt 65'000...