![]() |
Re: Fehler: "Ungültiger Varianttyp" - nur unter Wi
Jetzt aber: :???:
Delphi-Quellcode:
procedure PasteCurrent(DS: TDataset);
var z : Integer; begin DS.Append; for z:=0 to VarArrayHighBound(aField,1) do begin case DS.fields[z].DataType of ftString, ftFixedChar, ftWideString: if varType(aField[z]) = varNull then DS.fields[z].Clear else DS.fields[z].AsString := aField[z]; else DS.fields[z].Value:=aField[z]; end; end; DS.Post; end; |
Re: Fehler: "Ungültiger Varianttyp" - nur unter Wi
:thumb: JA so passt es wunderbar .... besten Dank
inzwischen hatte ich auch diese Lösung gefunden:
Delphi-Quellcode:
klappt auch...
procedure PasteCurrent(DS: TDataset);
var z : Integer; begin DS.Append; for z:=0 to VarArrayHighBound(aField,1) do begin case DS.Fields[z].DataType of ftString, ftFixedChar, ftWideString: if aField[z]<>NULL then DS.Fields[z].AsString := aField[z]; else // kein Stringfeld DS.Fields[z].Value:=aField[z]; end; //case end; // Schleife DS.Post; end; Gruß Uwe |
Re: Fehler: "Ungültiger Varianttyp" - nur unter Wi
Das Problem ist durch einen Fehler im Delphi-Compiler erklärbar. Duch den Zugriff auf aField[z] wird eine Variantenprüfung durchgeführt. Bei dieser Prüfung wird zuerst geprüft, ob die Variante ein Array ist. Diese Prüfung ist dummerweise bei varString auch wahr. Das heisst, wenn in deinem array aField[z] ein String drinsteht, versucht er, den Variant aField[z] als array interpretiert zuzuweisen und diesen Variantentyp will das dataset natürlich nicht. Interessanterweise ist dieses Phänomen betriebsystemabhängig, und zwar nicht zur compile- sondern zur Laufzeit.
Ich hatte ein ähnliches Problem mit einem Variantrenarray als Übergabeparameter und weiteren Defaultparametern. Lies sich unter NT4 problemlos ausführen, unter win200 krachte es, egal, auf welchem System die Quelle compiliert wurde. |
Re: Fehler: "Ungültiger Varianttyp" - nur unter Wi
Zitat:
jetzt kann ich mir dieses Phänomen wenigstens halbwegs erklären... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz