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慢。

(0)

相关推荐

  • 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 &quo

  • 每天与代码打交道,开发者的“中年危机”该如何应对?

    每天与代码打交道,你是否曾有这样的困惑与焦虑: 程序员:"天天写业务代码还加班,如何才能成为技术大牛?" 测试:"为什么每天都有执行不完的测试用例?" 运维:"扛机器接网线敲shell命令,这不是我想要的人生." 工程师的世界,不止代码,还应有对未来的洞察与从容.阿里首部技术经验精选集:<不止代码>,现已正式公开,可免费下载阅读.阿里多位P9.P10技术大牛现身说法,用十多年阅历和经验,陪你"打怪升级". 如何免费

  • asp.net网络数据库开发实例精解 源文件

    出版社:清华大学出版社本书特点:通过大量实例,将ASP.NET的技术点贯穿起来深入剖析网络数据库开发的技术点和难点贯穿了作者多年的开发经验,具有较高的参考价值专门设计了综合案例,让您领会项目开发的思路代码规范,层次清楚,注释丰富,易于理解配有多媒体演示光盘,加速学习.读者对象:ASP.NET网络数据库开发人员大中专院校相关专业的学生毕业设计的学生ASP.NET培训人员asp.net网络数据库开发实例精解 源文件下载后用虚拟光驱软件打开,即可,最全的文件了,整个光盘的内容都在里面了,jb51.ne

  • 安全维护 IIS下 ASP 站点的高级技巧

    一. 前言 (仅以此文感谢好友bigeagle.不是他,我可能不用这么担心win2000安全问题的.呵呵!) 人说,一朝被蛇咬,十年怕.....,就是这样.2000年初,当我终于摆脱winnt 4.0 server那可怕的补丁之旅,迈向win2000 server时.我终于可以比较放心我的服务器了.但随着SQL SERVER的补丁出现.我知道,与微软的补丁因缘又开始轮回了.但还好.win2000自动化的管理还是让我放心好多,而以前管理winnt后的失眠症状也逐渐消失了.偶尔还能见到我的"梦&qu

  • ASP FCKeditor在线编辑器使用方法

    本文使用的是最新的FCKeditor 2.3.1版本 官方网站下载: http://ckeditor.com/download[建议直接在官方网站下载最新版本] 下面就开始用了: 第一项工作就是对这个功能宏大的编辑器进行精简,当然是文件精简而非功能精简化.在这里我以asp版的FCKeditor为例进行,进入到FCKeditor 文件夹下,先把以"_"为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具.其实也就是只保留editor文件夹.fckconfig.js.fckedi

  • ASP下使用FCKeditor在线编辑器的方法

    先说一下我的测试环境:XPSP2,IIS5.1,FCKeditor2.0 在IIS上建立一个新的站点,我直接取名为FCKeditor 在DW里建立一个相对应的站点,测试服务器为本机,支持VBScript 下载FCKeditor2.0,这个东西是开源的,网上能下到的地方很多,自己找去-- 下载下来的应该是压缩包,解压到FCKeditor站点根目录,什么都不需要更改,直接就可以开始调用了.等你会了的时候,会发现简单得要死去! 在站点根目录下,新建一个index.asp页面,段内加如下代码(调用编辑器

  • iis中ASP运行环境配置图解 IIS的安装和基本设置

    如果为了方便与简单的测试可以用简易的asp运行环境,可以到http://www.jb51.net/softs/28133.html下载,一般的网站是没问题的,如果比较复杂的就需要用iis了. 这里以win2003 iis6安装配置为主如果您的电脑没有安装iis那么需要安装,iis6.0的安装文件可以到http://www.jb51.net/softs/2176.html下载. 好,我们开始我们asp征程的第一步.任何动态语言都需要服务器的支持.这里牵涉到两个概念,一是服务器,还有一个就是与之对应

  • asp.net 汉字转换拼音及首字母实现代码

    Default.aspx页面 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:

  • 解决使用良精企业建站7.0未注册问题

    前些日子改一个后台,是良精的系统,挺好的系统,就是良精太变态了,也难怪人家是要赚钱的,都公开了,那就白白开发了,更何况ASP加密技术又不是很多,除非封装,但封装给自己也带来不便,所以良精使用了很多让人想不到的办法,前面我也写过几篇,大家可以看看有没有需要的.这次用的是 7.0的版本,好像也不是最新的,看到了数据结构,其实良精也是改的是南方的,但南方,人家没有加密,而良精却花了心思去做加密,真想不懂. 遇到的问题就是传到网站上后台部分模块出现未注册,然后是让你联系他们.这次改的时候也主义了那个 s

  • ASP中有关双引号,单引号以及&号的解释

    很多ASP初学习的朋友都有可能在双引号,单引号以及&号上迷失了方向.最关键的是不理解三类符号的意思,当然也就不能很好地掌握它们的用法了.以下是我对三类符号的看法,技术不精,难免有疏忽之处,肯请大家多提意见. 1,双引号"" ASP中处在双引号中的可以是任意的字符.字符串,HTML代码.比如 <%response.write ("cnbruce here")%><hr><%response.write ("<b&g

随机推荐