2009-07-08 5 views
2

주로 VB6 및 VC++ 6으로 만든 일련의 Windows 프로그램이 있습니다. 해당 설치 관리자는 InstallShield를 사용하여 만듭니다.내 프로그램에 MDAC가 필요한지 어떻게 알 수 있습니까?

몇 명의 사용자가 최근 Vista에 설치하려고하는 문제를보고했습니다. "MDAC 2.6 Sp2는이 컴퓨터에 설치할 수 없습니다 .MDAC 2.6 Sp2에는 다음 구성 중 하나가 필요합니다"라는 메시지가 표시되고 여러 OS, Vista가 포함되어 있지 않습니다.

약간의 인터넷 검색 shows InstallShield의 MDAC 처리에 버그가 있음 - Vista에서는 MDAC와 같은 것이 없으므로 Vista에서 검사해서는 안됩니다 (새로운 기능 - "Windows DAC"가 있음). .

필자는 InstallShield 프로젝트에서 해당 페이지에 제안 된 변경 사항을 제안 할 수는 있지만 테스트 할 방법이 없기 때문에 걱정하고 있습니다. (이 문제는 모든 Vista 시스템에서 발생하지는 않습니다. 내가 액세스 할 수있는 모든 Vista 컴퓨터에서이 작업을 수행 할 수있게되었습니다.)

그러나 MDAC에서 위키 피 디아의 페이지를보고 나면 처음부터 우리 프로그램에 왜 필요한지 상상할 수 없습니다. 우리는 적어도 명시 적으로 데이터베이스를 사용하지 않고 있습니다 (사용하고있는 Microsoft 구성 요소 중 일부는 사용하고 있을지도 모름).

저는 InstallShield 프로젝트의 원작자가 아니 었습니다. 나는 MDAC가 우발적으로 MDAC에 추가되었을지도 모르는가 의심 스럽다. 또는 우연히도 "어쩌면 우리가 필요로 할 것"이라고 생각할지도 모른다.

내 프로그램에 MDAC가 필요한지 여부를 명시 적으로 어떻게 알 수 있습니까? VB6 및 VC++ 프로젝트에서 참조 사항을 볼 수 있습니다. MDAC를 InstallShield 프로젝트에서 안전하게 제거 할 수 있는지 여부를 알 수있는 방법이 있습니까? 예를 들어, 내 VB/VC++ 프로젝트에없는 경우 MDAC을 필요로하지 않는 단일 MDAC 참조가있을 수 있습니다.

미리 도움을 청하십시오.

답변

4

MDAC가 원래 InstallShield 프로젝트 구성에 포함되었을 가능성이 높습니다. 아무도 제거하지 않을 것입니다.

VB6 측에서는 "참조"대화 상자 (IDE의 프로젝트 드롭 다운 메뉴에있는 것으로 생각함)로 이동하여 MDAC가 사용 중인지 확인할 수 있어야하며 거기에 내용이 있는지 확인해야합니다 MDAC 또는 MSAccess와 관련이 있습니다. 난 잠시 동안 VB6 함께 일한 적이 있지만 텍스트를 "Microsoft ActiveX 데이터 개체 2.x 라이브러리"같은 모양이합니다.

내가 사용하고있는 가능성이 적다는 것을 추측하고 있습니다. C++ 측에서 msdado, mdac 및 msaccess와 같은 키워드를 검색하면 mdac 중 하나에 #import가 있는지 확인할 수 있습니다 dll.

0

시작 Windows XP에서 Microsoft는 MDAC를 시작했습니다. 그러나 MDAC 버전 2.6 이상에서는 더 이상 Jet 4.0 구성 요소가 포함되지 않습니다. (Jet 4.0 SP8 can be found here)

Visual Fox Pro를 사용하는 경우 코드에 따라 ODBC 또는 OLEDB 드라이버를 설치해야합니다. ODBC OLEDB

이러한 다운로드는 모두 최소한 MDAC 2.6이 설치되어 있어야합니다.

3

Windows XP 이상에 배포 할 때 Jet 4.0뿐만 아니라 MDAC 2.7이 포함 된 XP RTM (금)이기 때문에 MDAC 또는 Jet 4.0을 포함 할 이유가 없습니다.

Microsoft Data Access Components (MDAC) release history

How to obtain the latest service pack for the Microsoft Jet 4.0 Database Engine은 최근 제트 역사로 들어갑니다.

MDAC 릴리스에는 ADO에 대한 호환성 유형 라이브러리가 포함되어 있으므로 프로그램이 MDAC 2.6에 대해 컴파일 된 경우 실제로 대상 컴퓨터에서 최신 ADO가 사용됩니다. 프로그램이 ADOX에 초기 바인딩되면 실제 슬픔이 올 수 있습니다.

ADOX는 적절한 호환성 인터페이스와 함께 제공되지 않으므로 프로그램은 거의 항상으로 ADOX와 후기 바인딩을 사용해야합니다.

DAO는 또 다른 문제이지만 좋은 변명 없이는 아무도 실제로 사용하지 않아야하며 (b.) DAO 3.6에서 사망 했으므로 프로그램을 업그레이드 한 경우 호환성 문제가 없어야합니다. 3.6 및 Jet5x (Jet 4.0, Access 2000 형식).


물론 XP에서 하위 레벨을 배포 할 때 이야기가 복잡해집니다.