初學asp要記的asp20條
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=arrowback.gif target='_blank'>伺服器運行的,如果可以在伺服器顯示一個對話框,那麼你只好等有人按了確定之後,你的程式才能繼續執行,而一般伺服器不會有人守著,所以微軟只好禁止這個函數,並胡亂告訴你(:) 呵呵) 沒有權限。但是ASP和客戶端腳本結合倒可以顯示一個對話框,as follows:
< % yourVar=測試對話框% >
< % script language='javascript' >
alert(< %=yourvar% >)
< /script >
11.有沒有辦法保護自己的原始碼,不給人看到
答:可以去下載一個微軟的Windows Script Encoder,它可以對asp的腳本和客戶端javascript/vbscript腳本進行加密。 。 。不過客戶端加密後,只有ie5才能執行,伺服器端腳本加密後,只有伺服器上安裝有script engine 5(裝一個ie5就有了)才能執行。
12.怎樣才能將query string 從一個asp 檔傳送到另一個?
答:前者檔案加入下句: Response.Redirect(second.asp? & Request.ServerVariables(QUERY_STRING))
13.global.asa檔案總是不起作用?
答:只有web目錄設定為web application, global.asa才有效,且一個web application的根目錄下global.asa才有效。 IIS4可以使用Internet Service Manager設定application setting 怎麼才能使得htm檔案如同asp檔案一樣可以執行腳本程式碼?
14.怎樣才能使得htm檔如同asp檔一樣可以執行腳本程式碼?
答:Internet Sevices Manager - > 選擇default web site - >右鼠鍵- >選單屬性-〉主目錄- > 應用程式設定(Application Setting)- > 點選按鈕設定- > app mapping - >點選按鈕Add - > executable browse選擇/WINNT YSTEM32/INETSRV/ASP.DLL EXTENSION 輸入htm method exclusions 輸入PUT.DELETE全部確定即可。但值得注意的是這樣對htm也要由asp.dll處理,效率將會降低。
15.如何註冊組件
答:有兩種方法。
第一種方法:手動註冊DLL 這種方法從IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令列方式下來執行,進入到包含有DLL的目錄,並輸入:regsvr32 component_name.dll 例如c:/temp egsvr32 AspEmail.dll 它會把dll的特定資訊註冊入伺服器中的登錄中。然後這個元件就可以在伺服器上使用了,但是這個方法有一個缺陷。當使用這種方法註冊完畢元件後,該元件必須要對應的設定NT的匿名帳號有權限執行這個dll。特別是一些元件需要讀取註冊表,所以,這個註冊元件的方法只是使用在伺服器上沒有MTS的情況下,要取消註冊這個dll,使用:regsvr32 /u aspobject.dll example c:/temp egsvr32 / u aneiodbc.dll
第二種方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但它提供了巨大的改進。 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資料庫連接:
17. ASP與SQL資料庫連線:
建立記錄集物件:
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(別名) 取得統的計值,其它函數運用同上。
(5) 資料表的建立與刪除:
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屬性adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
-------------------------------------------------- -----------
AbsolutePage 不支援不支援可讀寫可讀寫
AbsolutePosition 不支援不支援可讀寫可讀寫
ActiveConnection 可讀寫可讀寫可讀寫可讀寫
BOF 只讀只讀只讀只讀
Bookmark 不支援不支援可讀寫可讀寫
CacheSize 可讀寫可讀寫可讀寫可讀寫
CursorLocation 可讀寫可讀寫可讀寫可讀寫
CursorType 可讀寫可讀寫可讀寫可讀寫
EditMode 只讀只讀只讀只讀
EOF 只讀只讀只讀只讀
Filter 可讀寫可讀寫可讀寫可讀寫
LockType 可讀寫可讀寫可讀寫可讀寫
MarshalOptions 可讀寫可讀寫可讀寫可讀寫
MaxRecords 可讀寫可讀寫可讀寫可讀寫
PageCount 不支援不支援只讀只讀
PageSize 可讀寫可讀寫可讀寫可讀寫
RecordCount 不支援不支援只讀只讀
Source 可讀寫可讀寫可讀寫可讀寫
State 只讀唯讀唯讀唯讀
Status 只讀只讀只讀只讀
AddNew 支援支援支援
CancelBatch 支援支援支援支持
CancelUpdate 支援支援支援支持
Clone 不支援不支援
Close 支援支援支援支援
Delete 支援支援支援支援
GetRows 支援支援支援支援
Move 不支援支援支援支持
MoveFirst 支持支持支持支持
MoveLast 不支援支援支援支持
MoveNext 支援支援支援支持
MovePrevious 不支援支援支援
NextRecordset 支援支援支援支持
Open 支援支援支援支持
Requery 支持支持支持支持
Resync 不支持不支持支持支持
Supports 支援支援支援支持
Update 支援支援支援支援
UpdateBatch 支援支援支援支持
-------------------------------------------------- ------------
其中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才能對資料進行增、刪、改的操作。