Windows7 SP1 설치 후 ADO 응용 프로그램 오류 문제컴퓨터/개발
2011/04/12 17:32
http://blog.naver.com/jaebeom/110106721084
현상
Windows 7 SP1 또는 Windows Server 2008 R2 SP1 또는 KB983246 설치 한 시스템에서 ADO 응용 프로그램을 컴파일 할 경우 XP나 이전 버전의 OS에서 실행시 아래와 유사한 오류가 발생합니다.
REGDB_E_CLASSNOTREG (0x80040154)
E_POINTER (0x80004003)
E_NOINTERFACE (0x80004002)
Unable to cast COM object of type 'System.__ComObject' to interface type 'ADODB.Connection'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00001550-0000-0010-8000-00AA006D2EA4}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).”
Class does not support Automation or does not support expected interface
클래스가 자동화를 지원하지 않거나 예상되는 인터페이스를 지원하지 않습니다.
해결방법
1. 아래의 파일을 다운로드 한다.
2. 다운로드 한 파일을 ADO 폴더에 Msado60_Backcompat.tlb라는 이름으로 복사한다.
ADO 폴더는 기본적으로 "C:\Program Files\Common Files\System\ado" 이다.
3. 레지스트리에 등록한다.
%windir%\Microsoft.NET\Framework\v4.0.30319\Regtlibv12 "%CommonProgramFiles%\System\ado\Msado60_Backcompat.tlb"
참고, 닷넷프레임워크 버전에 따라 경로를 적당히 수정해야 할 수 있습니다. 위 예제는 4.0 버전 기준 입니다.
닷넷 프레임워크 4.0 버전 설치를 위해서는 다음을 참조한다. Microsoft .NET Framework 4(웹 설치 관리자)
4. 등록 후 레지스트리에 아래의 사항을 확인한다.
HKEY_CLASSES_ROOT\TypeLib\{0C0FF45D-87C8-4333-9075-3D9B4D64F9FC}\6.0
HKEY_CLASSES_ROOT\TypeLib\{0C0FF45D-87C8-4333-9075-3D9B4D64F9FC}\6.0\0\win32
--> "%CommonProgramFiles%\System\ado\Msado60_Backcompat.tlb"
5-1 VisualBasic6 개발자
프로젝트 메뉴의 참조에서 아래와 같이 참조 변경한다.
Microsoft ActiveX Data Objects * Library 참조 해제
Microsoft ActiveX Data Objects Recordset * Library 참조 해제
Microsoft ActiveX Data Objects 6.0 BackCompat Library 참조 설정
다시 컴파일 한다.
5-2 C++ 개발자
아래 라인을
#import "msado15.dll" no_namespace rename("EOF","EndOfFile")
아래와 같이 변경한다.
#import "msado60_Backcompat.tlb" no_namespace rename("EOF","EndOfFile")
다시 컴파일 한다.
5-3 .NET 개발자
프로젝트 메뉴의 프로젝트 속성을 실행하고, 참조 탭에서
Microsoft ActiveX Data Objects * Library 참조 해제
Microsoft ActiveX Data Objects Recordset * Library 참조 해제
Microsoft ActiveX Data Objects 6.0 BackCompat Library 참조 설정
다시 컴파일 한다.
======================================================================================================
추가 정보 입니다.
64Bit OS를 사용하시는 경우, 2개의 파일을 각각 다운하고, 아래 폴더로 복사해야 합니다.
Msado60_Backcompat_i386.tlb -> "%CommonProgramFiles(x86)%\System\ado\Msado60_Backcompat.tlb"
Msado60_Backcompat_x64.tlb -> "%CommonProgramFiles%\System\ado\msado60_Backcompat.tlb"
물론 2개 파일 모두 레지스트리에 등록해야 합니다.
참조 : http://support.microsoft.com/kb/2517589/en-us
[출처] Windows7 SP1 설치 후 ADO 응용 프로그램 오류 문제|작성자 김재범 =============================================================================== 64비트 관련 정리 1. 아래의 파일을 다운로드 한다.
2. 다운로드 한 Msado60_Backcompat_i386.tlb 파일을 ADO 폴더에 Msado60_Backcompat.tlb라는 이름으로 복사한다.
ADO 폴더는 기본적으로 "C:\Program Files(x86)\Common Files\System\ado" 이다.
그리고, Msado60_Backcompat_x64.tlb 파일을 ADO 폴더에 Msado60_Backcompat.tlb라는 이름으로 복사한다.
64비트용 ADO 폴더는 기본적으로 "C:\Program Files\Common Files\System\ado" 이다.
3. 레지스트리에 등록한다.
%windir%\Microsoft.NET\Framework\v4.0.30319\Regtlibv12 "%CommonProgramFiles%\System\ado\Msado60_Backcompat.tlb"
참고, 닷넷프레임워크 버전에 따라 경로를 적당히 수정해야 할 수 있습니다. 위 예제는 4.0 버전 기준 입니다.
닷넷 프레임워크 4.0 버전 설치를 위해서는 다음을 참조한다. Microsoft .NET Framework 4(웹 설치 관리자)
4. 등록 후 레지스트리에 아래의 사항을 확인한다.
HKEY_CLASSES_ROOT\TypeLib\{0C0FF45D-87C8-4333-9075-3D9B4D64F9FC}\6.0
HKEY_CLASSES_ROOT\TypeLib\{0C0FF45D-87C8-4333-9075-3D9B4D64F9FC}\6.0\0\win32
--> "%CommonProgramFiles%\System\ado\Msado60_Backcompat.tlb"
====> 실제 테스트 결과, 레지스트리가 안생길 수 있다. 재부팅 한 다음에 해 보자.
5-1 VisualBasic6 개발자
프로젝트 메뉴의 참조에서 아래와 같이 참조 변경한다.
Microsoft ActiveX Data Objects * Library 참조 해제
Microsoft ActiveX Data Objects Recordset * Library 참조 해제
Microsoft ActiveX Data Objects 6.0 BackCompat Library 참조 설정
다시 컴파일 한다.