|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。 当你用ASP编写服务器端使用程序时,必需依托ActiveX组件来壮大Web使用程序的功效,比如:你必要毗连数据库,对数据库举行在线操纵等等,继上篇先容了ADRotator组件后,本篇将接着给人人先容别的一些经常使用的ASPActiveX组件的利用办法。 比来仍有很多伴侣来信问我,ASP是不是只能在MicrosoftIIS上运转,是不是能够在非NT平台上运作?原本这个成绩我已回覆过良多遍了:我只是传闻过有某种能够撑持的软件,却从没见过。但一些热忱的伴侣仍旧废寝忘食地来信扣问,因而在伴侣们的盛意之下,我访遍了ASP相干站点,竟惊异的发明,本来ASP切实其实是能够运转在别的非NT平台上的,因而在本篇的开首,我就给来信的伴侣们扼要先容一下怎样在非NT平台上利用ASP。
要在非NT平台上开辟并运转ASP使用程序我们能够依附于一套名为InstantASP的第三方软件,它的告白口号十分吸惹人“ASPAnytime,Anywhere”,我想一切ASP的开辟者们看到云云的口号一定镇静不已。这套由Halcyon软件公司开辟的软件使得你无需反复开辟原有ASP使用程序便可以将它运转在任何操纵平台上!如许不但节俭了大批的开辟工夫,并且使得ASP真正成了一种跨平台的Internet、Intranet或Extranet使用程序。InstantASP自己实际上是一套基于Java的使用程序,因而经由过程它你能够将基于WEB的ASP使用程序运转在任何平台上,下表列出了InstantASP今朝版本所撑持的操纵平台。
更使人受惊的是InstantASP不但供应了ASP的运作情况,并且它较今朝市场上的ASP使用还供应了更加壮大和有用的功效,它将ActiveX组件和EnterpriseJavaBeans大概CORBA-compliantobjects组合起来,从而使ASP有了更加普遍的使用。它一样供应了经由过程ADO接口会见毗连各类数据库,并天生静态页面的壮大功效。关于开辟者而言可使用本人善于的编程言语或工具如:VisualBasic,JScript,VBScript,C++,Java,HTML,Delphi,MSVisualInterDev等等来举行开辟。关于InstantASP详细安装和操纵我就不在这里睁开了,有乐趣的伴侣能够到它的站点上往看看halcyonsoft.com,你还能够收费下载一个试用版尝尝。
继上一篇中作者给人人先容了ADRotator组件的利用办法后,明天我们接着来看看别的的一些ASP经常使用组件。
1、DatabaseAccess组件
我们在WEB服务器上使用WEB使用程序举行的最多见和最有用的义务就是会见服务器真个数据库。而ASP内建的DatabaseAccess组件使得我们可以十拿九稳地经由过程ActiveXDataObjects(ADO)会见存储在服务器真个数据库或其他表格化数据布局中的信息。ADO是对以后微软所撑持的数据库举行操纵的最无效和最复杂间接的办法,它是一种功效壮大的数据会见编程形式,从而使得年夜部分数据源可编程的属性得以间接扩大到你的ActiveServer页面上。可使用ADO往编写松散简明的剧本以便毗连到OpenDatabaseConnectivity(ODBC)兼容的数据库和OLEDB兼容的数据源,如许ASP程序员就能够会见任何与ODBC兼容的数据库,包含MSSQLSERVER、Access、Oracle等等。假如您是一个对数据库毗连有必定懂得的剧本编写职员,那末您将发明ADO命令语句其实不庞大并且简单把握。一样地,假如您是一个履历丰厚的数据库编程职员,您将会准确熟悉ADO的先辈的与言语有关性和查询处置功效。熟习VB数据库编程的伴侣会发明ADO与RDO(RemoteDataObjects)有某品种似的中央。但听说ADO的会见的速率更快,内存必要更小。
上面给人人扼要先容一下使用ASP的DatabaseAccess组件经由过程ADO毗连并操纵WEB数据库的步骤
第一步:指定想要毗连的数据库,有DSN和DSN-less两种办法。
DSN(DataSourceName数据源称号):创建一个体系数据源称号,办法以下:
1、单击“入手下手”,选设置把持面板。
2、双击图标“32位ODBC”,将弹出一个对话框,选标签“SystemDSN”
3、单击“Add”增加一个DSN出口,选择如“MicrosoftAccessDrive”并确认。
4、在“DataSourceName”栏里输出你但愿指定的DSN,然后单击“Select”选择数据库寄存地位,你能够按“Browse”来拔取。
5、以上步骤完成后在ASP程序中指定DSN,以下:
<%connstr="DSN"%>
DSN-less:是另外一种经由过程在ASP文件里间接指定命据库文件地点地位,而无需创建DSN的办法。因为很多公司没有本人的WEB服务器,他们的网站常常是寄存在远真个假造服务器上,因而要创建和修正DSN的设置对照贫苦。而利用DSN-less办法间接指定远端数据库地点地位恰好办理了这一成绩,办法以下:
<%
connstr="DBQ="+server.mappath("database/source.mdb")+";DefaultDir=;
DRIVER={MicrosoftAccessDriver(*.mdb)};DriverId=25;FIL=MSAccess;
ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;
PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"
%>
在指定了想要毗连的数据库后,就能够经由过程以下办法毗连并翻开数据库:
<%
SetConn=Server.CreateObject("ADODB.Connection")Conn.Openconstr
%>
第二步:指定想要实行的SQL指令,可使用RecordSet。
当毗连了数据库后就能够对数据库举行操纵,好比查询、删除、更新等等,这些操纵都是经由过程SQL指令来完成的,以下例在数据库表datebase中查询一切姓名中有“A”的纪录:
<%
sql="select*fromdatebasewherenamelikeA%%"
Setrs=Conn.Execute(sql)
%>
只管Connection工具简化了毗连数据库和查询义务,但Connection工具仍有很多不敷。切实地说,检索和显现数据库信息的Connection工具不克不及用于创立剧本,您必需切实晓得要对数据库作出的变动,然后才干利用查询完成变动。关于检索数据、反省了局、变动数据库,ADO供应了Recordset工具。正如它的称号所表示的那样,Recordset工具有很多您可使用的特征,依据您的查询限定,检索而且显现一组数据库行,即纪录。Recordset工具坚持查询前往的纪录的地位,同意您一次一项慢慢扫描了局。依据Recordset工具的指针范例属性设置,您能够转动和更新纪录。数据库指针可让您在一组纪录中定位到特定的项。指针还用于检索和反省纪录,然后在这些纪录的基本上实行操纵。Recordset工具有一些属性,可用于准确地把持指针的举动,进步您反省和更新了局的才能。
Recordset的利用办法以下:
Setrs=Server.CreateObject("ADODB.Recordset")
rs.OpenSQL指令,Conn,1,1读取
或
rs.OpenSQL指令,Conn,1,3新增、修正、或删除
第三步:利用RecordSet属性和办法,并显现实行的了局。
经由过程以上指令,我们创立了一个包括数据的游标(RecordSet)“rs”,现实下游标是存储在举动内存中的相似纪录和字段的数组的器材,当经由过程RecordSet组件创立一个游标时,它从数据供应者的失掉一个数据集,并用它来充分游标,我们能够设想ADO发生的RecordSet是一个象电子表格的纪录,它有一行行的纪录,在任什么时候候都有一行是它确当前行,而RecordSet的字段是用RecordSet的Field汇合暗示的。上面列出了所创立的RecordSet工具(游标)的一些属性和办法:
rs.Fields.Count:RecordSet工具的字段总数。
rs(i).Name:第i个字段的称号,i由0算起到rs.Fields.Count-1。
rs(i):读取第i个字段的数据,i由0算起到rs.Fields.Count-1。
rs("字段称号"):读取指定字段的数据。
rs.RecordCount:游标中的数据纪录总数。
rs.EOF:是不是已指到最初一笔记录。
rs.MoveNext:将目标移到下一条记录。
rs.MovePrev:将目标移到上一条记录。
rs.MoveFirst:将目标移到第一条记录。
rs.MoveLast:将目标移到最初一条记录。
rs.Close:封闭RecordSet工具
有关ADO的其他先容,作者将在从此给人人具体解说。
2、ContentLinking组件
假如你的网站有一系列互相联系关系的页面的话,ContentLinking组件将十分合适你的需求,它不但可使你在这些页面中创建一个目次表,并且还能够在它们两头创建静态毗连,并主动天生和更新目次表及先前和后续的Web页的导航链接。这关于列出联机报刊、电子读物网站和论坛邮件是非常幻想的选择。
ContentLinking组件创立办理URL列表的Nextlink工具,要利用ContentLinking组件,必需必要先创立ContentLinkingList文件。ContentLinking组件恰是经由过程读取这个文件来取得处置我们但愿链接的一切页面的信息。现实上该文件是一个纯文本文件,其内容以下:
page1.htmone
page2.htmtwo
page3.htmthree
page4.htmfour
page5.htmfive
page6.htmsix
这个文本文件的每行有以下情势:
urldescriptioncomment
个中,URL是与页面相干的超链地点,description供应了能被超链利用的文本信息,comment则包括了不被ContentLinking组件注释的正文信息,它的感化好像程序中的正文。description和comment参数是可选的。
上面我们来看看怎样详细利用ContentLinking组件:
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>收集电子读物宝躲</title>
</head>
<body>
<p>收集电子读物导航
<%
SetLink=Server.CreateObject("MSWC.NextLink")
count=Link.GetListCount("nextlink.txt")
DimI
ForI=1tocount
%>
<ul><li><ahref="<%=Link.GetNthURL("nextlink.txt",I)%>">
<%=Link.GetNthDescription("nextlink.txt",)%></a>
<%Next%>
</body>
</html>
在以上代码中,我们先用GetListCount办法断定在文件nextlink.txt中有几条项目,然后使用轮回语句,并利用GetNthURL、GetNthDescription办法一一将存储在nextlink.txt文件中的内容读出并显现给客户端扫瞄器。
上面列出了ContentLinking组件一切可以使用的办法GetListCount(file)统计内容链接列表文件中链接的项目数。
GetNextURL(file)猎取内容链接列表文件中所列的下一页的URL。
GetPreviousDescription(file)猎取内容链接列表文件中所列的上一页的申明行。
GetListIndex(file)猎取内容链接列表文件中以后页的索引。
GetNthDescription(file,index)猎取内容链接列表文件中所列的第N页的申明。
GetPreviousUR(file)猎取内容链接列表文件中所列的上一页的URL。
GetNextDescription(file)猎取内容链接列表文件中所列的下一页的申明。
GetNthURL(file,index)猎取内容链接列表文件中所列的第N页的申明。
在我们创立了网站的总导航页面后,我们固然还但愿在每页中增加一个“上一页”、“下一页”的导航超链,上面我们就来看看怎样完成导航超链。
因为思索到你的网站大概包括了上千或更多的页面,以是我们不成能在每个页面中都编写完成导航超链的ASP代码。因而,我们必需使用前几篇中所学到的服务器端包涵SSI,如许就制止了大批的反复功课,请看下例:
<!--#includefile="nextprev.inc"-->
只需将这端代码放在每一个页面中便可。nextprev.inc文件的内容以下:
<%
SetLink=Server.CreateObject("MSWC.NextLink")
count=Link.GetListCount("nextlink.txt")
current=link.GetListIndex("nextlink.txt")
Ifcurrent>1Then
%>
<ahref="<%=Link.GetPreviousURL("nextlink.txt")%>">上一页</a>
<%
EndIf
Ifcurrent<countThen
%>
<ahref="<%=Link.GetNextURL("nextlink.txt")%>">下一页</a>
<%EndIf%>
明天的进修又到此停止了,在这里我要再次感激一切体贴我的文章的伴侣们,你们的来信给了我很年夜的鼓动,不外请人人不要再称我为“先生”,实在我也和你们一样是在不休的进修和探索中,有成绩我们能够一同切磋,我的文章中一定还存在良多不敷或毛病,也但愿人人发明后能实时向我提出。因为最近ASP已在国际的网站中普遍使用起来,以是应伴侣们的请求,在国际ASP妙手飞鸟的热忱匡助下,我决意写一些ASP使用实例作为如今这篇文章的姊妹篇,如许也就能够为人人供应一些真正有用的器材了,敬请存眷。
当然了,现在国内CRM厂商的产品与其说是CRM,但从至少从我的角度分析上来看,充其量只是一个大型的进销存而已了,了解尚浅,不够胆详评,这里只提技术问题 |
|