Asp你问我答

2009-5-30 16:49:39 来源:本站 评论:

  问:为什么我的记录集的RecordCount值总是返回-1?   
答:你应当使用这种模式来打开存取数据库的记录集:   
rec.open strSQL,conn,1,1   
其中的strSQL是操作数据库的SQL语句;conn是联接数据库的Connection 变量。 

        还有一种方法, 设置.cursorlocation=aduserclient 即.cursorlocation=3 .
        即上面的语名上变为:
        conn.cursorlocation=3
        rec.open strSQL,conn,1,3
        (此种方法参考网页:http://topic.csdn.net/t/20060227/14/4580576.html )

        更详细原理的一些文章.rs.CursorLocation=3 是什么意思

问:我在ASP脚本中写了很多的注释,这会不会影响服务器处理ASP文件的速度?   
答:经国外技术人员测试,带有过多注释的ASP文件整体性能仅仅会下降0.1%,也就是说基本上不会影响到服务器的性能下降的。   

问:我需不需要在每个ASP文件的开头使用<%@LANGUAGE=VBScript%>?   
答:如果你使用的脚本语言就是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标题进行了修改,解决的方法是在页面的开始写上<%Response.Buffer=True%>     

问:好像Redirect方法只可以重新定向到同一帧里面,可不可以定向到其他帧呢?   
答:可以,要加上这个:<BASE Target="FrameName">。然后,当你再使用  
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中使用ADO的AddNew方法和直接使用“Insert into...”语句有和不同?  那种方式更好?   
答:ADO的AddNew方法只是将“Insert into ”语句封装了起来,所以,当对大量数据进行操作的时候,直接使用SQL语句将会大大加快存取数据的速度,因为他减少了ADO的“翻译”时间。虽然SQL语 句不如AddNew等语句容易接受,但是学习一些常用的SQL语句在进行数据库编程中是非常重要的。   

问:为何我将这句话(“Let''s go now!”)插入到数据库中的时候会发生错误?   
答:因为大多数的数据库(Access,MS SQL Server)都把单引号当作分割符号使用的,所以不可以直接将单引号插入到数据库中,你必须在执行SQL语句之前,分别将每一个单引号替换成两个单引号:   
MyData=Replace(MyData," '' "," '''' ",1)然后,在保存到数据库中就行了。

(文章来自:http://www.lslnet.com/linux/dosc1/59/linux-393877.htm)

上一篇:已到尽头
正在读取…
我也评两句

   

版权说明:详细说明 网站所属:2006- © Syscy.com 三原色创意科技  京ICP备08101643