Microsoft ADO issues between XP and Windows 7

I've been in the process of migrating a development environment project from xp 32bit to windows 7 32bit.  The main issue I've been having all revolve around the microsoft activex data object (ado) component/library.  This project is coded in vb6 and vc6.  

One of the problems that was caused originally was within the vb6 applications.  It would say "automation error" on lines like this:

Set oADOConn = New ADODB.Connection

I've read that changing to late binding gets around that compiler error.

Then I make this change:

Set oADOConn = CreateObject("ADODB.Connection")

and the compiler error goes away

After making that change I hit runtime errors from one of the vc6 project.  I've found the problems vary depending on what version of the msado15.dll I am using.

When I use version 2.10.3711.9 of msado15.dll, then the projects compile fine but then I get the runtime errors listed above.  But if I use version 6.1.7601.17857 of msado15.dll then I get all of these linker errors with that same project that was having the runtime error:


Generating Code...
Linking...
   Creating library ..\..\..\bin/CatalogDAL.lib and object ..\..\..\bin/CatalogDAL.exp
LINK : warning LNK4199: /DELAYLOAD:mtxex.dll ignored; no imports found from mtxex.dll
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
Code.obj : error LNK2001: unresolved external symbol "public: class _variant_t __thiscall Field20::GetValue(void)" (?GetValue@Field20@@QAE?AV_variant_t@@XZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
Code.obj : error LNK2001: unresolved external symbol "public: short __thiscall Recordset15::GetEndOfFile(void)" (?GetEndOfFile@Recordset15@@QAEFXZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
Code.obj : error LNK2001: unresolved external symbol "public: class _bstr_t __thiscall Field20::GetName(void)" (?GetName@Field20@@QAE?AV_bstr_t@@XZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
Code.obj : error LNK2001: unresolved external symbol "public: enum DataTypeEnum __thiscall Field20::GetType(void)" (?GetType@Field20@@QAE?AW4DataTypeEnum@@XZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
Code.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetDefinedSize(void)" (?GetDefinedSize@Field20@@QAEJXZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
Code.obj : error LNK2001: unresolved external symbol "public: long __thiscall Field20::GetAttributes(void)" (?GetAttributes@Field20@@QAEJXZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Field,&struct __s_GUID _GUID_00001569_0000_0010_8000_00aa006d2ea4> > __thiscall Fields15::GetItem(class _variant_t const &)" (?GetItem@Fields15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UField@@$1?_GUID_00001569_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@ABV_variant_t@@@Z)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
Code.obj : error LNK2001: unresolved external symbol "public: long __thiscall _Collection::GetCount(void)" (?GetCount@_Collection@@QAEJXZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
Code.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
..\..\..\bin/CatalogDAL.dll : fatal error LNK1120: 12 unresolved externals
Error executing link.exe.

CatalogDAL.dll - 109 error(s), 2 warning(s)

*** END:   Build Failure

Building CatalogTXLLib.dsp
   ... failed

*** BEGIN: Build Failure [CatalogTXLLib.dsp]




The program seems functional when I build the project while using version 2.10.3711.9 of msado15.dll and then start using version 6.1.7601.17857 of that dll to run the program.  But ideally I would not want to be constantly switching dll's to have a functional application.  I've seem to have exhausted everything on google about this matter.  I've tried installing hotfix, service packs, registering ocx's, registering library files.  But the problem remains.  Any ideas what can be done to fix this?
Craig SmithAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

BitsqueezerCommented:
Hi,

the problem is that MS has significally changed the ADO library starting with W7 so they are no longer compatible to older versions if you compile under W7. If you create applications for XP you need to use the ADO 2.8 library (the newest version) and compile it with an XP system. If you need the same application in W7 you need to use ADO 6.1 and compile it there again. Both versions can then only run on the Windows system where it was compiled.

With late binding there should be no problem - as long as only your own code can work with late binding. If you have other code which needs to have an early binding reference in your project then you need to compile like described above.
The error log says something about mtxex.dll, maybe this is also a problem. Something about that can be found here:
https://en.wikipedia.org/wiki/Microsoft_Transaction_Server

Maybe this is also of help for you, it explains the differences made in the ADO library and workarounds:
https://support.microsoft.com/en-us/kb/2640696

Cheers,

Christian
0
Sinisa VukSoftware architectCommented:
little addition to this problem is  here ....
0
Craig SmithAuthor Commented:
I'd just like to get it to compile on windows 7.  It does not have to be downward compatible to xp.  It's just a matter of either getting past this linker error with ado 6.1 or this runtime error when using ado 2.10.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

BitsqueezerCommented:
Hi,

I don't know of any 2.10 version, the highest number was 2.8, maybe you mean 2.1 which would be a very old version.

If you don't need XP anymore then you should not use the old 2.x versions anymore, just stay on version 6.x, the newest available one.

I'm afraid you need to look into your code to find out where the problem is. The easiest test would be to create a new project with W7 and ADO 6.x as reference, then try to create one ADO object like a connection or command or recordset and try to compile that. If there aren't any problems it is no problem of your environment but the code of your project, then you can test to create a new project and insert the least possible code of your project and try to compile that, then add further modules one by one.

If there is a problem with the empty project with least possible ADO code then maybe there is something wrong with your environment, in this case I would try to compile that on another W7 computer. On this way you can find out step by step where the problem exactly resides.

Cheers,

Christian
0
Jacques Bourgeois (James Burger)PresidentCommented:
The VB6 development environment is not supported on Windows 7, and has proved to give a lot of problems.

If you want to keep working with a technology that is almost 20 years old and has lost support 7 years ago, it is recommended that you stick with Windows XP for you development tools.

Microsoft has "done what it could" so that the VB6 runtime still works on newer versions of Windows. So in most situations (but not all, it depends mostly on the controls that you use), applications developed in VB6 on Windows XP will run OK in Windows 7. Things deteriorate the more you move along the Windows version path.
0
Craig SmithAuthor Commented:
I replaced every instance of Import "msado15.dll" with import "msado60.tlb".  It's compiling without errors after I did that.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jacques Bourgeois (James Burger)PresidentCommented:
My remarks still stand anyway. The more you will wait, the harder it will be when you will be forced to switch your development environment to VB.Net or something else. And the transition is not easy.

You are lucky that you found a solution. It won't be the case for many years if you stick with VB6.

If you do not plan for that right now, you can end up stuck as the bottom of the sea while everybody will be flying in the cloud.
0
BitsqueezerCommented:
Hi,

I would not see the future for VB6 as dark as James does. It's right that it would be the right point in time to now leave this line and go on with VB.NET because it offers you the possibility to program in the same way as in VB6 if you want (procedural code, event based, Windows Forms and so on) although it would waste the way better possibilities of object oriented coding, WPF and ADO.NET instead of ADO COM libraries. So the conversion is not that hard as you may think and you can start with the Express versions without any cost.

But on the other hand we should not forget that VB6 is the base which is used also for all VBA applications and this will surely not leave the Microsoft Office products for the following years so Microsoft may have stopped support for VB6 environment, but surely not for VB6 kind of development environments, that means, COM and all the needed libraries will surely be available as long as VBA exists. Beside of Access where MS is slightly pushing macros instead of VBA all the other Office products doesn't offer any other way of programming and there also seems to be no plan to move on to .NET as development layer for all the VBA-able applications I think it should be possible to develop with VB6 the next years also.
Beside of that VB6 is able to produce ActiveX elements which can be bound into applications like Access which is a lot more problematic to create with C++. ActiveX is also an abandoned technology in the newest MS OS, but they can only stop that for IE, not for all the applications and ActiveX developers which are highly dependent of that (think of the most commonly used "MSCOMCTL" libraries with TreeView and ListView).

So although it is a good recommendation to move on to newer technologies for new applications,  also keep in mind that these new technologies are often faster thrown away than you have the chance to learn that. Silverlight is one example, WPF is good but the newest "hype" since Windows 8 is to develop with Javascript and HTML 5 instead - and so on. So the decision which technology to be used should not be the question for "how long does MS support that" or "which is the most superduper new development hype" (otherwise a lot of applications and developments would have been forced to be thrown away already), the decision should be made through questions like "what technology allows me to reach my goal in the easiest and fastest way" or "what technology is the right to let my project run for the expected lifetime of the application" or "can it grow to new technologies in future if it needs to do so" and so on.
Microsoft is not the only source of development platforms, you could also say, why not start with Java or Javacript/HTML or anything else? So think about what fits your needs as best as possible for the target you want to reach. If a batch file is enough to do a job there is no need to use a large .NET development, if VBA is enough to do the job you don't need a fat Java development and so on.

And cloud: Although all seems to try to fly into some cloud these days the same people are surprised how their data is stolen and used for other purposes on that way. Cloud is surely no solution for each and every application and should be used with great skepticism all the time, a lot of companies offers very internal data to outer servers from which there is no real guarantee where the own data is saved and how it is been used. Surely all say "it is safe" and "no, we surely do not offer our data to anyone else!" - but they offer data space "for free"...;-)
I personally be of the opinion: If you can handle the data with your own servers which are as best as possible not reachable from outer networks, then do it so. A "cloud" (reaching the data you want from anywhere in the world) can also be offered on a secure way with simple, classic technologies and does not depend on Microsoft or .NET, this should surely not be a reason to switch to .NET.

Cheers,

Christian
0
Jacques Bourgeois (James Burger)PresidentCommented:
VBA (interpreted VBA) will not go out soon. But VB6 (compiled VBA) is going out. The problem is not the language itself, it's that the development tools are not supported and are having more and more problems as new versions of Windows come out.

Any programmer that is worth a few cents have to think about maintenance. And one one be fool to think that he won't have maintenance problems in the future, with an unsupported piece of software that already shows problems.
0
inthedarkCommented:
Windows 10 is the very last version of Windows. MS has realised that they had become a joke by creating so many versions of Windows.
VB6 seems to work fine on Windows 10 once you learn the changes to the install process.
0
Craig SmithAuthor Commented:
This is what worked.  I am my own best source :)  Thanks for the feedback though it was very informative
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.