본문 바로가기

잡동사니

Windows7 SP1 설치 후 ADO 응용 프로그램 오류 문제

출처 : 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. 아래의 파일을 다운로드 한다.


•Msado60_Backcompat_i386.tlb

•Msado60_Backcompat_x64.tlb

•Msado60_Backcompat_ia64.tlb

 


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