ASP网页设计手把手教你利用VB来创立ASP组件
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧创立 1、甚么是组件组件是包括能够变动的数据情势的代码的工具,是可用代码的封装,这些代码能够用来实行使用程序的一些功效,如从数据库中检索某些信息等功效。如今常常听人提及COM,其使它的意义是组件工具模子(ComponentObjectModel),是由微软开辟的能够在Windows平台上实行的工具模子,COM界说了组件之间的交互才能。为COM编写的组件能够反复利用,其实不依附于编写所用的言语,好比说,一个组件能够用VB,VC++乃至是Java来编写,总之,只需恪守COM标准就能够了。
2、为何我们要用VB来创立ASP组件
后面我也说了,编写组件对利用的言语没有甚么限定,因而您就能够利用您所熟习的言语来编写组件。我们说VB是用来编写组件最简单的言语工具,它固然没有VC++和Java得优秀的功能,和高速天真性,可是由于它易学易用,以是也被宽大程序开辟职员是用来编写COM组件。上面我想先容一下怎样利用VB来创立ASP所用的COM组件。
3、成绩的提出
某个商务网站,常常要对他们多供应的CD信息举行增添或删除等操纵,因而它们像开辟出一个DNA组件(DistributedinterNetArchitecture散布式Internet布局),从数据库中对CD信息举行操纵。在此,我们想使用VB来完成创立这个组件的历程。
起首,我们必要晓得CD信息在数据库中,比方SQLSERVER7.0中的存储布局,以下:
CD_ID:为数据库中独一标识这张CD的标识符。
CD_Name:为CD名
CD_Author:为演唱(奏)者
CD_Price:为CD代价
CD_Information:为CD的复杂形貌
为了复杂起见,我们假定对CD信息数据的处置唯一增添和删除,有乐趣的伴侣想增添这个组件的功效请参看响应的书本,自行完成。
就像在Java中写JavaBean程序一样,在ASP的组件中,我们也要界说响应的办法来完成必定的功效,本例顶用到了以下办法:
OpenDB:翻开数据库,读进一切的CD信息。
CloseDB:封闭数据库毗连。
Add:向数据库中增加一条新的CD信息
Delete:从数据库中删除一条CD信息。
NextCD:从表中前往以后CD信息,并把指针移向下一条信息
IsEof:判别是不是另有更多的CD信息
4、利用VB创立组件
如今让我们入手下手用VisualBasic6.0(固然利用VB5.0也是能够的)创立一个新的ActiveXDLL项目(如图)
因为我们要操纵数据库,要利用到ADO,因而我们要援用MicrosoftActivexDataObject2.5Library.(以下图)
如今我们入手下手写组件中的办法
1、OpenDB办法
OpenDB办法的思绪是创建与MSSQLSERVER7.0的毗连,这可使用SQLOLEDBProvider来完成。创建毗连后就能够创立一个包括一切CD信息的纪录集。依据以上剖析我们写出以下代码。
OptionExplicit
PrivateConnAsADODB.Connection
PrivateRecordSetCDAsADODB.Recordset
’翻开毗连和了局集
PrivateSubOpenDB()
SetConn=NewADODB.Connection
SetRecordSetCD=NewADODB.Recordset
Conn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"
RecordSetCD.Open"SELECT*FROMCD",Conn
EndSub
2、CloseDB办法
因为毗连数据库是相称高贵的,以是在不必要利用数据库时,必定要记着封闭Recordset和Connection工具,CloseDB就是完成这一操纵。
PrivateSubCloseDB()
’封闭了局集RecordSetCD
IfNot(RecordSetCDIsNothing)Then
IfRecordSetCD.State=adStateOpenThen
RecordSetCD.Close
EndIf
SetRecordSetCD=Nothing
EndIf
’封闭毗连Conn
IfNot(ConnIsNothing)Then
Conn.Close
SetConn=Nothing
EndIf
EndSub
3、Add办法
Add办法的目标是向数据库中增加一条新的CD信息,因而它翻开的纪录集请求可以更新。这就不克不及像OpenDB中那样仅用Open翻开数据集。具体的代码见上面:
PrivateSubAdd(IdAsString,NameAsString,AuthorAsString,PriceAsCurrency,InformationAsString)
DimNewConnAsNewADODB.Connection
DimNewRecordsetCDAsNewADODB.Recordset
NewConn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"
NewRecordsetCD.Open"SELECT*FROMCD",NewConn,adOpenDynamic,adLockOptimistic
NewRecordsetCD.AddNew
NewRecordsetCD.Fields("CD_ID")=Id
NewRecordsetCD.Fields("CD_Name")=Name
NewRecordsetCD.Fields("CD_Author")=Author
NewRecordsetCD.Fields("CD_Price")=Price
NewRecordsetCD.Fields("CD_Information")=Information
NewRecordsetCD.Update
EndSub
注释:利用NewRecordsetCD.AddNew,
NewRecordsetCD.Fields(“Some_Key”)=Some_Value
NewRecordsetCD.Update来增加一条记录
4、Delete办法:
这个办法的目标是为了删除库中的某条CD名和相干的信息。它的完成办法是经由过程查询表中独一的CD_ID来定位CD信息,从而删除该行记录
PrivateSubDelete(IdAsString)
DimNewConnAsNewADODB.Connection
DimRecordsetDeleteAsNewADODB.Recordset
NewConn.Open"Provider=SQLOLEDB;DataSource=MUSE;InitialCatalog=Music;UserId=Wayne;Password=AbCdEfG"从表中删除一条信息
NewConn.Execute"DELETEFROMCDWHERECD_ID="&Id&"",adCmdText+adExecuteNoRecords
EndSub
5、ASP程序的编写
(1)ListCdInformation.asp程序
这个程序完成的是检索数据库,把检索的了局显现为一张表,利用了方才我们界说的组件。它翻开表,然后枚举每张CD的信息。
<%
DimCd_Info
SetCd_Info=Server.CreateObject("CD.CD_Handle")
%>
<HTML>
<HEAD>
<METAhttp-equiv="Content-Type"content="text/html;charset=gb2312">
<TITLE>CD信息列表</TITLE>
</HEAD>
<BODY>
<B><PALIGN="center">CD信息列表</P></B>
<TABLEBORDER="2"CELLSPACING="1">
<TR>
<TD><PALIGN="center">CD编号</TD>
<TD><PALIGN="center">CD名</TD>
<TD><PALIGN="center">作者</TD>
<TD><PALIGN="center">代价</TD>
<TD><PALIGN="center">CD简介</TD>
</TR>
<TR></TR>
<%DIMID
DimName
DimAuthor
DimPrice
DimInformation
初始化CD列表
Cd_Info.OpenDB
WhileCd_Info.IsEof=False
Cd_Info.NextCDID,Name,Author,Price,Information
%>
<TR>
<TD><%=ID%></TD>
<TD><%=Name%></TD>
<TD><%=Author%></TD>
<TD><%=Price%></TD>
<TD><%=Information%></TD>
<TD><FormName="Delete"METHOD=POSTACTION="DeleteCdInformation.asp?id=<%=ID%>">
<INPUTTYPE"SUBMIT"VALUES="删除此条"NAME="DELETE2">
</FORM>
</TD>
</TR>
<%
Wend
%>
</TABEL>
<FORMNAME="ADD"METHOD="POST"ACTION="AddCDInformation.asp">
<inputtype="submit"value="增加一条CD信息"Name="ADD2">
</FORM>
</body>
</html>
(2)DeleteCdInformation.asp程序
点击每条信息后的删除键就会从表中把该条信息删除,它也挪用了我们方才注册的组件。限于篇幅,我只把最主要的几行代码写出:
<%
DimCD_Info
SetCD_Info=Server.CreateObject(“CD.CD_Handle”)
CD_Info.DeleteRequest.QueryString(“ID”)
%>
(3)AddCDInformation.html
本程序是一个纯HTML文本,只呈现一个表单,让你填写新的CD信息,然后再发给InsertintoDB.asp来到场数据库。
<html>
<head>
<metahttp-equiv="Content-Language"content="zh-cn">
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>请您增加一条CD信息</title>
</head>
<body>
<formmethod="POST"action="InsertintoDB.asp">
<p> </p>
<p>请您增加一条CD信息</p>
<tableborder="1"cellspacing="1"width="34%"height="109">
<tr>
<tdwidth="24%"height="16">
<palign="center">CD号</td>
<tdwidth="76%"height="16"><inputtype="text"name="ID"size="24"></td>
</tr>
<tr>
<tdwidth="24%"height="16">
<palign="center">CD名</td>
<tdwidth="76%"height="16"><inputtype="text"name="Name"size="24"></td>
</tr>
<tr>
<tdwidth="24%"height="16">
<palign="center">作者</td>
<tdwidth="76%"height="16"><inputtype="text"name="Author"size="24"></td>
</tr>
<tr>
<tdwidth="24%"height="16">
<palign="center">代价</td>
<tdwidth="76%"height="16"><inputtype="text"name="Price"size="24"></td>
</tr>
<tr>
<tdwidth="24%"height="95">
<palign="center">简介</p>
<p> </td>
<tdwidth="76%"height="95"valign="top"><textarearows="4"name="Information"cols="22"></textarea></td>
</tr>
<tr>
<tdwidth="100%"height="15"colspan="2">
<palign="center"><inputtype="submit"value="提交"name="B1"><inputtype="reset"value="作废"name="B2"></td>
</tr>
</table>
</form>
<p></p>
</body>
</html>
(4)InsertIntoDB.asp程序,用到了组件中Add办法
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%DIMInsert_CD
setInsert_CD=Server.CreateObject("CD.CD_Handle")
Insert_CD.Addrequest.form("ID"),request.form("Name"),request.form("Author"),request.form("Price"),request.form("Information")
%>
<p>您已乐成的到场一条书目</p>
<formname="A"Method="POST"Action="ListCdInformation.asp">
<inputtype="SUBMIT"Value="前往"name="B1">
</form>
</body>
</html>
6、总结
下面我扼要的先容了组件的界说和利用VB来编写ASP中组件的办法,实在下面所举的例子只是很深刻的例子,信任人人写出的程序必定会比我的更好,我想假如无机会的话,我还会感谢怎样利用VC++和Java来编写COM组件,由于我以为,假如你没有把握COM组件,你也就没有把握ASP的精华。
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 掌握asp的特性而且一定要知道为什么。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
页:
[1]