作者:Andrew Clinick 我在“If It Moves, Script It”(英文)这篇文章中曾谈到,如何使用“Windows Script Host(WSH)”( Windows 脚本主机) 管理 Windows 和 Windows 中的应用程序。文中的大多数示例都是基于管理 Windows 操作系统自身的,并不基于在该操作系统下运行的应用程序。为迎接新千年,我想我应该谈谈,如何在众多显露可脚本化接口的应用程序中使用脚本。这次只涉及“SQL Server”。在以后的几个月中,我将着重谈 Exchange、Office 和“系统管理服务器”。
您可以通过使用“分布式管理对象”、“数据转换服务”和新的“SQL Server xml”实现,将脚本用于“SQL Server”。 许多人都能够通过“Active Data Object(ADO)”和“Active Server Page (asp)”技术访问数据库了。ADO 在帮助您查询和更新数据库方面做了大量的工作 — 但在备份(Y2K 问题带给我们的警惕)或是数据库之间的传输数据方面,其表现又如何呢?而这时就非涉及到 XML 不可了。
在此,我将告诉您如何通过使用 ADO 的伴随技术 - 特别是“分布式管理对象”、“数据转换服务”和新的“SQL Server XML”实现,将脚本用于“SQL Server”。
'********************************************************************** ' Visual Basic 转换脚本 ' 把每个源列复制到 ' 目标列 '*********************************************************************** 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,能够采用某些完善的导入/导出机制,并使您能够在转换的任何一步中使用脚本。重要的是,要注意脚本可能不是操作数据的最佳方式 — 尤其是您的数据集很大的话。如果您有大量数据需要转换,而且性能也很重要,则您可能需要考虑使用 Visual Basic 或 C++ 来创建 COM 组件,然后从 DTS 内部调用该组件。也就是说,如果性能并不重要,并且要在数据导入/导出时对它进行转换,则脚本为您提供了实现这一点的灵活机制,并使您能够将所有代码存储到“SQL Server”数据库中,使部署变得相当简单。
关于 XML 目前,XML 看起来像是在应用程序之间共享数据的最佳工具,所以“SQL Server”的所有管理肯定都得到了 XML 的好处。编写提取数据库中所有数据的脚本,以及编写用编程的方法创建 XML 文档的脚本,都是可能的。但是,如果您只要查询“SQL Server”的话,最好使它在 XML 中返回数据,然后用脚本操作该 XML。“SQL Server”组最近发行了“SQL Server XML”技术的非正式版本,完全做到了这一点。
新的 XML 技术使用起来非常简单。实际上是对服务器发出 HTTP 请求,将查询传递给服务器,而服务器返回 XML。为了举例说明,我创建了简单的 WSH 脚本,它向本地机器查询 North Wind 数据库的雇员表中的所有数据。为访问 XML,该脚本使用了“Internet Explorer 5.01”附带的 XML 分析程序。此对象的美妙之处,在于它处理您所有的 HTTP 请求,并使您能够同步调用。因为您再也不用处理任何事件驱动的程序,所以,它对编写脚本很有帮助。
该脚本非常简单。它创建了 XML 分析程序的实例,使用分析程序打开 URL,然后将结果保存为 .xml 文件。只需五行的脚本,不错吧!