Zitat von
HeinzJ:
Ich denke mal, das der Operator + (für Stringverkettung) da mal schlicht keinen NULL Wert zuläßt.
Versuchs mal mit VariantFeld.AsString.
AsString kenn ich schon...
wie eingangs schon erwähnt lässt er´s auf 2 von 3 rechnern schon zu.
auf dem dritten läuft vista (was der einzig erkennbare unterschied ist) -
vielleicht ist die lösung aber auch ein delphi-compliler-switch (oder was halt immer - DAS ist die frage)
so ists halt urpraktisch, ein schöner einzeiler und vermeidet dutzende if-s bzw. doppelte leerzeichen.
so wird das leerzeichen nur verwendet, wenn das feld auch einen wert hat:
Code:
sName := Nz(rs.FieldValues[FLD_TITEL] + ' ', '') + Nz(rs.FieldValues[FLD_NAME2] + ' ', '') +
Nz(rs.FieldValues[FLD_NAME1], '') + Nz(' ' + rs.FieldValues[FLD_NAME3], '');
--------------------------------------------------
function Nz(val, replace: variant): Variant;
begin
if (val <> NULL) then
result := val
else
result := replace;
end;
nachdem ich das seit 10 jahren so mache hab ich einfach keine lust
100e codezeile aufzublasen nur weil ich mal am samstag nachmittag
in der gartenhütte mit dem sch*** vista-notebook ein paar code-zeilen schreibe...
...wenn die möglichkeit besteht die URSACHE der anomalie zu finden
und das auf dem vista-ding auch zum laufen zu kriegen.