patagonの日記: [コンピュータ]ODBCデータソース - システムDSN にドライバSQL Serverをバッチ(スクリプト)で登録する
ODBCデータソース - システムDSN にドライバSQL Serverを登録する。テストで2台GUIでやったがもう嫌になった。今後を考えバッチでやる方法を探す。ドライバがMicrosoft Accessの場合はネット上でもかなり情報がある。これがSQL Serverとなると情報が少ない。ましてやWindows認証でなく、SQL Serverログインとなるとさらに少なくなる。
odbcconf(>odbcconf/?)を使おうとするが、「対になっているキーワード値が無効です。with error code-2147467259」と警告されうまくいかない。
UserID(User ID,UID)、Password(PWD)を外すとうまくいった。ここはアプリケーションから指定するからいいか。
odbcconfをバッチファイルで使う方法
REM odbcconf_サーバ名.bat,odbcconf.bat
@ECHO OFF
REM Update the DSN for InvControl to point to new Production SQL server...
odbcconf.exe /a {CONFIGSYSDSN "SQL Server" "DSN=DSN(名前)|Description=DSNの説明|SERVER=サーバ名|Trusted_Connection=no|Database=既定(にする)データベース(名)"}
REM pause
@CLS
@EXIT
VBSを使う方法
UserIDはレジストリ見ていると"LastUser"というのを使うことも出来るようだ。
こちらは環境によっては原因不明だがレジストリに登録されて、アプリケーションからも接続できるが、ODBC データソース アドミニストレータの「システムDSN」タブで開く画面上に名前等が表示されないことがあったので私的にはお勧めできない。
'ODBCデータソース_システムDSN追加_サーバ名.vbs,odbcconf.vbs
Const HKEY_LOCAL_MACHINE = &H80000002strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")strKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
strValueName = "DSN(名前)"
strValue = "SQL Server"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValuestrKeyPath = "SOFTWARE\ODBC\ODBC.INI\DSN(名前)"
objReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
strKeyPath = "SOFTWARE\ODBC\ODBC.INI\DSN(名前)"
strValueName = "Database"
strValue = "既定(にする)データベース(名)"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValuestrValueName = "Driver"
strValue = "C:\WINDOWS\system32\SQLSRV32.dll"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValuestrValueName = "Server"
strValue = "サーバ名"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValuestrValueName = "LastUser"
strValue = "ユーザID"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
以下、参考(◎はお勧め)
◎Hey, Scripting Guy! DSN の作成および削除をスクリプトで行うことはできますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/nov04/hey1110.mspx
[コマンド]odbcconf でのDNS(DSNの誤りか?)登録について in SQL Server
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.jp.sqlserver.server&tid=90844d9b-10e8-4518-95e2-f129aad00322&cat=ja_JP_10ee12af-85e4-4ed6-9b89-e5d51d6fa65e&lang=ja&cr=JP&p=1
Hey, Scripting Guy! コンピュータ上のシステム DSN の一覧を取得する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jul05/hey0725.mspx
Error Creating DSN using odbcconf.exe for SQL Server - MSDN Forums
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=762839&SiteID=1
◎Why batch files are still useful(一番下に)Create ODBCs for connecting to backend databases The example shows a connection to a SQL server using a Windows NT login
http://searchwincomputing.techtarget.com/tip/0,289483,sid68_gci1104365,00.html
◎ODBC and SQL Server SQLConfigDataSource
http://msdn2.microsoft.com/en-us/library/aa177860(SQL.80).aspx
script or batch file for ODBC connection
http://www.myitforum.com/forums/script_or_batch_file_for_odbc_connection/m_138129/tm.htm
コマンドラインで ODBC データソースを作成 ? Portal
http://kumasoft.org/devmemo/odbcconf
Visual Studio User Group > フォーラム > エミュレータから自PCのSQLServerへのアクセスについて
http://vsug.jp/tabid/63/forumid/50/postid/4869/view/topic/Default.aspx
.NET開発のTipsなぐりがき! 基本
http://72.14.235.104/search?q=cache:ZDEVxEvTmV0J:rararahp.blog69.fc2.com/blog-category-1.html+Trusted_Connection+user&hl=ja&ct=clnk&cd=5&gl=jp&lr=lang_ja&inlang=ja
[コンピュータ]ODBCデータソース - システムDSN にドライバSQL Serverをバッチ(スクリプト)で登録する More ログイン