ASP編程實用20例

來源:互聯網
上載者:User

1.如何用Asp判斷你的網站的虛擬實體路徑

答:使用Mappath方法

< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("\")% >
< /font >< /p >


2.我如何知道使用者所用的瀏覽器
  答:使用the Request object方法

strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
  Response.redirect("ForMSIEOnly.htm")
Else
  Response.redirect("ForAll.htm")
End If


3.如何計算每天的平均反覆訪問人數
  答:解決方案

< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >


  顯示結果

< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998



4.如何顯示隨機圖象

< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >


  顯示

< img src="< %=dpic% >" >



5.如何回到先前的頁面
  答:

< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >


  或用圖片如:

< img src="http://edu.cnzz.cn/NewsInfo/arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >



6.如何確定對方的IP地址
  答:

< %=Request.serverVariables("REMOTE_ADDR)% >



7.如何鏈結到一副圖片上
  答:

< % @Languages=vbs cript % >
< % response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >



8.強迫輸入密碼對話方塊
  答:把這句話放載頁面的開頭

< % response.status="401 not Authorized"
response.end
% >


9.如何傳遞變數從一頁到另一頁
  答:用 HIDDEN 類型來傳遞變數

< % form method="post" action="mynextpage.asp" >
< % for each item in request.form % >
< input namee="< %=item% >" type="HIDDEN"
value="< %=server.HTMLEncode(Request.form(item)) % >" >
< % next % >
< /form >



10.為何我在 asp 程式內使用 msgbox,程式出錯說沒有許可權
  答:由於 asp 是伺服器啟動並執行,如果可以在伺服器顯示一個對話方塊,那麼你只好等有人按了確定之後,你的程式才能繼續執行,而一般伺服器不會有人守著,所以微軟不得不禁止這個函數,並告訴你沒有許可權。但是ASP和用戶端指令碼結合倒可以顯示一個對話方塊,如下:

< % yourVar="測試對話方塊"% >
< % s cript language=''javas cript'' >
alert("< %=yourvar% >")
< /s cript >



11.有沒有辦法保護自己的原始碼,不給人看到
  答:可以去下載一個微軟的Windows s cript Encoder,它可以對asp的指令碼和用戶端javas cript/vbs cript指令碼進行加密。

12.怎樣才能將 query string 從一個 asp 檔案傳送到另一個
  答:前者檔案加入下句:

Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))



13.global.asa檔案總是不起作用
  答:只有web目錄設定為web application, global.asa才有效,並且一個web application的根目錄下 global.asa才有效。IIS可以使用Internet Service Manager設定application setting 怎樣才能使得htm檔案如同asp檔案一樣可以執行指令碼代碼?

14.怎樣才能使得htm檔案如同asp檔案一樣可以執行指令碼代碼
  答:Internet Sevices Manager - > 選擇default web site - >右鼠鍵- >菜單屬性-〉主目錄- > 應用程式設定(Application Setting)- > 點擊按鈕 "配置"- > app mapping - >點擊按鈕"Add" - > executable browse選擇 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 輸入 htm method exclusions 輸入PUT.DELETE 全部確定即可。但是值得注意的是這樣對htm也要由asp.dll處理,效率將降低。

15.如何註冊組件
  答:有兩種方法。

  第一種方法:手工註冊 DLL 這種方法IIs一直使用和其它的Web Server。它需要你在命令列方式下來執行,進入到包含有DLL的目錄,並輸入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它會把dll的特定資訊註冊入伺服器中的註冊表中。然後這個組件就可以在伺服器上使用了,但是這個方法有一個缺陷。當使用這種方法註冊完畢組件後,該組件必須要相應的設定NT的匿名帳號有許可權執行這個dll。特別是一些組件需要讀取註冊表,所以,這個註冊組件的方法僅僅是使用在伺服器上沒有MTS的情況下,要取消註冊這個dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

  第二種方法:使用MTS(Microsoft Transaction Server)MTS允許你指定只有有特權的使用者才能夠訪問組件,大大提高了網站伺服器上的安全性設定。在MTS上註冊組件的步驟如下:
   1) 開啟IIS管理主控台。
   2) 展開transaction server,按右鍵"pkgs installed"然後選擇"new package"。
   3) 單擊"create an empty package"。
   4) 給該包命名。
   5) 指定administrator帳號或則使用"interactive"(如果伺服器經常是使用administrator 登陸的話)。
   6) 現在使用按右鍵你剛建立的那個包下面展開後的"components"。選擇 "new then component"。
   7) 選擇 "install new component" [b]。
   8) 找到你的.dll檔案然後選擇next到完成。
   要刪除這個對象,只要選擇它的表徵圖,然後選擇delete。
   附註:特別要注意第二種方法,它是用來調試自己編寫組件的最好方法,而不必每次都需要重新啟動機器了。

16. ASP與Access資料庫連接:

<%@ language=VBs cript%>
<%
dim conn,mdbfile
mdbfile=server.mappath("資料庫名稱.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=資料庫密碼;dbq="&mdbfile
%>


17. ASP與SQL資料庫連接:

<%@ language=VBs cript%>
<%
dim conn
set conn=server.createobject("ADODB.connection")
con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL伺服器名稱或IP地址;UID=sa;PWD=資料庫密碼;DATABASE=資料庫名稱
%>


  建立記錄集對象:

set rs=server.createobject("adodb.recordset")
rs.open SQL語句,conn,3,2



18. SQL常用命令使用方法

  (1) 資料記錄篩選:

sql="select * from 資料表 where 欄位名=欄位值 order by 欄位名 [desc]"

sql="select * from 資料表 where 欄位名 like ''%欄位值%'' order by 欄位名 [desc]"

sql="select top 10 * from 資料表 where 欄位名 order by 欄位名 [desc]"

sql="select * from 資料表 where 欄位名 in (''值1'',''值2'',''值3'')"

sql="select * from 資料表 where 欄位名 between 值1 and 值2"



  (2) 更新資料記錄:

sql="update 資料表 set 欄位名=欄位值 where 條件運算式"

sql="update 資料表 set 欄位1=值1,欄位2=值2 …… 欄位n=值n where 條件運算式"



  (3) 刪除資料記錄:

sql="delete from 資料表 where 條件運算式"

sql="delete from 資料表" (將資料表所有記錄刪除)



  (4) 添加資料記錄:

sql="insert into 資料表 (欄位1,欄位2,欄位3 …) valuess (值1,值2,值3 …)"

sql="insert into 目標資料表 select * from 來源資料表" (把來源資料表的記錄添加到目標資料表)



  (5) 資料記錄統計函數:
  AVG(欄位名) 得出一個表格欄平均值
  COUNT(*|欄位名) 對資料行數的統計或對某一欄有值的資料行數統計
  MAX(欄位名) 取得一個表格欄最大的值
  MIN(欄位名) 取得一個表格欄最小的值
  SUM(欄位名) 把資料欄的值相加

  引用以上函數的方法:

sql="select sum(欄位名) as 別名 from 資料表 where 條件運算式"
set rs=conn.excute(sql)


  用 rs("別名") 擷取統的計值,其它函數運用同上。

  資料表的建立和刪除:

CREATE TABLE 資料表名稱(欄位1 類型1(長度),欄位2 類型2(長度) …… )


  例:

CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 資料表名稱

  (永久性刪除一個資料表)

19. 記錄集對象的方法

  rs.movenext 將記錄指標從當前的位置向下移一行

  rs.moveprevious 將記錄指標從當前的位置向上移一行

  rs.movefirst 將記錄指標移到資料表第一行

  rs.movelast 將記錄指標移到資料表最後一行

  rs.absoluteposition=N 將記錄指標移到資料表第N行

  rs.absolutepage=N 將記錄指標移到第N頁的第一行

  rs.pagesize=N 設定每頁為N條記錄 

  rs.pagecount 根據 pagesize 的設定返回總頁數

  rs.recordcount 返回記錄總數

  rs.bof 返回記錄指標是否超出資料表首端,true表示是,false為否

  rs.eof 返回記錄指標是否超出資料表末端,true表示是,false為否

  rs.delete 刪除目前記錄,但記錄指標不會向下移動

  rs.addnew 添加記錄到資料表末端

  rs.update 更新資料表記錄

20 Recordset對象方法

  Open方法

recordset.Open Source,ActiveConnection,CursorType,LockType,Options


  Source
  Recordset對象可以通過Source屬性來串連Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的資料表名稱或是一個Stored Procedure。假如省略這個參數,系統則採用Recordset對象的Source屬性。

  ActiveConnection
  Recordset對象可以通過ActiveConnection屬性來串連Connection對象。這裡的ActiveConnection可以是一個Connection對象或是一串包含資料庫連接資訊(ConnectionString)的字串參數。

  CursorType
  Recordset對象Open方法的CursorType參數表示將以什麼樣的遊標類型啟動資料,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:

常數  常數值 說明
adOpenForwardOnly 0 預設值,啟動一個只能向前移動的遊標(Forward Only)
adOpenKeyset 1 啟動一個Keyset類型的遊標
adOpenDynamic 2 啟動一個Dynamic類型的遊標
adOpenStatic 3 啟動一個Static類型的遊標

  以上幾個遊標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。 

   Recordset屬性
  其中NextRecordset方法並不適用於Microsoft Access資料庫。

   LockType
  Recordset對象Open方法的LockType參數表示要採用的Lock類型,如果忽略這個參數,那麼系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:
常數 常數值 說明
adLockReadOnly 1 預設值,Recordset對象以唯讀方式啟動,無法運行AddNew、Update及Delete等方法
adLockPrssimistic 2 當資料來源正在更新時,系統會暫時鎖住其他使用者的動作,以保持資料一致性
adLockOptimistic 3 當資料來源正在更新時,系統並不會鎖住其他使用者的動作,其他使用者可以對資料進行增、刪、改的操作
adLockBatchOptimistic 4 當資料來源正在更新時,其他使用者必須將CursorLocation屬性改為adUdeClientBatch才能對資料進行增、 刪、改的操作




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。