1、前言

asp大家应该都比较熟悉,就是一个动态服务器页面,有点类似于jsp。只是不同的是asp可以在IIS服务器上创建,并且如果配置了.net环境的话,那么就可以在asp里面<%%>写vbscript。vbscript是一种脚本语言,其实就是把Visual Basic做了一个轻量级化。要注意的是vbscript和Visual Basic之间的关系不等同于javascript和java之间的关系。vbscript是可以操作数据库,写业务层和持久层的,而且许多语法机制和Visual Basic是差不多的。而javascript就是一个纯前端的语言,主要负责一些前端的动态效果以及一些响应事件,和java完全没有关系。只是因为当时javascript的开发者为了推广这门语言,才给它名字中带了“java”,目的就是为了借助java的名气来让更多的人使用javascript。wsc是一种windows脚本文件类型“.wsc”,wsc全称是“Windows Script Component”,是一种在windows下跑的脚本文件,如果你要使用它的话,要先将其注册为windows脚本文件。asp,vbscript,IIS这些是微软开发的一套专门建立网站技术工具。asp和vbscript都是20多年前的语言了,IIS我查了一下貌似在windows98上面就已经有了。反正年纪应该都比我大。我目前所在公司的内网系统就是用了这套微软的技术。所以特地熟悉一下。

vbscript开发手册

链接:https://pan.baidu.com/s/1FPHefYjhQWWMx863p3lGLw 
提取码:yyds

2、编写网站代码

操作系统windows10

2.1、asp内嵌vbscript编写网页

Step1、搭建IIS服务器

可参考:使用IIS服务器搭建一个网站_金斗潼关的博客-CSDN博客

Step2、编写一个asp页面

"<%%>"里的是vbscript脚本语言

<%
Response.write "HelloWorld"
dim sName,sSex
sName="张三"
sSex="男"
iAge=20
%>
<table border="1"><tr><td>姓名:</td><td><%=sName%></td></tr><tr><td>性别:</td><td><%=sSex%></td></tr><tr><td>年龄:</td><td><%=iAge%></td></tr>
</table>

2.2、asp内嵌vbscript并调用wsc编写网页

wsc全称是“Windows Script Component”,“.wsc”是一种在windows下跑的脚本文件。可以在".wsc"文件里面写vbscript,在windows里面注册一下注册成windows组件,这样就可以用面向对象的方式,在asp里面通过CreateObject("XXX.wsc")创建该组件的对象,然后调用里面的那些vbscript函数。

Step1、创建编写一个.wsc

bzExample.wsc

<?xml version="1.0" encoding="gb2312" ?>
<component>
<registrationdescription="bzExample"progid="bzExample.WSC"version="1.00"
>
</registration>
<public><method name="ListPeople"><PARAMETER name="idPeople"/><PARAMETER name="sName"/><PARAMETER name="sSex"/><PARAMETER name="iAge"/></method>
</public><implements type="ASP" id="ASP"/><script language="VBScript">
<![CDATA[Option ExplicitPublic Function ListPeople(idPeople,sName,sSex,iAge)Response.write "PeopleId:"&idPeople&"<br/>"&"姓名:"&sName&"<br/>"&"性别:"&sSex&"<br/>"&"年龄:"&iAgeEnd Function]]>
</script>
</component>

关于.wsc文件的结构可以看下这篇:◎简单WSC组件的基本结构_jinghaianlange的博客-CSDN博客_wsc是什么结构

.wsc文件差不多是这么的一种结构

Step2、把.wsc文件注册成windows组件

编写好的.wsc文件要想可以在asp里面使用,可以CreateObject("XXX.wsc")创建该组件的对象就必须先将其注册。

方法一、右键.wsc文件,点击"Register"

如果注册的时候碰到了这个问题,那就用cmd以管理员的身份打开命令提示符窗口。用代码注册。

//cmd注册代码
regsvr32 scrobj.dll /i:D:\MyWsc\bzExample.wsc

当然如果用命令行的方式也不成功的话,有可能就是windows系统中少了一些组件,建议更新一下windows或者把错误代码去网上查一下。

.wsc注册成功后就可以在asp里面调用了。

HelloWorld.asp

<%
Response.write "HelloWorld"&"<br/>"
Set bzExample=CreateObject("bzExample.WSC")
Call bzExample.ListPeople("001","张三","男",20)
%>

当然如果某个.wsc文件不想用的话,可以将其Unregister。

注意直接鼠标右键Unregister可能不生效,所以建议用cmd命令直接移除注册的.wsc组件

