HKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
또한 다음 DSN도 찾으십시오.
HKLM\SOFTWARE\ODBC\ODBC.INI\Name You Gave the DSN
데이터베이스 종류에 필요한 레지스트리 키와 값을 확인한 후 이 정보를 스크립트에 삽입합니다. 작업 방법을 잘 모를 때는 1~2주만 기다려 주십시오. 다른 ODBC 데이터베이스용 샘플 스크립트를 스크립트 센터에 게시할 수 있도록 하겠습니다.
다음은 SQL Server용 DSN을 만드는 스크립트입니다.
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
strValueName = "Script Repository"
strValue = "SQL Server"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
objReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
strValueName = "Database"
strValue = "Script Center"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strValueName = "Driver"
strValue = "C:\WINDOWS\System32\SQLSRV32.dll"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strValueName = "Server"
strValue = "atl-sql-01"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
strValueName = "trusted_Connection"
strValue = "Yes"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
스크립트가 조금 긴 편인데, 이는 만들어야 할 레지스트리 키와 값이 많기 때문입니다. 그러나 대부분의 경우 스크립트는 매우 간단합니다. 먼저 상수 HKEY_LOCAL_MACHINE을 &H80000002로 설정합니다. 이 값은 레지스트리의 HKLM 부분과 연결하는 데 필요합니다. 그런 다음 WMI 서비스 및 StdRegProv 클래스(root\default 네임스페이스에 있음)와 바인딩합니다.
이제 새 DSN에 붙인 이름 Script Repository를 사용해 새 레지스트리 값(HKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\Script Repository)을 만듭니다. SQL Server가 연결하려는 데이터베이스 종류이기 때문에 이 값은 SQL Server로 설정됩니다.
이해가 되셨는지요? 새 레지스트리 키 HKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\Script Repository(키 이름은 DSN 이름과 동일)를 만든 후에는 다음과 같은 레지스트리 값을 구성해야 합니다.
Database -- 연결하려는 실제 데이터베이스 이름. 이 예에서 데이터베이스의 이름은 ScriptCenter입니다.
Driver -- SQL Server ODBC 드라이브에 대한 경로. 이 예에서 이 경로는 C:\WINDOWS\System32\SQLSRV32.dll입니다.
Server -- 데이터베이스가 저장된 서버 이름. 이 경우, 서버 이름은 atl-sql-01입니다.
trusted_Connection -- 데이터베이스에 액세스할 때 로그온 자격 증명을 사용하도록 SQL Server에 알립니다. 이렇게 하면 사용자 이름과 암호를 제공하지 않아도 데이터베이스에 연결할 수 있습니다.
이제 스크립트를 실행하십시오. 그러면 완전하게 작동되는 DSN을 확인하실 수 있습니다.
DSN 작업이 끝난 후에는 이 DSN을 어떻게 제거할까요? 제거하는 방법도 간단합니다. 첫 번째 스크립트가 만든 레지스트리 키와 값을 삭제하면 됩니다. DSN Script Repository를 삭제하는 스크립트는 다음과 같습니다.
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
objReg.DeleteKey HKEY_LOCAL_MACHINE, strKeyPath
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
strValueName = "Script Repository"
objReg.DeleteValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName
이 스크립트는 처음 만든 레지스트리 값(Script Repository)을 삭제한 후 만들어 놓은 레지스트리 키도 삭제합니다. 그러나 해당 키의 개별 레지스트리 값을 삭제할 필요는 없습니다. HKLM\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\Script Repository를 삭제하면 모든 값도 함께 삭제되기 때문입니다.
|