Difference between revisions of "ODBC Connection"
From WPKG | Open Source Software Deployment and Distribution
(→The Installer Package) |
|||
| Line 3: | Line 3: | ||
===The Installer Package=== | ===The Installer Package=== | ||
| + | |||
| + | This uses one of 8 template files, all based on registry exports, to produce entries using a mix of:- | ||
| + | |||
| + | * trusted connection | ||
| + | * SQL authentication | ||
| + | * named Database | ||
| + | * database not specified | ||
| + | |||
| + | - as needed. For example:- | ||
| + | |||
| + | # ODBC_template_SQL2K5_int_auth_db.reg | ||
| + | # ODBC_template_SQL2K5_int_auth_no_db.reg | ||
| + | # ODBC_template_SQL2K5_sql_auth_db.reg | ||
| + | # ODBC_template_SQL2K5_sql_auth_no_db.reg | ||
| + | # ODBC_template_SQL2K8_int_auth_db.reg | ||
| + | # ODBC_template_SQL2K8_int_auth_no_db.reg | ||
| + | # ODBC_template_SQL2K8_sql_auth_db.reg | ||
| + | # ODBC_template_SQL2K8_sql_auth_no_db.reg | ||
| + | |||
<pre> | <pre> | ||
<package id="ODBC_CONN_X" | <package id="ODBC_CONN_X" | ||
| Line 18: | Line 37: | ||
<variable name="tools" value="c:\tools" /> | <variable name="tools" value="c:\tools" /> | ||
| − | <variable name="ODBC_DSN_NAME" value=" | + | <variable name="ODBC_DSN_NAME" value="ODBC_CONN_X" /> |
<variable name="ODBC_DBSERVER" value="SQLDEV-2005-A" /> | <variable name="ODBC_DBSERVER" value="SQLDEV-2005-A" /> | ||
<variable name="ODBC_DBNAME" value="AutomationTest" /> | <variable name="ODBC_DBNAME" value="AutomationTest" /> | ||
<variable name="ODBC_DESC" value="A test of blah for blah" /> | <variable name="ODBC_DESC" value="A test of blah for blah" /> | ||
| − | <variable name="ODBC_DRIVERNAME" value="SQL Server" /> | + | <variable name="ODBC_DRIVERNAME" value="SQL Server Native Client 10.0" /> |
| − | <variable name="ODBC_TEMPLATE_FILE" value=" | + | <variable name="ODBC_TEMPLATE_FILE" value="ODBC_template_SQL2K8_int_auth_db.reg" /> |
<check type="registry" condition="equals" path="HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\%ODBC_DSN_NAME%" value="%ODBC_DRIVERNAME%" /> | <check type="registry" condition="equals" path="HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\%ODBC_DSN_NAME%" value="%ODBC_DRIVERNAME%" /> | ||
| Line 36: | Line 55: | ||
</package> | </package> | ||
</pre> | </pre> | ||
| + | |||
| + | This <depend>s on package "SQL_SERVER_NATIVECLIENT_10.0" which I've also added. | ||
===The Registry Template=== | ===The Registry Template=== | ||
Revision as of 02:26, 18 October 2010
A WPKG Package to create an ODBC Connection
The Installer Package
This uses one of 8 template files, all based on registry exports, to produce entries using a mix of:-
- trusted connection
- SQL authentication
- named Database
- database not specified
- as needed. For example:-
- ODBC_template_SQL2K5_int_auth_db.reg
- ODBC_template_SQL2K5_int_auth_no_db.reg
- ODBC_template_SQL2K5_sql_auth_db.reg
- ODBC_template_SQL2K5_sql_auth_no_db.reg
- ODBC_template_SQL2K8_int_auth_db.reg
- ODBC_template_SQL2K8_int_auth_no_db.reg
- ODBC_template_SQL2K8_sql_auth_db.reg
- ODBC_template_SQL2K8_sql_auth_no_db.reg
<package id="ODBC_CONN_X"
name="Create ODBC Connect to DB XYZ on SQL 2008 Server ABC..."
revision="1.1"
reboot="false"
execute="always">
<depends package-id="SETUP" />
<depends package-id="SETUPTOOLS" /> <!-- TxtReplace.exe -->
<depends package-id="SQL_SERVER_NATIVECLIENT_10.0" />
<variable name="LOCALDOWNLOADS" value="C:\downloads\provisioning" />
<variable name="WPKGHOME" value="\\enterprise\development\infrastructure\provisioning\wpkg-1.1.2\" />
<variable name="tools" value="c:\tools" />
<variable name="ODBC_DSN_NAME" value="ODBC_CONN_X" />
<variable name="ODBC_DBSERVER" value="SQLDEV-2005-A" />
<variable name="ODBC_DBNAME" value="AutomationTest" />
<variable name="ODBC_DESC" value="A test of blah for blah" />
<variable name="ODBC_DRIVERNAME" value="SQL Server Native Client 10.0" />
<variable name="ODBC_TEMPLATE_FILE" value="ODBC_template_SQL2K8_int_auth_db.reg" />
<check type="registry" condition="equals" path="HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources\%ODBC_DSN_NAME%" value="%ODBC_DRIVERNAME%" />
<install cmd="xcopy /Y "%WPKGHOME%\ODBC\%ODBC_TEMPLATE_FILE%" "%LOCALDOWNLOADS%\"" />
<install cmd="%tools%\TxtReplace\TxtReplace.exe -i "%LOCALDOWNLOADS%\%ODBC_TEMPLATE_FILE%" -r __ODBC_DSN_NAME__ "%ODBC_DSN_NAME%" -r __ODBC_DESCRIPTION__ "%ODBC_DESC%" -r __ODBC_DBSERVER__ "%ODBC_DBSERVER%" -r __ODBC_DBNAME__ "%ODBC_DBNAME%" " />
<install cmd="%tools%\reg.exe import "%LOCALDOWNLOADS%\%ODBC_TEMPLATE_FILE%"" />
<remove cmd="cmd /c %tools%\reg.exe DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" /v "%ODBC_DSN_NAME%" /f" />
<remove cmd="cmd /c %tools%\reg.exe DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\%ODBC_DSN_NAME%" /f" />
</package>
This <depend>s on package "SQL_SERVER_NATIVECLIENT_10.0" which I've also added.
The Registry Template
This requires "TxtReplace.exe" substitution utility, and "reg.exe" from the Windows 2000 resource kit (on the W2K CD)
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "__ODBC_DSN_NAME__"="SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\__ODBC_DSN_NAME__] "Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll" "Description"="__ODBC_DESCRIPTION__" "Server"="__ODBC_DBSERVER__" "Trusted_Connection"="Yes"