程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP編程實用20例

ASP編程實用20例

編輯:關於ASP編程

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,01011990) 
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((ppicrnd)+1) 
dpic=graphixrandompics&p&.gif 

  顯示 
 img src= %=dpic%  
5.如何回到先前的頁面 
  答: a href= %=request.serverVariables(Http_REFERER)%  preivous page a 
  或用圖片如:
 img src=arrowback.gif alt= %=request.serverVariables(HTTP_REFERER)%  
6.如何確定對方的IP地址 
  答: %=Request.serverVariables(REMOTE_ADDR)% 
7.如何鏈結到一副圖片上 
  答: % @Languages=vbs cript %  
 % response.expires=0 
strimagename=graphixerrorserroriamge.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 criptvbs 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選擇 WINNTSYSTEM32INETSRVASP.DLL EXTENSION 輸入 htm method exclusions 輸入PUT.DELETE 全部確定即可。但是值得注意的是這樣對htm也要由asp.dll處理,效率將降低。 
15.如何注冊組件 
  答:有兩種方法。
  第一種方法:手工注冊 DLL 這種方法IIs一直使用和其它的Web Server。它需要你在命令行方式下來執行,進入到包含有DLL的目錄,並輸入:regsvr32 component_name.dll 例如 ctempregsvr32 AspEmail.dll 它會把dll的特定信息注冊入服務器中的注冊表中。然後這個組件就可以在服務器上使用了,但是這個方法有一個缺陷。當使用這種方法注冊完畢組件後,該組件必須要相應的設置NT的匿名帳號有權限執行這個dll。特別是一些組件需要讀取注冊表,所以,這個注冊組件的方法僅僅是使用在服務器上沒有MTS的情況下,要取消注冊這個dll,使用:regsvr32 u aspobject.dll example ctempregsvr32 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才能對數據進行增、 刪、改的操作

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved