adBigInt = 20 = varInt64. Das passt. Der Varianten Converter scheint ja auch zu funktionieren.
Also muss man anstatt direkter Zuweisung, was zu einem internen Cast auf Int64 zu führen scheint, VarToStr nutzen um dann wieder in Int64 zu konvertieren.
Hast Du das mal probiert? Auch wenn es bescheuert ist
.
Das ist wirklich bescheuert - aber es funktioniert. Das ist doch kreuzgefährlich, wenn da so ein Murks passiert.
D:=StrToInt64(VarToStr(DM.ADOCon.Execute('SELECT CAST(-7978126718202166279 as bigint)').Fields[0].Value));