《asp基础实用教程(DOC格式)》第12章


cm。Parameters。Append cm。CreateParameter(”type”;200; ;255 )
"Define and execute insert
cm(”type”) = Request(”SeedType”) 
cm。Execute
%》
有关表格和使用ASP Request对象的详细信息,请参阅使用HTML表格。
管理数据库连接
设计一个能经得起考验的Web数据库应用程序(例如为几千个客户服务的联机购物应用程序)的最大挑战,在于如何合理地管理数据库连接。打开并且保持数据库连接,即使在没有信息传输时,也会严重耗费数据库服务器的资源并且可能会导致连接性问题。设计良好的Web数据库应用程序将回收数据库连接并能够补偿由于网络堵塞造成的延迟。
使连接超时
活动的突然增长可能使数据库服务器变得十分笨拙,大量增加建立数据库连接的时间。结果是,过长的连接延时将降低数据库的性能。
用Connection对象的ConnectionTimeout,您可以限制放弃连接尝试并发出错误消息之前应用程序等待的时间。例如,下面的脚本设置ConnectionTimeout属性,在取消连接尝试之前等待20秒:
Set cn = Server。CreateObject(”ADODB。Connection”)
cn。ConnectionTimeout = 20
cn。Open ”FILEDSN=MyDatabase。dsn”
默认的ConnectionTimeout属性是30秒。
注意在将ConnectionTimeout属性合并到数据库应用程序之前,一定要确保连接提供程序和数据源支持该属性。
共享连接
经常建立和中断数据库连接的Web数据库应用程序可能会降低数据库服务器的性能。ASP支持用ODBC 3。5的共享特性有效管理连接。连接共享维持打开的数据库连接并管理不同的用户共享该连接,以维持其性能和减少空闲的连接数。对每一个连接请求,连接池首先确定池中是否存在空闲的连接。如果存在,连接池返回连接而不是建立到数据库的新连接。
如果希望将ODBC驱动程序加入到连接共享中,则必须配置数据库驱动程序并在Windows NT注册表中设置驱动程序的CPTimeout属性。当ODBC断开连接时,连接被存入池中,而不是被断开。CPTimeout属性决定在连接池中的连接保留的时间长度。如果在池中连接保留的时间比 CPTimeout设置的时间长,则连接将被关闭并且从池中删除。CPTimeout的默认值是60秒。
您可以通过创建如下设置的注册表键来有选择地设置CPTimeout的属性,从而启用特定ODBC数据库驱动程序的连接池:
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST。INI driver…nameCPTimeout = timeout 
(REG_SZ; units are in seconds)
例如,下面的键将SQL Server驱动程序的连接池的超时设置定为180秒(3 分钟)。
HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST。INI SQL ServerCPTimeout = 180
注意默认情况下,通过将CPTimeout设置为60秒,Web服务器将激活SQL Server的连接池。
使用跨页连接
尽管您可以通过存储ASP的Application对象的连接重复使用跨页连接,但是,始终使连接保持打开是不必要的,也没有充分利用连接池的优点。如果有许多用户需要连接到同一个ASP数据库应用程序,一个好方法就是,将跨页连接字符串置于ASP的Application对象中,重复使用数据库连接。例如,可以在Global。asa文件的Application_OnStart事件过程中指定连接字符串,如下面的脚本所示:
Application。lock
Application(”ConnectionString”) = ”FILEDSN=MyDatabase。dsn”
Application。unlock
然后,在每一个访问数据库的ASP文件中写入:
要想创建连接对象的实例,请使用以下脚本:
cn。Open Application(”ConnectionString”)
对于打开的连接,可以在页尾写入以下脚本,关闭连接:
cn。Close
在单个用户需要重复使用跨页连接的情况下,使用Session对象连接比使用Application对象更好。 
关闭连接
要想更好地使用连接池,就应尽快地关闭数据库连接。默认情况下,当脚本执行完以后,连接将被终止。当不再需要连接时将其关闭,就可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。
可以使用Connection对象的Close方法终止Connection对象和数据库之间的连接。下面的脚本打开连接,然后将其关闭:
十一、调试ASP脚本
无论您的计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使您的ASP服务器端的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的ASP程序是非常重要的。
Microsoft脚本调试工具
Microsoft Script Debugger是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。Script Debugger与Windows Internet Explorer 3。0版本或更新的版本一起工作。通过它,您可以:
逐行运行服务器端脚本。 
在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令)。 
在运行服务器端脚本时跟踪过程。 
注意您可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。
详细信息,请参阅Microsoft脚本调试程序。(该功能不能用于Windows 95或更高的版本。)
启用调试
在开始调试服务器端脚本之前,您必须首先配置Web服务器,使其支持ASP调试。有关配置命令及信息,请参阅启用ASP 调试。
在启用Web服务器调试之后,就可以使用下面的任一方法调试脚本:
手工打开Microsoft脚本调试器,调试ASP服务器端脚本。 
使用Internet Explorer请求。ASP文件。如果该文件包含错误或人为添加的停止执行语句,那么Microsoft脚本调试程序将自动启动,显示该脚本,并且指出错误来源。 
脚本错误
调试服务器端脚本时,您可能会碰到各种类型的错误。其中的某些错误使脚本无法正确执行、程序停止执行或返回错误结果。
语法错误
语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。
运行时错误
运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。例如,下面的脚本中包含一个被零除(一种非法的数学运算)的函数,将产生运行时错误:
Result = Findanswer(15)
document。write (”The answer is ” &Result)
Function Findanswer(x) 
"This statement generates a run…time error。
Findanswer = x/0 
End Function
必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。
逻辑错误
逻辑错误通常可能是潜在和难以检测的。如果有因键入错误或程序逻辑流程错误引起的逻辑错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值列表排序,如果本应使用 〃〃 符号,那么将返回不正确的排序结果。
错误调试技术
可以使用多种不同的调试技术来查找错误的根源并测试应用程序。
实时(Just…In…Time;JIT)调试
当一个运行时错误中断了ASP脚本的执行时,Microsoft脚本调试程序自动启动,显示。ASP文件,将语句指针指向导致错误的行,并产生错误消息。这种调试方式称为实时(JIT)调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。
断点调试
当一个错误发生并且很难找到错误的根源时,可使用?
小说推荐
返回首页返回目录