友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
富士康小说网 返回本书目录 加入书签 我的书架 我的书签 TXT全本下载 『收藏到我的浏览器』

asp基础实用教程(DOC格式)-第5部分

快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!


,根据您的查询限制,检索并且显示一组数据库行,即记录。Recordset对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。
  根据Recordset对象的指针类型属性设置,您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录,然后在这些记录的基础上执行操作。Recordset对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。例如,您可以使用CursorType和CursorLocation属性设置指针的类型,将结果返回给客户端应用程序(结果通常保留在数据库服务器上)并显示其他用户对数据库的最后一次更改。有关配置Recordset对象指针的信息,请参阅Microsoft ActiveX Data Objects(ADO)。

  检索记录
  一个成功的数据库应用程序都使用Connection对象建立链接并使用Recordset对象处理返回的数据。通过〃协调〃两个对象的特定功能,您可以开发出几乎可以执行任何数据处理任务的数据库应用程序。例如,下面的服务器端脚本使用Recordset对象执行SQL SELECT命令。SELECT命令检索一组基于查询限制的信息。查询也包含SQL WHERE子句,用来缩小查询的范围。此例中,WHERE 子句将查询限制为所有的Customers数据库表中包含的姓Smith的记录。


  请检查上面的例子,您将注意到,脚本用不同的数值重复构建和发出一个SQL查询,而没有重新定义和重发送查询到数据库源。用mand对象编译查询也可避免SQL查询引起的合并字符串和表格变量问题。特别是,通过使用mand对象的Parameter集合可以避免与定义字符串、日期、时间变量的类型有关的问题。例如,包含”'”的 SQL查询值可能导致查询失败:
strSQL = ”INSERT INTO Customers (FirstName; LastName) VALUES ('Robert';'O'Hara')” 
  注意,姓O'Hara中包含一个”'”,它与在SQL VALUES关键字中用来表示数据的〃'”冲突。通过将查询数值作为mand对象参数绑定,可以避免此类问题。

  结合HTML表格和数据库访问
  包含HTML表格的Web页可使用户远程查询数据库并且检索特定的信息。用ADO您可以创建非常简单的脚本来收集用户表格信息、创建自定义的数据库查询以及将信息返回给用户。使用ASP Request对象,您可以检索输入到HTML表格的信息并将这些信息合并到SQL语句中。例如,下面的脚本模块将HTML表格提供的信息插入表格中。此脚本用Request对象的Form集合收集用户信息。

  有关表格和使用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)调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。
  断点调试
  当一个错误发生并且很难找到错误的根源时,可使用预设断点的调试方法。断点将脚本暂停在特定一行。可以在脚本中有疑问处设置一个或多个不同的断点,然后使用调试器去改正脚本中设置的变量或属性的值。当您纠正这些错误之后,可以清除断点以便您的脚本能不间断地运行。
  请用Microsoft脚本调试程序打开脚本,设置断点。然后用Web浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,并且语句指针会指在设置了断点的行上。
  VBScript Stop语句调试器
  通过在服务器端脚本中有问题的部分前面插入Stop语句,您也可以将断点添加到用VBScript编写的服务器端脚本中。例如,下面的ASP脚本包含一个Stop语句,用来在显示结果之前暂停执行:
返回目录 上一页 下一页 回到顶部 9 10
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!