作者:Andrew Clinick 我在“If It Moves, Script It”(英文)這篇文章中曾談到,如何使用“Windows Script Host(WSH)”( Windows 腳本主機(jī)) 管理 Windows 和 Windows 中的應(yīng)用程序。文中的大多數(shù)示例都是基于管理 Windows 操作系統(tǒng)自身的,并不基于在該操作系統(tǒng)下運(yùn)行的應(yīng)用程序。為迎接新千年,我想我應(yīng)該談?wù)劊绾卧诒姸囡@露可腳本化接口的應(yīng)用程序中使用腳本。這次只涉及“SQL Server”。在以后的幾個月中,我將著重談 Exchange、Office 和“系統(tǒng)管理服務(wù)器”。
您可以通過使用“分布式管理對象”、“數(shù)據(jù)轉(zhuǎn)換服務(wù)”和新的“SQL Server xml”實(shí)現(xiàn),將腳本用于“SQL Server”。 許多人都能夠通過“Active Data Object(ADO)”和“Active Server Page (asp)”技術(shù)訪問數(shù)據(jù)庫了。ADO 在幫助您查詢和更新數(shù)據(jù)庫方面做了大量的工作 — 但在備份(Y2K 問題帶給我們的警惕)或是數(shù)據(jù)庫之間的傳輸數(shù)據(jù)方面,其表現(xiàn)又如何呢?而這時就非涉及到 XML 不可了。
在此,我將告訴您如何通過使用 ADO 的伴隨技術(shù) - 特別是“分布式管理對象”、“數(shù)據(jù)轉(zhuǎn)換服務(wù)”和新的“SQL Server XML”實(shí)現(xiàn),將腳本用于“SQL Server”。
'********************************************************************** ' Visual Basic 轉(zhuǎn)換腳本 ' 把每個源列復(fù)制到 ' 目標(biāo)列 '*********************************************************************** Function Main() DTSDestination("EmployeeID") = cint(DTSSource("Col001")) DTSDestination("FirstName") = DTSSource("Col002") DTSDestination("LastName") = DTSSource("Col003") DTSDestination("email") = lcase(DTSSource("Col004")) DTSDestination("extension") = DTSSource("Col005") DTSDestination("office") = DTSSource("Col006") DTSDestination("DeptID") = cint(DTSSource("Col007")) Main = DTSTransformStat_OK End Function 用 DTS,能夠采用某些完善的導(dǎo)入/導(dǎo)出機(jī)制,并使您能夠在轉(zhuǎn)換的任何一步中使用腳本。重要的是,要注意腳本可能不是操作數(shù)據(jù)的最佳方式 — 尤其是您的數(shù)據(jù)集很大的話。如果您有大量數(shù)據(jù)需要轉(zhuǎn)換,而且性能也很重要,則您可能需要考慮使用 Visual Basic 或 C++ 來創(chuàng)建 COM 組件,然后從 DTS 內(nèi)部調(diào)用該組件。也就是說,如果性能并不重要,并且要在數(shù)據(jù)導(dǎo)入/導(dǎo)出時對它進(jìn)行轉(zhuǎn)換,則腳本為您提供了實(shí)現(xiàn)這一點(diǎn)的靈活機(jī)制,并使您能夠?qū)⑺写a存儲到“SQL Server”數(shù)據(jù)庫中,使部署變得相當(dāng)簡單。
關(guān)于 XML 目前,XML 看起來像是在應(yīng)用程序之間共享數(shù)據(jù)的最佳工具,所以“SQL Server”的所有管理肯定都得到了 XML 的好處。編寫提取數(shù)據(jù)庫中所有數(shù)據(jù)的腳本,以及編寫用編程的方法創(chuàng)建 XML 文檔的腳本,都是可能的。但是,如果您只要查詢“SQL Server”的話,最好使它在 XML 中返回?cái)?shù)據(jù),然后用腳本操作該 XML。“SQL Server”組最近發(fā)行了“SQL Server XML”技術(shù)的非正式版本,完全做到了這一點(diǎn)。
新的 XML 技術(shù)使用起來非常簡單。實(shí)際上是對服務(wù)器發(fā)出 HTTP 請求,將查詢傳遞給服務(wù)器,而服務(wù)器返回 XML。為了舉例說明,我創(chuàng)建了簡單的 WSH 腳本,它向本地機(jī)器查詢 North Wind 數(shù)據(jù)庫的雇員表中的所有數(shù)據(jù)。為訪問 XML,該腳本使用了“Internet Explorer 5.01”附帶的 XML 分析程序。此對象的美妙之處,在于它處理您所有的 HTTP 請求,并使您能夠同步調(diào)用。因?yàn)槟僖膊挥锰幚砣魏问录?qū)動的程序,所以,它對編寫腳本很有幫助。
該腳本非常簡單。它創(chuàng)建了 XML 分析程序的實(shí)例,使用分析程序打開 URL,然后將結(jié)果保存為 .xml 文件。只需五行的腳本,不錯吧!