萌萌妈妈 发表于 2015-1-16 23:18:03

ASP编程:ASP技能TOP 10(转)

因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。技能1、制止利用DSN毗连数据库
1054


  是不是仍然在利用ODBC体系或文件DSN毗连数据库?请用OLEDB供应者取代它,这是一种速率更快并且不必要利用DSN的数据库毗连手艺。利用OLEDB供应者,你不用再为了创立体系DSN乞求ISP(或数据库办理员/网站办理员),也不用为了网站文件地位的变更而修正设置。

  问:

  我看到过大批经由过程数据资本名字(DSN)毗连数据库的例子,不外我如今想欠亨过DSN毗连数据库。在ASP中能够完成这一点吗?可否举几个详细的例子申明?我但愿新的毗连办法不依附于体系DSN,但又能够在数据库毗连串中指定驱动程序、服务器名字、数据库、数据库账号和暗码。

  答:

  假如你利用的是SQLServer7,请利用上面的数据库毗连串:
  
strConnString="DSN=;DRIVER={SQLSERVER};"&_
"UID=myuid;PWD=mypwd;"&_
"DATABASE=MyDb;SERVER=MyServer;"




  个中最主要的参数在于“DRIVER=”部分。假如你但愿绕过ODBC,间接经由过程OLEDB会见SQLServer(一样平常来说这类办法速率更快),请利用上面这类毗连串:  
strConnString="Provider=SQLOLEDB.1;Password=mypassword;"&_
"PersistSecurityInfo=True;UserID=myuid;"&_
"InitialCatalog=mydbname;"&_
"DataSource=myserver;ConnectTimeout=15"




  假如你要利用数据库毗连串,但又不熟习OLEDB供应者的毗连串语法,请利用VisualBasic的数据情况计划器或ADO数据控件创立一个,然后把它拷贝出来用于ADO毗连工具就能够了。在当即窗口中,输出命令?dataenvironment1.connection1.ConnectionString能够失掉毗连串的代码。请注重MicrosoftAccess毗连串的语法有所分歧,拜见《SyntaxforDSN-LessConnectionforMSAccess》

  拜见:《ASP功能优化指南》中的数据库毗连部分。

2、纪录会合纪录总数的盘算
1062


  刚入手下手在ASP页面中利用纪录集的时分大概常常会碰到这个成绩。假如你想会见纪录会合的数据,起首必需包管纪录会合的确包括数据。请记着,假如纪录会合没无数据,体系将显现十分不友爱的运转时毛病信息。你可使用上面的代码往办理这类成绩。

  问:

  我已无数年的VB履历,但方才入手下手进修ASP和VBScript。如今我要翻开一个Access数据库,盘算个中的纪录总数并在Web页面中显现这些信息。数据库的名字叫sean.mdb,个中包括一个people表,表中有三个纪录。但是,当我运转剧本时它老是说有-1个纪录。

  是不是能够告知我上面的代码甚么中央堕落了?  
<%

SetobjConn=Server.CreateObject("ADODB.Connection")
SetobjRst=Server.CreateObject("ADODB.Recordset")

objConn.Open("DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=
"&Server.Mappath("seannewelldbsean.mdb"))

strSQL="SELECT*FROMpeople"

objRst.OpenstrSQL,objConn

Response.write("<P>"&strSQL&"</P>")
Response.write("<H2>Thereare"&objRst.RecordCount&
"Peopleinthedatabase</H2>")

IfobjRst.RecordCount>0Then
objRst.MoveFirst
DoWhileNotobjRst.EOF
Response.write("Name="&objRst.fields(0))
objRst.MoveNext
Loop
else
Response.write("ItsEMPTY!")
EndIf

objRst.Close
SetobjRst=Nothing
objConn.Close
SetobjConn=Nothing
%>




  答:

  在低版本的MDAC中RecordCount属性前往-1。请在你的服务器上把MDAC文件更新到最新的版本,最新的MDAC文件能够在www.microsoft.com/data找到。

  假如Web服务器由ISP办理而你又无权设置它,没法晋级MDAC文件,那末必需修正代码。

  本来利用上面的代码反省纪录会合是不是有纪录:  
IfobjRst.RecordCount>0Then...




  请改用上面的代码:  
IfobjRst.BOFandobjRst.EOFThen
纪录集为空
Else
DoWhilenotobjRst.EOF
处置纪录集
objRst.MoveNext
Loop
EndIf




  2000年06月30日更新,新西兰的DarylEgarr说:

  能够看出,读者发问中的代码并没有毛病。成绩在于“在低版本的MDAC中RecordCount属性前往-1”,这一判别自己并没有毛病,但是从发问内容来看做者不该该作出这类假定,由于原成绩中没有任何一行代码意味着利用了低版本的MDAC。

  作者思索成绩的偏向不合错误,成绩的要点在于并不是一切的游标范例都撑持一切的属性和办法(不论接纳哪一种数据库体系)。成绩中代码呈现毛病的真正缘故原由在于利用默许的CursorLocation时:  
Recordset.CursorLocation=adUseServer




  RecordCount属性只要在纪录集的CursorType为1大概3(即adOpenKeyset,adOpenStatic)时才是可用的。呈现毛病的代码没有指定CursorType,也就是利用了0范例的游标(即adOpenForwardOnly,这是速率最快的游标范例),此时对RecordCount的援用将一向前往0。

  办理成绩的办法很复杂,只需把本来代码中的:  
objRst.OpenstrSQL,objConn




  改成:  
objRst.OpenstrSQL,objConn,1




</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码

萌萌妈妈 发表于 2015-1-20 09:14:11

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

再见西城 发表于 2015-1-29 06:22:22

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

因胸联盟 发表于 2015-2-5 23:09:12

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

蒙在股里 发表于 2015-2-14 03:20:00

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

乐观 发表于 2015-3-4 04:22:28

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

透明 发表于 2015-3-11 16:34:49

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

金色的骷髅 发表于 2015-3-19 02:15:17

没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。

admin 发表于 2015-3-27 04:10:47

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
页: [1]
查看完整版本: ASP编程:ASP技能TOP 10(转)