V := '123456';
V := Unassigned;
或
VarClear(V);
都无法完全释放内存(这里的内存指的是 V := '123456'; 这行代码造成的类型转换后存储'123456'的内存空间)。
TClientDataSet.SetData(const Value: OleVariant);
使用的是 oleaut32.dll 中的 ClearSavedPacket 函数和 SafeArrayCopy 函数来设置或清除 TDataPacket = PSafeArray;