ODBC DSNの自動作成(WSH)
【ta.oohahsi 20050921】
ODBCのシステムDSN(データソースネーム)の参照と作成方法を記します。
C/S(クライアント/サーバ)方式のDBMSで、ADOやoo4oなどのミドルウェアオブジェクトが主流になりつつありますが、
現役で動作しているミドルウェアでは、ODBCが多いのではないでしょうか。
ODBCは、現在、以下の3つの形態があります。
・ユーザDSN・・・・・ログイン名ごとに作成される。レジストリのHKEY_CURRENT_USER\Software\ODBC\odbc.iniに作成される。
・システムDSN・・・・・パソコンごとに作成される。レジストリのHKEY_LOCAL_MACHINE\Software\ODBC\odbc.iniに作成される。
・ファイルDSN・・・・・拡張子dsnのファイルとして作成される。
複数人で、同じ内容のDSNを使用する場合は、ファイルDSNを使用します。
ただし、ファイルDSNはODBC3からサポートされたので、ODBCドライバが、3以上でないと、ファイルDSNを使用できません。
一般的に使用されるのは、システムDSNが多いと思います。
そこでプログラムにシステムDSNを作成するモジュールを組み込めば、同じ内容のDSNを複数人が使用できます。
システムDSNの作成方法は、いろいろありますが、ここでは、ODBCのAPI関数を使用します。
*******************************************
Const HKEY_LOCAL_MACHINE = &H80000002
'設定PC名
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
'DSN名
strValueName = "ScriptR"
'接続ドライバの指定
strValue = "SQL Server"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName
objReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
'strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName
'DB名
strValueName = "Database"
strValue = "master"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'ドライバ名(SQL Serverを指定)
strValueName = "Driver"
strValue = "C:\WINDOWS\System32\SQLSRV32.dll"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'接続先サーバ名
strValueName = "Server"
strValue = "(local)"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'NT認証ON(SQL認証の場合は以下の項目をコメントアウト)
strValueName = "Trusted_Connection"
strValue = "Yes"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
*******************************************
参考
■[[MicrosoftTechNet Hey,Scripting Guy!>http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/technologies/iis/maintain/optimize/autoadm2.mspx]]
【ta.oohahsi 20050921】
ODBCのシステムDSN(データソースネーム)の参照と作成方法を記します。
C/S(クライアント/サーバ)方式のDBMSで、ADOやoo4oなどのミドルウェアオブジェクトが主流になりつつありますが、
現役で動作しているミドルウェアでは、ODBCが多いのではないでしょうか。
ODBCは、現在、以下の3つの形態があります。
・ユーザDSN・・・・・ログイン名ごとに作成される。レジストリのHKEY_CURRENT_USER\Software\ODBC\odbc.iniに作成される。
・システムDSN・・・・・パソコンごとに作成される。レジストリのHKEY_LOCAL_MACHINE\Software\ODBC\odbc.iniに作成される。
・ファイルDSN・・・・・拡張子dsnのファイルとして作成される。
複数人で、同じ内容のDSNを使用する場合は、ファイルDSNを使用します。
ただし、ファイルDSNはODBC3からサポートされたので、ODBCドライバが、3以上でないと、ファイルDSNを使用できません。
一般的に使用されるのは、システムDSNが多いと思います。
そこでプログラムにシステムDSNを作成するモジュールを組み込めば、同じ内容のDSNを複数人が使用できます。
システムDSNの作成方法は、いろいろありますが、ここでは、ODBCのAPI関数を使用します。
*******************************************
Const HKEY_LOCAL_MACHINE = &H80000002
'設定PC名
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
'DSN名
strValueName = "ScriptR"
'接続ドライバの指定
strValue = "SQL Server"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName
objReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
'strKeyPath = "SOFTWARE\ODBC\ODBC.INI\Script Repository"
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\" + strValueName
'DB名
strValueName = "Database"
strValue = "master"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'ドライバ名(SQL Serverを指定)
strValueName = "Driver"
strValue = "C:\WINDOWS\System32\SQLSRV32.dll"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'接続先サーバ名
strValueName = "Server"
strValue = "(local)"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'NT認証ON(SQL認証の場合は以下の項目をコメントアウト)
strValueName = "Trusted_Connection"
strValue = "Yes"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
*******************************************
参考
■[[MicrosoftTechNet Hey,Scripting Guy!>http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/technologies/iis/maintain/optimize/autoadm2.mspx]]