ASP高级技巧精选集_应用技巧

一、GetRows的使用方法:
<%
Set conn=Server.CreateObject("Adodb.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("test.mdb")
Set Rs=Server.CreateObject("Adodb.Recordset")
Rs.Open "Select Top 2 * From 表名",conn,0,1

Dim Array_str
Array_str = rs.GetRows()

Response.Write "第一条记录:<br>"
Response.Write Array_str(0,0)&"<br>"
Response.Write Array_str(1,0)&"<br>"
Response.Write Array_str(2,0)&"<br>"
Response.Write Array_str(3,0)&"<br>"
Response.Write "第二条记录:<br>"
Response.Write Array_str(0,1)&"<br>"
Response.Write Array_str(1,1)&"<br>"
Response.Write Array_str(2,1)&"<br>"
Response.Write Array_str(3,1)&"<br>"
%>
熟悉GetRows你会发现操作数据库更简捷、速度更优化。优点可是很多的哦:)

 

二、声明变量是必要的吗?
以下情况需要声明变量:
1.你是一个好的程序员
2.写高质量的代码
加入以下代码可以强制声明变量:
<%Option Explicit%>

 

三、如何在客户端调用服务器端的函数?
    远程脚本调用技术(Remote Scripting)的特点是客户端脚本调用服务器脚本时无需刷新整个页面。
    一般情况下,Web页面需要与服务器交互时必须提交表单数据,刷新整个页面。而利用远程脚本调用技术,客户端脚本可以像调用本地函数一样调用远程脚本函数,特别是在复杂的表单验证和频繁的数据库操作中,这种优势更是得到了淋漓尽致的发挥。
    它的基本原理是其借助本身提供的一组接口函数,客户端程序可以通过一个代理过程(一个java applet)调用服务器端代码。JavaApplet(RSProxy.class)在后台工作,通常情况下用户代码并不需要直接操作它,它的配置也是自动完成的。远程脚本调用既可以是同步调用---调用命令发出后一直等待,直到服务器执行函数结束后返回;也可以是异步调用---函数调用后立即返回,调用必须同时给出回调函数。一个基本远程脚本调用技术必须包含如下文件:
    RS.htm:包含客户端支持代码
    RSProxy.class:这是一个Java Applet,实际完成客户/服务器交互过程
    RS.asp:服务器端支持代码
    使用远程脚本调用功能时,客户端和服务器端代码都必须符合一定的要求:在服务器端,首先必须启用远程脚本调用:用#include包含RS.asp,并调用RSDispath函数。在服务器端实现远程脚本支持的关键在于创建public_description对象。它在远程调用时脚本执行过程和普通ASP页面执行过程不同,它把全局脚本代码放入函数并显式调用。
    远程脚本调用技术要求服务器端的脚本必须用javascript编写。下面示例声明了一个Description类,该类包含一个公用的saml函数,用new关键字创建Description,即public_description对象。
    1.远程脚本调用对象服务器端的要求:
<%@language=vbscript%>
<%RSDispatch%>
<!--#include file="../rs.asp"-->
<Script language=javascript runat=server>
function Description(){
    this.saml=saml;
}
public_description=new Description();
function saml(str){
    return "hi!" + str + ":\n你的SessionID=" + Session.SessionID+"\n你的IP="+Request.ServerVariables("REMOTE_ADDR");
}
</Script>

2.远程调用功能对客户端的要求。首先,启用远程脚本调用技术功能的Web页面必须引用RS.htm;其次,必须调用RSEnableRemoteScripting函数。RSEnableRemoteScripting函数允许在参数中指定RSProxy.class文件所在的实际路径,果没有指定这个参数,默认为RSProxy.class在_scriptLibrary目录下:
<script language="javascript" src="../rs.htm"></script>
<script language="javascript">RSEnableRemoteScripting("..");</script>

3.调用远程脚本。完成上面的准备工作后,就可以用RSExecute方法在客户端代码中远程调用服务器端函数了。该方法接受的参数包括服务器ASP页面的URL、远程函数名字以及参数列表。其调用结果是一个调用对象(Call Object),包含该次调用的返回值以及状态信息,其主要属性包括:
id:该次调用的唯一标识(属性实际上是一个XML字符串);
return_value:实际返回值,如果存在的话;
data:服务器响应该次远程调用返回的原始数据;
status:标识本次调用的状态,-1表示失败,0表示完成。
message:有关本次调用的文本信息。如调用成功,为Completed,否则,包含错误说明。

 

四、从SQL数据库中调用图片显示:
<%@language=VBscript%>
<%Option Explicit%>
<%
Dim conn,rs,pic,picsize
Response.Buffer=True
'设置http表头信息,以便让浏览器解释作为gif图象返回的数据
Response.ContentType="image/gif"
set conn=server.createobject("adodb.connection")
conn.open "................."
set rs=server.createobject("adodb.recordset")
rs.open ".................",conn,0,1
picsize=rs("img").actualsize
pic=rs("img").getchunk(picsize)
response.binarywrite pic
response.end
%>

 

五、使用DLL一定比ASP代码速度快吗?
不一定,在IIS5.0里,ASP的速度已经得到了一定的提升,很多情况下ASP代码运行速度比使用DLL更快。如果DLL代码编写得不够理想,往往比ASP更慢。但DLL有比ASP更好的优势:比如功能、安全性、共享等。

 

六、如何在不同页面间共享数组内容?
a.asp文件内容:
<%
Dim arr(5)
Dim str,i
'给数据赋值
For i= 0 to 5
    arr(i)=i
Next
'传递数组
str=join(arr)
Response.Write "<a href=test.asp?tempstr="& str &">传送数组内容</a>"
%>