scrobj.dll /u /i:D:\MyWsc\bzExample.wsc

这样的话,asp页面就无法调用.wsc了

3、使用vbscript连接mysql数据库

3.1、一个简单的asp内嵌vbscript访问mysql数据库Demo

首先要确保你电脑上有安装mysql驱动

如果不知道怎么装mysql驱动的话可以参考下这篇:MySQL的ODBC驱动下载、安装以及配置数据源_arlene032的博客-CSDN博客_mysql odbc数据源下载

HelloDB.asp

<%
Response.write "HelloDB"&"<br/>"Set cn = CreateObject("ADODB.Connection")
cn.CursorLocation = 3 'adUseClient
connStr="driver={MySQL ODBC 8.0 Unicode Driver};server=127.0.0.1;port=3306;uid=root;pwd=123456;database=mydb"
cn.Open connStr
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cn
Set BuildCommand = cmdsSQL = "SELECT * from t_student where sno=20160001;"
Set rs=cn.Execute(sSQL)
Response.write rs("sname")
%>

从数据库表中取出了“张三”

这种方式通常是用来做测试的,在实际开发中是不会用这种方式访问数据库的。

3.2、创建一个dbXXX.wsc作为持久层访问数据库

Step1、创建一个.wsc文件dbExample.wsc作为持久层用来访问数据库并将其注册到windows上

Step2、编写增删改查代码

dbExample.wsc

<?xml version="1.0" encoding="gb2312" ?>
<component>
<registrationdescription="dbExample"progid="dbExample.WSC"version="1.00"
>
</registration>
<public><method name="ListStudentByClass"><PARAMETER name="sClass"/></method><method name="AddStudent"><PARAMETER name="sNo"/><PARAMETER name="sName"/><PARAMETER name="iAge"/><PARAMETER name="sSex"/><PARAMETER name="sClass"/></method><method name="DeleteStudentBySno"><PARAMETER name="sNo"/></method><method name="UpdateStudentBySno"><PARAMETER name="sNo"/><PARAMETER name="sName"/><PARAMETER name="iAge"/><PARAMETER name="sSex"/><PARAMETER name="sClass"/></method></public><implements type="ASP" id="ASP"/><script language="VBScript">
<![CDATA[Option Explicitdim CONNSTR
CONNSTR="driver={MySQL ODBC 8.0 Unicode Driver};server=127.0.0.1;port=3306;uid=root;pwd=123456;database=mydb"'查找Public Function ListStudentByClass(sClass)dim cn,cmd,sSQL,BuildCommandSet cn = CreateObject("ADODB.Connection")cn.CursorLocation = 3 'adUseClientcn.Open CONNSTRSet cmd = CreateObject("ADODB.Command")cmd.ActiveConnection = cnSet BuildCommand = cmdsSQL = "SELECT * from t_student where sclass="&"'"&sClass&"'"'response.write sSQLSet ListStudentByClass=cn.Execute(sSQL)End Function'添加Public Function AddStudent(sNo,sName,iAge,sSex,sClass)dim cn,cmd,sSQL,BuildCommandSet cn = CreateObject("ADODB.Connection")cn.CursorLocation = 3 'adUseClientcn.Open CONNSTRSet cmd = CreateObject("ADODB.Command")cmd.ActiveConnection = cnSet BuildCommand = cmdsSQL = "INSERT INTO t_student(sno, sname, age, sex, sclass) VALUES ("&sNo&","&"'"&sName&"'"&","&iAge&","&"'"&sSex&"'"&","&"'"&sClass&"'"&")"'response.write sSQLSet AddStudent=cn.Execute(sSQL)End Function'删除Public Function DeleteStudentBySno(sNo)dim cn,cmd,sSQL,BuildCommandSet cn = CreateObject("ADODB.Connection")cn.CursorLocation = 3 'adUseClientcn.Open CONNSTRSet cmd = CreateObject("ADODB.Command")cmd.ActiveConnection = cnSet BuildCommand = cmdsSQL = "Delete from t_student where sno="&sNo'response.write sSQLSet DeleteStudentBySno=cn.Execute(sSQL)End Function'修改Public Function UpdateStudentBySno(sNo,sName,iAge,sSex,sClass)dim cn,cmd,sSQL,BuildCommandSet cn = CreateObject("ADODB.Connection")cn.CursorLocation = 3 'adUseClientcn.Open CONNSTRSet cmd = CreateObject("ADODB.Command")cmd.ActiveConnection = cnSet BuildCommand = cmdsSQL = "Update t_student set sname="&"'"&sName&"'"&","&"age="&iAge&","&"sex="&"'"&sSex&"'"&","&"sclass="&"'"&sClass&"'"&" where sno="&sNo'response.write sSQLSet UpdateStudentBySno=cn.Execute(sSQL)End Function
]]>
</script>
</component>

