Zitat von
uwi1961:
das Problem tritt immer auf, wenn es sich um den Datentyp Char(..) oder VarChar(..) handelt und das Feld nicht leer ist ...
AHA, das ist doch schon mal was.
Der Varianttyp varString (= $0100) ist ja nur innerhalb von Delphi zulässig.
Ausserhalb von Delphi, also müssen alle Strings innerhalb eines Variants den Typ
varOleStr (= $0008) haben.
Das ist der kleine Unterschied zwischen
Variant und
OleVariant.
Versuch mal das:
Delphi-Quellcode:
procedure PasteCurrent(DS: TDataset);
var z : Integer;
begin
DS.Append;
for z:=0 to VarArrayHighBound(aField, 1)-1 do
begin
case DS.fields[z].DataType of
ftString, ftFixedChar, ftWideString:
DS.fields[z].AsString := aField[z];
else
DS.fields[z].Value:=aField[z];
end;
DS.Post;
end;