佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > ASP高級(jí)技巧精選集

ASP高級(jí)技巧精選集

熱門(mén)標(biāo)簽:團(tuán)購(gòu)網(wǎng)站 Mysql連接數(shù)設(shè)置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 電子圍欄 阿里云 Linux服務(wù)器 銀行業(yè)務(wù) 服務(wù)器配置
一、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你會(huì)發(fā)現(xiàn)操作數(shù)據(jù)庫(kù)更簡(jiǎn)捷、速度更優(yōu)化。優(yōu)點(diǎn)可是很多的哦:)

 

二、聲明變量是必要的嗎?
以下情況需要聲明變量:
1.你是一個(gè)好的程序員
2.寫(xiě)高質(zhì)量的代碼
加入以下代碼可以強(qiáng)制聲明變量:
%Option Explicit%>

 

三、如何在客戶端調(diào)用服務(wù)器端的函數(shù)?
    遠(yuǎn)程腳本調(diào)用技術(shù)(Remote Scripting)的特點(diǎn)是客戶端腳本調(diào)用服務(wù)器腳本時(shí)無(wú)需刷新整個(gè)頁(yè)面。
    一般情況下,Web頁(yè)面需要與服務(wù)器交互時(shí)必須提交表單數(shù)據(jù),刷新整個(gè)頁(yè)面。而利用遠(yuǎn)程腳本調(diào)用技術(shù),客戶端腳本可以像調(diào)用本地函數(shù)一樣調(diào)用遠(yuǎn)程腳本函數(shù),特別是在復(fù)雜的表單驗(yàn)證和頻繁的數(shù)據(jù)庫(kù)操作中,這種優(yōu)勢(shì)更是得到了淋漓盡致的發(fā)揮。
    它的基本原理是其借助本身提供的一組接口函數(shù),客戶端程序可以通過(guò)一個(gè)代理過(guò)程(一個(gè)java applet)調(diào)用服務(wù)器端代碼。JavaApplet(RSProxy.class)在后臺(tái)工作,通常情況下用戶代碼并不需要直接操作它,它的配置也是自動(dòng)完成的。遠(yuǎn)程腳本調(diào)用既可以是同步調(diào)用---調(diào)用命令發(fā)出后一直等待,直到服務(wù)器執(zhí)行函數(shù)結(jié)束后返回;也可以是異步調(diào)用---函數(shù)調(diào)用后立即返回,調(diào)用必須同時(shí)給出回調(diào)函數(shù)。一個(gè)基本遠(yuǎn)程腳本調(diào)用技術(shù)必須包含如下文件:
    RS.htm:包含客戶端支持代碼
    RSProxy.class:這是一個(gè)Java Applet,實(shí)際完成客戶/服務(wù)器交互過(guò)程
    RS.asp:服務(wù)器端支持代碼
    使用遠(yuǎn)程腳本調(diào)用功能時(shí),客戶端和服務(wù)器端代碼都必須符合一定的要求:在服務(wù)器端,首先必須啟用遠(yuǎn)程腳本調(diào)用:用#include包含RS.asp,并調(diào)用RSDispath函數(shù)。在服務(wù)器端實(shí)現(xiàn)遠(yuǎn)程腳本支持的關(guān)鍵在于創(chuàng)建public_description對(duì)象。它在遠(yuǎn)程調(diào)用時(shí)腳本執(zhí)行過(guò)程和普通ASP頁(yè)面執(zhí)行過(guò)程不同,它把全局腳本代碼放入函數(shù)并顯式調(diào)用。
    遠(yuǎn)程腳本調(diào)用技術(shù)要求服務(wù)器端的腳本必須用javascript編寫(xiě)。下面示例聲明了一個(gè)Description類,該類包含一個(gè)公用的saml函數(shù),用new關(guān)鍵字創(chuàng)建Description,即public_description對(duì)象。
    1.遠(yuǎn)程腳本調(diào)用對(duì)象服務(wù)器端的要求:
%@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.遠(yuǎn)程調(diào)用功能對(duì)客戶端的要求。首先,啟用遠(yuǎn)程腳本調(diào)用技術(shù)功能的Web頁(yè)面必須引用RS.htm;其次,必須調(diào)用RSEnableRemoteScripting函數(shù)。RSEnableRemoteScripting函數(shù)允許在參數(shù)中指定RSProxy.class文件所在的實(shí)際路徑,果沒(méi)有指定這個(gè)參數(shù),默認(rèn)為RSProxy.class在_scriptLibrary目錄下:
script language="javascript" src="../rs.htm">/script>
script language="javascript">RSEnableRemoteScripting("..");/script>