HelloDBwsc.asp

<%
Set dbExample=CreateObject("dbExample.wsc")
'查询
Set rs=dbExample.ListStudentByClass("2016222")do while not rs.eofResponse.write rs("sno")&";"&rs("sname")&"<br/>"
rs.movenext
loop'添加
'Call dbExample.AddStudent(20180002,"钱七",25,"男","2018223")'删除
'Call dbExample.DeleteStudentBySno(20180001)'修改
'Call dbExample.UpdateStudentBySno(20180002,"钱七",24,"男","2018223")
%>

我这里写的不太规范,通常asp是不好直接访问持久层(dbExample.wsc)的,要经过业务层,业务层里调用持久层的方法并做一些处理,然后asp再调用业务层的方法。

4、总结

因为最近得了新冠,刚刚好,还有些咳嗽,所以周末就待在家里,正好有时间就整理了一下。从我工作中接触下来,vbscript还是蛮方便的一门语言。作为一种轻量级解释型语言,vbscript不需要专门去下载安装特定的运行环境。因为.Net是微软开发的一个平台,我们所使用的windows操作系统里面就有集成.Net环境,比如.Net Framework。因此在windows环境下我们用记事本编写.Net代码然后保存为.vbs的文件,直接鼠标双击就可以运行了。因此早期的一些木马病毒都会用vbscript编写。不过我看网上很多人说微软要淘汰vbscript,据说IE11就要禁用vbscript,不知真假。我们公司因为是2000年才成立,所以公司的信息系统中很多网页业务都是用asp+vbscript写的,服务器就是IIS。在当时算是比较先进的技术了。当然嘛技术栈更新迭代很快的。目前虽然也有用微服务+react去重构一些内网的系统。但也是针对一些不太复杂的,或者一些门面网站。其他像销售、采购、库存、商务、财务等等这些因为代码经过近20年的不断迭代,业务层和持久层太过复杂了。所以还在用vbscript,一时半会儿只能维持现状,哪怕过几年也这样。不过因为是内网系统都是公司内部的人在用,用户数不多,所以其实IIS服务器也够用了。现在的主要重点难点在于数据处理和数仓建设上面。

vbscript其实还是蛮适合作为一门入门的语言的,我当年读高中的时候有一门信息科技的课,就教了Visual Basic。不过还要特地去下专门的编译软件才行。对于电脑小白来说还是蛮麻烦的,网上捆绑软件各种恶意程序太多了。如果当时教材能选用vbscript作为教学语言,就方便许多。

总而言之,vbscript+asp+IIS搭建一个小型网站还是蛮方便的,反正仁者见仁智者见智吧。

5、参考资料

◎简单WSC组件的基本结构_jinghaianlange的博客-CSDN博客_wsc是什么结构

C#调用WSC(Windows Script Component)_weixin_30598225的博客-CSDN博客

利用regsvr32注册和卸载wsc格式的com组件文件 - VBS求助&讨论 - 批处理之家 批处理_BAT脚本_PowerShell_VBS_CMD_DOS_Perl_Python - Powered by Discuz!

利用regsvr32注册和卸载wsc格式的com组件文件(页 1) - VBS求助&讨论 - 批处理之家 批处理_BAT脚本_PowerShell_VBS_CMD_DOS_Perl_Python - Powered by Discuz! Archiver

C#调用WSC(Windows Script Component)_weixin_30598225的博客-CSDN博客

MySQL的ODBC驱动下载、安装以及配置数据源_arlene032的博客-CSDN博客_mysql odbc数据源下载

VBScript连接各种数据库_脑袋凉凉的博客-CSDN博客

百度百科-验证

<VBScript>VBS(一)VBScript的简介、优缺点介绍、VBS的用法_Dyhamics的博客-CSDN博客_vbscript

VBScript 快速入门_哔哩哔哩_bilibili

VBScript是什么?有什么优缺点? - 走看看 (zoukankan.com)

使用IIS服务器搭建一个网站_金斗潼关的博客-CSDN博客

Regsvr32_百度百科 (baidu.com)

VBScript 用法 | 菜鸟教程 (runoob.com)

