CTION %>
6、使用 adovbs.inc 文件中定义的常量打开记录集 、 打开记录集时,可以定义记录集打开的游标类型和锁定类型。在 adovbs.inc 文件中定义 了一些常量来定义这些类型。adovbs.inc 文件保存在\inetpub\iissamples\IISamples 目录下面。 下面列举几个常用的游标类型和锁定类型。 游标类型:adOpenFowardOnly 游标只能向前;adOpenKeyset 游标可向前或者向后,如一用 户添加记录,新记录不会出现在记录集中;adOpenDynamic 游标动态随意;adOpenStatic 记 录集不对其他用户造成的记录修改有所反映。 锁定类型:adLockReadOney 不能修改记录集中的记录;adLockPessi
mistic 在编辑一条记录 时锁定它;adLockOptimstic 调用记录集 Update 方法时才锁定记录;adLockBatchOpeimstic 记录只能成批更新。
<!--#INCLUDE VIRTUAL="/ADO
VBS.INC" --> <% connectme="DSN=xur;uid=xur;pwd=xur" sqltemp="select * from publishers where name='xur'" set rstemp=Server.CreateObject("adodb.Recordset") rstemp.open
sqltemp, connectme, adOpenStatic,adLockOptimstic response.write rstemp.recordcount &; " records in<br>" &; sqltemp rstemp.close set rstemp=nothing %>
7、避免在使用 global.asa 文件中进行对象定义 、
由于 global.asa 文件中的内容可以为站点内所有文件引用,无疑,在 global.asa 文件中进 行对象定义可以省去很多重复
工作。比如在 global.asa 中的 application_onstart 函数中进行如 下定义:
<%SUB application_onstart set application("theCONN")=server.createobject("adodb.connection") END SUB %>;
这样就可以在站点任何代码中做类似引用:
<% mySQL="select * from publishers where state='xur' set rstemp=application("theconn").execute(mySQL) %>
同样地,可以在 session_onstart 函数中创建记录集对象
<%SUB session_onstart set session("rstemp")=server.createobject("adodb.recordset") END SUB %>
然后在站点也面中进行如下引用:
<% mySQL="select * from publishers where state='xur' set session("rstemp")=conntemp.execute(mySQL) %>
但这样做的同时也有很大的负面影响,由于 Application 和 session 变量都只有在关闭网站的 时候才
释放占用的资源,所以 session 参数会浪费大量不必要内存,而且此时 application 变 量成为服务器性能的瓶颈。 解决方法:建立定义对象 asp 页面,在需要进行调用这些对象的页面上,引入这张 asp 页面。 假设定义对象的 asp 页面名称为 define.asp 则只要在对应 asp 页面中加入以下语句就能引入 , 该页面。 <!--#INCLUDE VIRTUAL="/define.asp" --> 在进行页面引进时 最好在待引进的 asp 文件中不要包含<%@LANGUAGE="VBSCRIPT"% , >语句。因为在 asp 文件中,只能有一句由@来定义的脚本解析语言。 8、安全防护 、 asp 提供了很好的代码保护机制,所有的 asp 代码都在服务器端执行而只返回给客户端代 码执行结果。即便这样,在老版本的 IIS 中还可以在文件名后面家::$DATA 来查看 asp 的源 代码,这已经属于 Web Server 安全范畴不在本文讨论范围内。下面提出两点简单的安全注 意事项。 虽然在 asp 中建议引入文件以 inc 作为扩展名,在这里仍建议以 asp 作为引文件的扩展 名。当这些代码在安全机制不好的 Web Server 上运行时,只需在地址栏上输入引入文件的 地址(inc 为扩展名),就可以浏览该引入文件的内容,这是由于在 Web Server 上,如果没有 定义好解析某类型(比如 inc)的动态连接库时,该文件以源码方式显示。 不要把数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以 轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,为数据库建立 DSN(Date Sourc