1. 程式人生 > >Windows上命令列實現執行時新增ODBC資料來源-odbcconf命令的使

Windows上命令列實現執行時新增ODBC資料來源-odbcconf命令的使

     最近做的一個專案要求程式可以自動在windows上新增一個ODBC資料來源,發現可以用Windows API中的SQLConfigDataSource函式可以實現,在檢視MSDN文件時,這個函式等同於odbcconf.exe命令列工具。最好是使用SQLConfigDataSource自己實現一個application,用來建立ODBC資料來源,但是使用odbcconf.exe命令列工具,然後通過java來呼叫也能實現該功能,於是就使用了它。

    該命令在msdn上可以檢視到詳細的引數的含義,msdn的連結:

http://msdn.microsoft.com/en-us/library/ee388579%28v=vs.85%29.aspx

    主要用到是 /A {action} 這個引數,action可以有種選項,檢視msdn一看便知,最主要的是使用CONFIGSYSDSN,就是建立一個系統DSN,這個命令的格式為

Java程式碼 

 收藏程式碼

  1. CONFIGSYSDSN driver_name DSN=name|attributes  

     由此看出, 我們知道建立一個數據源的時候,需要指定用什麼driver,是SQL Server還是Oracle還是其他什麼資料庫型別,它是通過指定driver的名稱實現的。建立資料來源時還需要要填入資料庫所在的機器,資料庫的名稱,使用者名稱,密碼等資訊,不同型別的資料庫驅動這些資訊是不一樣的,這些資訊怎樣通過命令引數新增上去呢,使用DSN=name |attributes這樣一個字串的方式,把資料庫的機器名,使用者名稱,密碼等資訊作為attributes放置到DSN=name後面,不同屬性用豎線分隔,DSN=name這個是必須有的,就是你的DSN的名字是什麼,然後後面就是那些屬性。

      以我專案中的設定為例子,driver是Virtual View Manager 8.4,DSN需要設定,主機名,使用者名稱,密碼,資料庫名,域名,目錄名等,於是這些資訊組成了字串DSN=vvmfilenetp8;UID=admin;PWD=admin;DOMAIN=cognos;HOST=localhost;PORT=9401;DATASOURCE=fn;CATALOG=catalog;

整個命令列看起來如下

Java程式碼 

 收藏程式碼

  1. odbcconf.exe /A {CONFIGSYSDSN "Virtual View Manager 8.4" "DSN=vvmtest;UID=admin;PWD=admin;DOMAIN=cognos;HOST=localhost;PORT=9401;DATASOURCE=db;CATALOG=catalog;"}  

 

      當然不同資料庫型別的DSN的屬性都是不同的,具體是什麼格式,需要自己去檢視。

執行完這一命令,再去windows的ODBC資料來源那裡檢視,名稱為vvmtest的系統DSN就新增上去了。

當然你也可以使用INSTALLDRIVER引數先安裝driver,實現安裝driver,然後新增資料來源都在程式中自動完成。具體如何使用可以檢視msdn文件的說明。

      以上就算是拋磚引玉,該命令還有許多別的引數,可以實現其他功能。具體可以檢視msdn。

通過以上的實踐,作者感覺檢視文件,看懂文件非常重要,它能幫助你自己解決很多問題。

 

原文網址:http://seeallsea.iteye.com/blog/1109385