欢迎光临
我们一直在努力

用 WSH 想ASP 一样 查询数据库

建站超值云服务器,限时71元/月

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">

<script language="vbscript">

wscript.echo "hello,word"

</script>

</job>

上面的例子代码中只包括创建可执行.wsf 文件所需的最少的xml元素。基于兼容xml文档规格的原因

,推荐在.wsf文件中使用扩展的结构,如下 hello_1.wsf:

<?xml version="1.0" encoding="gb2312"?>

<job id="t1">

<script language="vbscript">

<![cdata][

wscript.echo "hello,word"

]]>

</script>

</job>

把<script>元素的内容封装在在 <![cdata][ … ]]>结构中。

.wsf 文件可以包含 .js 和 .vbs 文件。

如 hello_2.wsf:

<?xml version="1.0" encoding="gb2312"?>

<job id="t1">

<script language="jscript" src="hello.js"/>

<script language="vbscript">

<![cdata][

wscript.echo "世界,你好"

]]>

</script>

</job>

这样就可以解决包含 adovbs.inc 问题。将adovbs.inc 中的 "<%" 和 "%>" 删除后重命名为adovbs.vbs

,再将search.vbs 重新组织成search.wsf 这样就可以包含adovbs.vbs了。

如下:

<?xml version="1.0" encoding="gb2312"?>

<job id="t1">

<script language="vbscript" src="adovbs.vbs"/>

<script language="vbscript">

<![cdata][

set conn = wscript.createobject("adodb.connection")

conn.open"driver={sql server};server=000.000.00.00;uid=you;pwd=yourpassword;"&"database=yourdata;"

set rs = conn.execute( "select * from title1 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

]]>

</script>

</job>

以上脚本在 windows me ,windows script host version 5.6 下测试通过。

想了解更多wsh的信息去 微软网站 http://msdn.microsoft.com/scripting/

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用 WSH 想ASP 一样 查询数据库
分享到: 更多 (0)

相关推荐

  • 暂无文章