使用 VBA 脚本连接到 SQL 数据库 - Dynamics GP | Microsoft Learn

基于asp.net+vbscript+wsc编写网站相关推荐

  1. asp毕业设计——基于asp+access的商品销售网站设计与实现(毕业论文+程序源码)——商品销售网

    基于asp+access的商品销售网设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的商品销售网设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录: ...

  2. asp毕业设计——基于asp+access的博客网站设计与实现(毕业论文+程序源码)——博客网站

    基于asp+access的博客网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的博客网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告P ...

  3. asp毕业设计—— 基于asp+access的课程教学网站设计与实现(毕业论文+程序源码)——教学网站

    基于asp+access的课程教学网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的课程教学网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开 ...

  4. 基于ASP.NET大学生校园招聘网站的设计与开发

    开发工具(eclipse/idea/vscode等):vs2017 数据库(sqlite/mysql/sqlserver):sqlserver 功能模块(请用文字描述,至少200字):基于ASP.NE ...

  5. 基于ASP.NET的日语学习网站 毕业设计成品讲解(程序+论文)-王翔-专题视频课程...

    基于ASP.NET的日语学习网站 毕业设计成品讲解(程序+论文)-1467人已学习 课程介绍         本文是基于ASP.NET的日语学习网站的毕业设计成品讲解,包括整套网站程序.数据库和配套的 ...

  6. 基于ASP.NET+SQL Server的网站登录注册功能设计与实现【100010308】

    基于ASP.NET的网站登录注册功能设计与实现 摘要 近年来随着网络的飞速发展,越来越多的公共网站在提供功能之前要求用户注册和登录.这不仅有助于网站的管理和统计,也为用户提供了方便.本文以Visual ...

  7. 基于asp.net的音乐分享网站的设计与实现(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 音乐分享网站的设计与实现 摘  要 随着社会的发展时代的前进,IT行业的发展也是日新月异,对人类 ...

  8. 基于asp.net在线音乐播放网站设计

    获取项目源文件,学习交流联系Q:1415736481,可指导毕设,课设 摘  要 随着社会的发展时代的前进,IT行业的发展也是日新月异,对人类的生产和生活方式产生了很大影响.网络传播以其特有的快速.高 ...

  9. 基于asp.net180动态IT培训网站

    基于web的动态IT培训网站,完成在培训机构中用户登录注册.用户个人服务.课程信息发布.在线报名.在线信息咨询.教师管理.学员论坛七大模块.有效的提高现有培训机构存在的报名繁琐,报名信息滞后,咨询困难 ...

最新文章

  1. 快速掌握一个语言最常用的50%
  2. java线程能做什么_java中的多线程能做什么 ?基本作用能说下吗?
  3. boost::detail::invoke相关的测试程序
  4. 经典C语言程序100例之七九
  5. 小说不“好看”,读者就给你“好看”
  6. postgresql 安装使用
  7. html5 canvas 图像预览,html5-canvas 加载并显示图像
  8. 2012年回忆录及2013年目标设立
  9. Servlet--ServletInputStream类,ServletOutputStream类
  10. react ssr php,一文吃透 React SSR 服务端渲染和同构原理
  11. js和jquery给iframe src赋值的3种方法
  12. 小福利,excel采用下拉框控件和复选框控件制作图表
  13. Android - 使用PS修改PNG图片大小
  14. 创业公司股权架构搭建原则
  15. php数组函数array flip,PHP array_flip() 函数
  16. 作为学生借助 CODECHINA 这样学习 Git 知识
  17. table 表格的一些属性
  18. 如何获取抖音和快手直播间的直播流地址
  19. Mybatis Generator逆向工程的使用
  20. 手机app显示服务器异常,手机明明有网却老是显示网络连接异常,网络连接异常原因解析...

热门文章

  1. 新冠造成的经济崩溃对女性影响最大
  2. epson喷墨一体机打印照片偏色的调整
  3. 雷电2接口_USB、Type-C、雷电3都是怎么一回事?
  4. 大学英语六级历年真题Word,PDF,和音频 下载
  5. 聊一聊麦克风阵列技术:语音交互应该选用怎样的方案?(转载)
  6. 禁止腾讯检测HTML代码,微信域名检测API接口的分享以及腾讯屏蔽检测的原理
  7. 在职研究生(多重继承)Python
  8. 仓储控制系统(WCS)设计
  9. 吕国强计算机二级考试,考试科目代码表.doc
  10. Linux虚拟用户怎么建立,linux下ftp虚拟用户的创建方法