test.asp内容:
<%
dim tempstr
tempstr=split(Request("str"),",")
response.write tempstr(0) & "<br>" & tempstr(1)
%>

 

七、Eval的用法:
<%
m="50+60+80"
response.write eval(m)
%>

 

八、为什么在ADO访问数据库时使用事务会提示出错?
情况一:
set dbconn=server.createobject("adodb.connection")
set dbcmd=server.createobject("adodb.command")
dbconn.open "dsn=sqlforum;uid=sa;pwd=;"
dbconn.BeginTrans
Rs.Open "select * from message",dbconn
set dbcmd.activeconnection=dbconn
以上语句提示如下错误信息:
Unspecified error

情况二:
set dbconn=server.createobject("adodb.connection")
bconn.open "dsn=sqlforum;uid=sa;pwd=;"
dbconn.BeginTrans
以上语句提示如下信息:
Cannot start transaction while in firehose mode.

情况三:
set dbconn=server.createobject("adodb.connection")
set dbcmd=server.createobject("adodb.command")
dbconn.open "dsn=sqlforum;uid=sa;pwd=;"
rs.open "select * from message",dbconn
set dbcmd.activeconnection=dbconn
dbconn.BeginTrans
以上语句提示如下信息:
Cannot start transaction because more than one hdbc is in use.

这是怎么回事?如何解决?
    "firehose"指的是一个只读的游标模式。当我们打开Recordset时没有指定游标类型,则Recordset会以向前的游标打开,与SQLserver连用时,我们称之为"firehose"。此连接会一直打开,查询结果会尽快打开,而这种只读方式下是不能执行事务的。
    像上面几中情况出错的原因都是由于在"firehose"模式,command对象的activeconnection的游标模式是readonly的。
    改变"firehose"的方法有如下几种:
    1.设定connection的游标类型不是向前只读。
    2.在开始事务之前关闭使用同一连接的recordset对象。

 

九、用Insert into 还是 Addnew?
Addnew实质上是封装了Insert into,所以速度会比Insert into慢。

时间: 2025-01-30 21:50:52

ASP高级技巧精选集_应用技巧的相关文章

ASP.NET编程中经常用到的27个函数集_实用技巧

ASP.Net是建立在微软新一代.Net平台架构上,利用普通语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架.下面列举了常用的27个ASP.NET中的函数集: 1.DateTime 数字型 复制代码 代码如下: System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年

ASP.NET性能优化小结(ASP.NET&amp;amp;C#)_实用技巧

ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不

天枫常用的ASP函数封装如下_应用技巧

复制代码 代码如下: <% '------------------------------------- '天枫ASP class v1.0,集常用asp函数于一体 '天枫版权所有'QQ:76994859 EMAIL:Chenshaobo@gmail.com '所有功能函数名如下: ' StrLength(str) 取得字符串长度 ' CutStr(str,strlen) 字符串长度切割 ' CheckIsEmpty(tstr) 检测是否为空 ' isInteger(para) 整数检验 ' C

ASP经典分页类_应用技巧

ASP经典分页类  出处      '===================================================================== 'XDOWNPAGE   ASP版本 '版本   1.00 'Code by  zykj2000 'Email:   zykj_2000@163.net 'BBS:   http://bbs.513soft.net '本程序可以免费使用.修改,希望我的程序能为您的工作带来方便 '但请保留以上请息 ' '程序特点 '本程序

比较完整的 asp.net 学习流程_实用技巧

如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去! 第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习.NET Framework.ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越深,学习

彻底掌握ASP分页技术杂谈_应用技巧

近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此次我将针对分页技术进行详解,让大家来理解ASP分页,好了,一起来对分页程序来次透彻的了解吧! 首先,来看看演示 !看看功能:分页程序首先读取每页预置的记录条数,在此是5条,其它将在下页中显示,同时提示当前页数.总页数.总记录数,当显示的页数为第一页时,"首页"."上一页"链接失效,当显示的页数为最后页时,"下一页&qu

asp连接SQL和Access数据代码(asp里的随机函数)_应用技巧

asp连接sql 第一种写法: 复制代码 代码如下: MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=;database=infs;" Set conn = Server.Createobject("ADODB.Connection") conn.open MM_conn_STRING SET RS=SERVER.CreateObject("ADOBD.recordset&qu

浅谈ASP数据库下载漏洞_应用技巧

作为脚本漏洞的头号杀手锏--数据库下载漏洞,现在已经被越来越多的人所熟知.在这个信息化技术更新飞快的时代,漏洞产生后随之而来的就是各种应对 的招数,比如改数据库的后缀.修改数据库的名字等等.很多人以为只要这么做就可以解决问题了,但事实往往不如你我所愿,即使你这么做了也难逃被高手攻击的 命运.为此我们有必要去了解一些攻击的手法,来增强自己的安全技能. 1.强制下载后缀名为ASP.ASA的数据库文件 大多数的网管为了节省时间,网站上的文章系统.论坛等程序都是直接下载别人的源程序再经过部分修改后使用的

定期自动运行ASP程式的代码_应用技巧

前言  常有人希望在某個特定時間,可以自動某支 ASP 程式,進行某項作業,比如:發電子信.資料庫整理等.  方法  一.你可以去找 aspexe 元件來使用  二.你可以使用 WSH的方式來處理.以下文章是轉載至某個大陸網站(我已經忘了出處了-)  WSH 基本上和 ASP 的寫法是一樣的除了  不需加上 ASP 分隔符號  存檔的副檔名為 .vbs  由於不是使用 asp.dll , 因此沒有 ASP 的物件模式並不適用  無法使用伺服端包含, 因此一些 ADO 常數需自行宣告  '請勿用