老尸 发表于 2015-1-16 22:23:55

ASP编程:第十五篇 经常使用的ASP ActiveX组件

源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码当你用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.htmonepage2.htmtwopage3.htmthreepage4.htmfourpage5.htmfivepage6.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")DimIForI=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><%EndIfIfcurrent<countThen%><ahref="<%=Link.GetNextURL("nextlink.txt")%>">下一页</a><%EndIf%>  明天的进修又到此停止了,在这里我要再次感激一切体贴我的文章的伴侣们,你们的来信给了我很年夜的鼓动,不外请人人不要再称我为“先生”,实在我也和你们一样是在不休的进修和探索中,有成绩我们能够一同切磋,我的文章中一定还存在良多不敷或毛病,也但愿人人发明后能实时向我提出。因为最近ASP已在国际的网站中普遍使用起来,以是应伴侣们的请求,在国际ASP妙手飞鸟的热忱匡助下,我决意写一些ASP使用实例作为如今这篇文章的姊妹篇,如许也就能够为人人供应一些真正有用的器材了,敬请存眷。http://www.ckuyun.com/
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!

兰色精灵 发表于 2015-1-17 17:49:17

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送工具的,例如Response.Write

莫相离 发表于 2015-1-21 05:38:23

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

深爱那片海 发表于 2015-1-30 08:53:37

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

若相依 发表于 2015-2-6 09:20:52

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

仓酷云 发表于 2015-2-15 21:59:40

不能只是将它停留在纸上谈兵的程度上。

第二个灵魂 发表于 2015-3-4 14:39:49

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

不帅 发表于 2015-3-11 20:07:34

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

因胸联盟 发表于 2015-3-19 11:15:23

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

透明 发表于 2015-3-27 22:08:35

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

飘飘悠悠 发表于 2015-3-27 22:08:35

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
页: [1]
查看完整版本: ASP编程:第十五篇 经常使用的ASP ActiveX组件