An error occurs because the fields in the disconnected recordset have been defined as adVariant, and ADO cannot marshal certain data types within adVariant across process boundaries (in this case, between InetInfo and MTS or COM+). ADO marshaling cannot convert data of the following types when the field type is set to adVariant:
DBTYPE_BSTR = 8,
DBTYPE_IDISPATCH = 9,
DBTYPE_VARIANT = 12,
DBTYPE_IUNKNOWN = 13,
DBTYPE_ARRAY = 0x2000,
DBTYPE_BYREF = 0x4000,
Please note that the following types are not to be used for Automation when using adVariant, as documented (search for the Topic "Type Indicators" in
the Microsoft Data Access Components 2.5 SDK - OLE DB Programmer's Reference in the MSDN library at
http://msdn.microsoft.com/en-us/library/ms723969(VS.85).aspx):
// The following values exactly match VARENUM
// in Automation but cannot be used in VARIANT.
DBTYPE_I8 = 20,
DBTYPE_UI8 = 21,
DBTYPE_GUID = 72,
DBTYPE_VECTOR = 0x1000,
DBTYPE_FILETIME = 64,
DBTYPE_RESERVED = 0x8000,