2011-01-07 1 views
2

클라이언트가 타사 ActiveX 컨트롤을 사용하여 웹 서버를 거치지 않고 자신의 PC에서 원격 SQL Server 데이터베이스에 직접 연결할 수있는 C# 웹 사이트가 있습니다. 원래 SQLOLEDB 공급자를 사용하고 있었고 정상적으로 작동했습니다. 클라이언트는 내부 네트워크 (Windows 컴퓨터 및 Internet Explorer 사용)에 있으며 웹 사이트는 일반 인터넷에 노출되지 않습니다. 탐색 할 때 클라이언트에 SQLNCLI10 공급자가 설치되어 있는지 확인하는 방법은 무엇입니까?

나는 그것은 내 PC에 근무 SQL Server 2008의 새로운 데이터 유형에 대한 수용하기 위해 SQLNCLI10 제공 업체에 SQLOLEDB 공급자를 사용하여 업그레이드했지만, 생산 끊었다. 내가 깨닫지 못했던 점은 SQLOLEDB 공급자가 Windows OS (MDAC/WDAC)의 일부이므로 이미 클라이언트의 PC에 존재하기 때문입니다. SQLNCLI10 공급자는 SQL Server 2008의 일부로 포함되어 있으며 클라이언트 컴퓨터에 별도로 설치해야합니다 (대부분 SQL Server가 설치되어 있지 않기 때문에 설치해야합니다).

내가 standalone Microsoft SQL Server 2008 Native Client provider을 다운로드 할 수있는 링크를 제공 할 수 있지만 이미 설치되어 있는지 확인하려면 어떻게해야합니까?

답변

4

간단히 체크 레지스트리 키 또는 파일

  • 레지스트리 : HKLM\SOFTWARE\Microsoft\Sqlncli10
  • 파일이 :

\ SYSTEM32에 sqlncli10.dll를 확인 아니면 WMI에게 너무

을 사용할 수 있습니다 그것은 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SQLNCLI10\CurrentVersion 일 수도 있습니다. 예를 들어 버전을 10.0.1600.22와 비교할 수 있습니다.

+0

클라이언트 레지스트리를 어떻게 확인합니까? [this] (http://stackoverflow.com/questions/1232736/is-it-possible-to-read-registry-settings-from-the-client-machine-using-asp-net/1232745#1232745)에 따르면, 나는 할 수 없다. – JumpingJezza

+0

@ JumpingJezza ActiveX 컨트롤을 레지스트리에서 읽을 수 없습니까? –

+0

@Harvey 불행히도 내 ActiveX 컨트롤이 아닙니다. 타사 : http://www.activequerybuilder.com/ – JumpingJezza

6

실망스럽게도 Microsoft는 클라이언트 라이브러리의 존재 여부를 테스트하는 방법에 대한 모호하지 않은 대답을 제공하지 않습니다. 웹 검색 및 레지스트리 스니핑은 적어도 다음과 레지스트리 키에서 보여 :

HLKM\SOFTWARE\Microsoft\SQLNCLI11 (key:InstalledVersion) 
HLKM\SOFTWARE\Microsoft\SQLNCLI10 (key:InstalledVersion) 
HKLM\SOFTWARE\Microsoft\Microsoft SQL Native Client\CurrentVersion (version 9, i presume?) 
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0\CurrentVersion (key:Version) 
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 11.0\CurrentVersion (key:Version) 

This blog post at MSDN이 레지스트리 키를 사용하여 관련 질문에 대답 할 것을 제안 (SQL Server Express가 설치되어), 잘못 잘못 잘못이고 당신은 200 선을 작성해야 대신 WMI 코드. WMI approaches seem도 똑같이 문서화되어 있지 않으며 더욱 취약합니다.

Microsoft allows the SQL Native Client package to be redistributed부터 응용 프로그램 설치 프로그램에 msi를 포함시키고 필요에 따라 실행하면됩니다. this list of supported operating system for the various drivers they provide을 보면 버전 10.5 (!)가 있음을 알 수 있습니다.

SQLNCLI는 MDAC 기반 드라이버와 병렬로 설치되므로 msiexec을 실행하여 세부 사항을 처리하는 것이 안전해야합니다.

관련 문제