3.調(diào)用遠(yuǎn)程腳本。完成上面的準(zhǔn)備工作后,就可以用RSExecute方法在客戶端代碼中遠(yuǎn)程調(diào)用服務(wù)器端函數(shù)了。該方法接受的參數(shù)包括服務(wù)器ASP頁(yè)面的URL、遠(yuǎn)程函數(shù)名字以及參數(shù)列表。其調(diào)用結(jié)果是一個(gè)調(diào)用對(duì)象(Call Object),包含該次調(diào)用的返回值以及狀態(tài)信息,其主要屬性包括:
id:該次調(diào)用的唯一標(biāo)識(shí)(屬性實(shí)際上是一個(gè)XML字符串);
return_value:實(shí)際返回值,如果存在的話;
data:服務(wù)器響應(yīng)該次遠(yuǎn)程調(diào)用返回的原始數(shù)據(jù);
status:標(biāo)識(shí)本次調(diào)用的狀態(tài),-1表示失敗,0表示完成。
message:有關(guān)本次調(diào)用的文本信息。如調(diào)用成功,為Completed,否則,包含錯(cuò)誤說(shuō)明。

 

四、從SQL數(shù)據(jù)庫(kù)中調(diào)用圖片顯示:
%@language=VBscript%>
%Option Explicit%>
%
Dim conn,rs,pic,picsize
Response.Buffer=True
'設(shè)置http表頭信息,以便讓瀏覽器解釋作為gif圖象返回的數(shù)據(jù)
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的速度已經(jīng)得到了一定的提升,很多情況下ASP代碼運(yùn)行速度比使用DLL更快。如果DLL代碼編寫(xiě)得不夠理想,往往比ASP更慢。但DLL有比ASP更好的優(yōu)勢(shì):比如功能、安全性、共享等。

 

六、如何在不同頁(yè)面間共享數(shù)組內(nèi)容?
a.asp文件內(nèi)容:
%
Dim arr(5)
Dim str,i
'給數(shù)據(jù)賦值
For i= 0 to 5
    arr(i)=i
Next
'傳遞數(shù)組
str=join(arr)
Response.Write "a href=test.asp?tempstr=" str ">傳送數(shù)組內(nèi)容/a>"
%>

test.asp內(nèi)容:
%
dim tempstr
tempstr=split(Request("str"),",")
response.write tempstr(0)  "br>"  tempstr(1)
%>

 

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

 

八、為什么在ADO訪問(wèn)數(shù)據(jù)庫(kù)時(shí)使用事務(wù)會(huì)提示出錯(cuò)?
情況一:
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
以上語(yǔ)句提示如下錯(cuò)誤信息:
Unspecified error

情況二:
set dbconn=server.createobject("adodb.connection")
bconn.open "dsn=sqlforum;uid=sa;pwd=;"
dbconn.BeginTrans
以上語(yǔ)句提示如下信息:
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
以上語(yǔ)句提示如下信息:
Cannot start transaction because more than one hdbc is in use.

這是怎么回事?如何解決?
    "firehose"指的是一個(gè)只讀的游標(biāo)模式。當(dāng)我們打開(kāi)Recordset時(shí)沒(méi)有指定游標(biāo)類型,則Recordset會(huì)以向前的游標(biāo)打開(kāi),與SQLserver連用時(shí),我們稱之為"firehose"。此連接會(huì)一直打開(kāi),查詢結(jié)果會(huì)盡快打開(kāi),而這種只讀方式下是不能執(zhí)行事務(wù)的。
    像上面幾中情況出錯(cuò)的原因都是由于在"firehose"模式,command對(duì)象的activeconnection的游標(biāo)模式是readonly的。
    改變"firehose"的方法有如下幾種:
    1.設(shè)定connection的游標(biāo)類型不是向前只讀。
    2.在開(kāi)始事務(wù)之前關(guān)閉使用同一連接的recordset對(duì)象。

 

九、用Insert into 還是 Addnew?
Addnew實(shí)質(zhì)上是封裝了Insert into,所以速度會(huì)比Insert into慢。

標(biāo)簽:棗莊 蚌埠 大理 廣元 衢州 衡水 江蘇 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP高級(jí)技巧精選集》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    碌曲县| 兴国县| 怀柔区| 加查县| 通州区| 齐齐哈尔市| 南木林县| 礼泉县| 汉源县| 甘孜县| 辉南县| 班玛县| 剑河县| 隆回县| 抚州市| 文安县| 玉溪市| 福清市| 平安县| 左云县| 六枝特区| 柳河县| 政和县| 嵩明县| 博湖县| 衢州市| 古田县| 通城县| 从江县| 青铜峡市| 静宁县| 白玉县| 万山特区| 拉孜县| 紫阳县| 民勤县| 高安市| 海伦市| 精河县| 霍林郭勒市| 靖远县|