我的位置: 主页 > 咨询 > 课程咨询 >文章

ASP问答集(上)

来源:[] 发布日期:2016/2/17 14:48:35

导读: 问:为什么我的记录集的RecordCount值总是返回-1?  答:你应当使用这种模式来打开存取数据库...

问:为什么我的记录集的RecordCount值总是返回-1 
答:你应当使用这种模式来打开存取数据库的记录集: 
     rec.open strSQL,conn,1,1 
     其中的strSQL是操作数据库的SQL语句;conn是联接数据库的Connection 变量。 
问:我在ASP脚本中写了很多的注释,这会不会影响服务器处理ASP文件的速度? 
答:经国外技术人员测试,带有过多注释的ASP文件整体性能仅仅会下降0.1%,也就是说基本上不会影响到服务器的性能下降的。 
问:我需不需要在每个ASP文件的开头使用? 
答:如果你使用的脚本语言就是VBScript的话,请尽量不要使用这个语句,否则程序整体性能将会下降将近1.2%,但是如果你使用的并不是VBScript语言的话,请使用这个语句。 
问:我有没有必要在每一个ASP文件中使用“Option Explicit”? 
答:你最好这样,因为这样可以使得你的程序出错机会降到最少,并且会提升整体性能将近9.8% 
问:最近随同IIS5.0一起出现的ASP3.0有何新的功能? 
答:其实并没有什么新的变化,但是新增加了两个Server对象的方法:
Server.Transfer
以及Server.Excute,还有一个新的对象ASPError。具体的使用方法请参考微软的网www.microsoft.com 
问:为什么我使用Response.Redirect的时候出现错误? 
答:最常见的原因就是你在写入页面之后对HTTP标题进行了修改,解决的方法是在页面的开始写上   
问:好像Redirect方法只可以重新定向到同一帧里面,可不可以定向到其他帧呢? 
答:可以,要加上这个:。然后,当你再使用
Redirect
方法的时候,就会重新定向到名字叫做FrameName的帧里面了。 
问:为什么我使用“Window.open()”方法打开的新窗口的ASP页面中经常会出现Session丢失的现象? 
答:在微软的IE4.x会经常出现这种情况,但IE5.x中已经解决了这个错误。所以,为了兼容所有的浏览器,你可以使用诸如“test.asp?name=xxx”的方式来在窗口之间传递参数,这样的效果更好,只是要注意,如果传递的参数很重要,请不要使用明文方式进行传递,否则很容易导致安全问题。 
问:经常看到联接数据库有两种方式DSN以及DSN-LESS,两者是什么意思?有什么不同吗? 
答:DSN是英文“Data Source Name”的缩写,DSN方式也就是采用数据源的联接方式,这个数据源可以在“控制面板”里面的“ODBC Data Sources”中进行设置,然后就这样使用: 
Conn.Open "DSN=Test;UID=Admin;PWD=;" 
其中的“Test”就是你自己设定的数据源的名称。注意,要同时使用UID以及PWD,否则会出错。 
同样的,DSN-LESS就是非数据源方式的联接方法,使用方法是: 
Conn.Open "Driver={Microsoft Access Driver 
(*.mdb)};Dbq=\somepath\mydb.mdb;Uid=Admin;Pwd=;" 
在相同的硬件环境下,DSN-LESS方式要比DSN方式的性能要高,但是一旦ASP源代码因为某些安全问题而被别人的到,将会泄漏数据库的账号以及密码,所以这两种方式是个有利弊的。 
问:在ASP中使用ADOAddNew方法和直接使用“Insert into...”语句有和不同?那种方式更好? 
答:ADOAddNew方法只是将“Insert into ”语句封装了起来,所以,当对大量数据进行操作的时候,直接使用SQL语句将会大大加快存取数据的速度,因为他减少了ADO的“翻译”时间。虽然SQL语句不如AddNew等语句容易接受,但是学习一些常用的SQL语句在进行数据库编程中是非常重要的。 
问:为何我将这句话(“Let's go now!”)插入到数据库中的时候会发生错误? 
答:因为大多数的数据库(AccessMS SQL Server)都把单引号当作分割符号使用的,所以不可以直接将单引号插入到数据库中,你必须在执行SQL语句之前,分别将每一个单引号替换成两个单引号: 
MyData=Replace(MyData," ' "," '' ",1)
然后,在保存到数据库中就行了
1
、问题:ASP是一种编程语言吗?
  答:ASP不是编程语言,而是一种开发环境。ASP提供了一个在服务器端执行指令的环境,它利用了特殊的符号()来区分HTML与必须经过服务器翻译才能送往客户端的命令。它可以执行的指令包括HTML语言,Microsoft VBScriptMicrosoft Jscript等,因此可以制作出功能强大的Web应用程序。
  2、问题:在Web服务器上容纳多个Web站点,能使用PWS吗?
  答:在PWS上只能容纳一个Web站点。为了在相同的计算机上容纳多个Web站点,需要使用Windows NT ServerWindows 2000 Server/ProfessionalIIS
  3、问题:如何使用6个内置ASP对象?
  答:ASP提供了多个内嵌对象,无须建立就可以在指令中直接访问和使用它们,这六个对象主要有:请求(Request)对象、响应(Response)对象、工作阶段(Session)对象、应用程序(Application)对象、服务器(Server)对象、Cookies对象,这六个对象中的服务器(Server)对象可加载其他组件,这可以扩展ASP的功能。
  使用Server.CreateObject所建立的对象,它的生命周期在它建立时开始,在它所在的网页程序结束时结束。如果想要让该对象跨网页使用,则可以用Session对象来记录Server.CreateObject所建立的对象。
  4、问题:为什么在使用Response.Redirect的时候出现以下错误:“标题错误,已将HTTP标题写入用户端浏览器,对任何HTTP的标题所作的修改必须在写入页内容之前”?
  答:Response.Redirect可以将网页转移至另外的网页上,使用的语法结构是这样的:Response.Redirect网址,其中网址可以是相对地址或绝对地址,但在IIS4.0使用与在IIS5.0使用有所不同。
IIS4.0转移网页须在任何数据都未输出至客户端浏览器之前进行,否则会发生错误。这里所谓的数据包括HTML的卷标,例如:,等,而在IIS5.0中已有所改进,在IIS5.0的默认情况下缓冲区是开启的,这样的错误不再产生。
  在Response对象中有一Buffer属性,该属性可以设置网站在处理ASP之后是否马上将数据传送到客户端,但设置该属性也必须在传送任何数据给客户端之前。
  为保险起见,无论采用何种ASP运行平台,在页面的开始写上,将缓冲区设置为开启,这样的错误就不会发生了。
  5、问题:缓冲输出对于网页传输有没有影响?
  答:在比较大的Web页中,第一部分在浏览器中出现可能会有一些延迟,但是加载整个Web页的速度比不用缓冲要快。
  6、问题:在没有表单提交时查询字符串的值是否可以使用Request.QueryString集合?
  答:Request对象用于读取浏览器的数据,它除了可以读取表单字段的内容,还可以用来读取附带在网址后面的参数,无论请求字符串怎样添加到链接地址中对Request来说都没有什么不同。使用get方法提交一个表单,还是跟随一个附加查询串的链接查询字符串中所有的值,都可以使用Request.QueryString集合。
  7、问题:我在ASP脚本中写了很多的注释,这会不会影响服务器处理ASP文件的速度?
  答:在编写程序的过程中,作注释是良好的习惯。经国外技术人员测试,带有过多注释的ASP文件整体性能仅仅会下降0.1%,也就是说在实际应用中基本上不会感觉到服务器的性能下降的。
  8、问题:需不需要在每个ASP文件的开头使用?
  答:在每个ASP文件的开头使用代码是用来通知服务器现在使用VBScript来编写程序,但因为ASP的预设程序语言是VBScript,因此忽略这样代码也可以正常运行,但如果程序的脚本语言是JavaScrip,就需要在程序第一行指明所用的脚本语言。
9
、问题:我有没有必要在每一个ASP文件中使用“Option Explicit”?  答:在实际应用中,VBScript变量的概念已经模糊了,允许直接使用变量,而不用Dim声明变量,但这并不是一个好习惯,容易造成程序错误,因为可能重复定义一个变量。我们可以在程序中使用Option Explicit语句,这样在使用一个变量的时候,必须先声明它,如果使用了没有经过声明的变量,运行时,程序就会出错。

  • 热点搜词:杨校长

就读比大青鸟=掌握大专学历+高薪IT技术+,高薪就业,起薪6000
*姓名: *联系手机:
QQ:
相关文章

开班信息

    软件工程精英班
    本月月底 还剩11名额
    名企定制J03班
    本月月底 还剩21名额
    软件开发工程T07班
    本月月底 还剩14名额
    周末精英班
    本月中旬 热招中
    全日制特训T08班
    本月月底 还剩20名额

TEL:0752-2273777

>>