用 WSH 想ASP 一样 查询数据库!(WSH 学习心得2)

导读:
  WSH是Windows脚本宿主文件。
  用VBscript和Jscript都可以编写 WSH 脚本。
  要注意尽管 IE浏览器和WSH使用同样的的语言
  引擎,但它们不支持同样的对象模型。例如WSH不支持用于用户输出的window.document对象。
  WSH环境不提供扩展的用户界面(向IE浏览器那样的),WSH 对象模型不暴露用户界面
  事件(例如在HTML脚本中的onlick事件),IE浏览器提供的事件处理机制在WSH环境中没有用处。
  但是,WSH也是支持事件处理的。
  下面是两个最简单的WSH脚本 hello.vbs 和 hello.js
  '------------
  'hello.vbs
  wscript.echo "hello,word "
  '------------
  //-----------
  //hello.js
  WScript.echo (" hello,word ");
  //特别注意用js编写时,大小写时敏感的。如:WScript 写成了 wscript 就会报错!
  //-----------
  WSH 可以使用ActiveX组件,如ADO、File Access 对象或CDO for NTS,但WSH
  不能使用任何内置的Ative Server Page 对象,如Appliation、Session或Request 对象等。
  下面的脚本 search.vbs 用 ADO 查询SQL Server:
  '-------
  'search.vbs
  Set conn = wscript.CreateObject("ADODB.Connection")
  conn.Open"driver={sql server};server=000.000.00.00;uid=you;pwd=your password;"&"database=yourdata;"
  Set RS = Conn.Execute( "SELECT * FROM yourtable order by id desc" )
  for i = 0 to RS.Fields.Count - 1
  wscript.echo RS( i ).name
  next
  while not RS.EOF
  for i = 0 to RS.Fields.Count - 1
  wscript.echo RS( i ).value
  next
  RS.MoveNext
  wend
  '-------
  除了使用 wscript.CreateObject 而不是使用 server.CreateObject 来创建
  Activex 对象实例、用wscript.echo而不是使用 response.write 来现示输出外
  ,这个脚本与ASP脚本完全一样。在WSH版本1(被称作 Windows Scripting Host)中有一个局限就是不能把其它文件包含在WSH脚本中,没有同ASP中 #include 等效的指令。这种局限的后果之一就是无法把ADO常量文件(adovbs.inc) 包含在WSH 脚本中。要使用 ADO 常量,必须把改文件的内容复制到 WSH 文件中或在脚本
  中使用常量的源值。两种办法都不是很好。
  好在 Microsoft 总能找到解决办法,在WSH版本2(被称作 Windows Script Host)中除了可以使用.vbs 和 .js
  之外。Microsoft还定义了一种新的文件格式,其扩展名是.wsf(即"Windows script file")。与.vbs 和 .js 一样,.wsf文件是文本文档,但是它包含 Extensible Markup Language (XML)代码。一个最小的.wsf 文件
  具有以下结构 如 hello.wsf:
  <job id="t1"><br>   <br>  wscript.echo "Hello,word" <br>   <br>  </job>
  上面的例子代码中只包括创建可执行.wsf 文件所需的最少的XML元素。基于兼容XML文档规格的原因
  ,推荐在.wsf文件中使用扩展的结构,如下 hello_1.wsf:
  <?XML version="1.0" encoding="GB2312"?>
  <job id="t1"><br>   <br>  <br>wscript.echo "Hello,word" <br>]]&gt;  wscript.echo "Hello,word" <br>  ]]&gt; <br>   <br>  </job>
  把元素的内容封装在在 结构中。
  .wsf 文件可以包含 .js 和 .vbs 文件。
  如 hello_2.wsf:
  <?XML version="1.0" encoding="GB2312"?>
  <job id="t1"><br>   <br>   <br>  <br>wscript.echo "世界,你好" <br>]]&gt;  wscript.echo "世界,你好" <br>  ]]&gt; <br>   <br>  </job>
  这样就可以解决包含 adovbs.inc 问题。将adovbs.inc 中的 "" 删除后重命名为adovbs.vbs
  ,再将search.vbs 重新组织成search.wsf 这样就可以包含adovbs.vbs了。
  如下:
  <?XML version="1.0" encoding="GB2312"?>
  <job id="t1"><br>   <br>   <br>  <br>Set conn = wscript.CreateObject("ADODB.Connection") <br>conn.Open"driver={sql server};server=000.000.00.00;uid=you;pwd=yourpassword;"&amp;"database=yourdata;" <br>Set RS = Conn.Execute( "SELECT * FROM title1 order by id desc" ) <br>for i = 0 to RS.Fields.Count - 1 <br>wscript.echo RS( i ).name <br>next <br>while not RS.EOF <br>for i = 0 to RS.Fields.Count - 1 <br>wscript.echo RS( i ).value <br>next <br>RS.MoveNext <br>wend <br>]]&gt;  Set conn = wscript.CreateObject("ADODB.Connection") <br>  conn.Open"driver={sql server};server=000.000.00.00;uid=you;pwd=yourpassword;"&amp;"database=yourdata;" <br>  Set RS = Conn.Execute( "SELECT * FROM title1 order by id desc" ) <br>  for i = 0 to RS.Fields.Count - 1 <br>  wscript.echo RS( i ).name <br>  next <br>  while not RS.EOF <br>  for i = 0 to RS.Fields.Count - 1 <br>  wscript.echo RS( i ).value <br>  next <br>  RS.MoveNext <br>  wend <br>  ]]&gt; <br>   <br>  </job>
  以上脚本在 windows me ,Windows Script Host Version 5.6 下测试通过。
  想了解更多WSH的信息去 微软网站 http://msdn.microsoft.com/scripting/

本文转自
http://study.qqcf.com/web/249/30749.htm

你可能感兴趣的:(数据结构,SQL Server,脚本,IE,asp)