我的人生路  
          日歷
          <2005年7月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456
          統計
          • 隨筆 - 74
          • 文章 - 57
          • 評論 - 7
          • 引用 - 0

          導航

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          顏色

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
          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" 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和客戶端腳本結合倒可以顯示一個對話框,as follows:
          < % yourVar="測試對話框"% >
          < % s cript language='javas cript' >
          alert("< %=yourvar% >")
          < /s cript >

          11.有沒有辦法保護自己的源代碼,不給人看到
          答:可以去下載一個微軟的Windows s cript Encoder,它可以對asp的腳本和客戶端javas cript/vbs cript腳本進行加密。。。不過客戶端加密后,只有ie5才能執行,服務器端腳本加密后,只有服務器上安裝有s cript 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\SYSTEM32\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\regsvr32 AspEmail.dll 它會把dll的特定信息注冊入服務器中的注冊表中。然后這個組件就可以在服務器上使用了,但是這個方法有一個缺陷。當使用這種方法注冊完畢組件后,該組件必須要相應的設置NT的匿名帳號有權限執行這個dll。特別是一些組件需要讀取注冊表,所以,這個注冊組件的方法僅僅是使用在服務器上沒有MTS的情況下,要取消注冊這個dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /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" 。
          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=數據庫名稱
          %>

          寫到數據庫的內容,讀出來時沒有了空格和換行 ,該怎么解決?
          或與此類似問題

          問題的解答就是在寫入數據庫做Replace替換
          拿出我用的一個函數供大家參考

          <%
          '----------Html轉換為文本:編輯時拿來做轉換
          Function Html2Text(Str1)
          If isNULL(Str1) Then
          Html2Text=""
          Exit Function
          End If
          Str1=Replace(Str1,"&lt;","<")
          Str1=Replace(Str1,"&gt;",">")
          Str1=Replace(Str1,"<br>",VBcrlf)
          Str1=Replace(Str1,"&quot;",chr(34))
          Str1=Replace(Str1,"&nbsp;"," ")
          Str1=Replace(Str1,"&amp;","&")
          Html2Text=Str1
          End Function
          '-------------------文本轉換為Html:寫入數據庫時使用---------------
          Function Text2Html(Str1)
          If isNULL(Str1) Then
          Text2Html=""
          Exit Function
          End If
          Str1=Replace(Str1,"&","&amp;")
          Str1=Replace(Str1,"<","&lt;")
          Str1=Replace(Str1,">","&gt;")
          Str1=Replace(Str1,VBcrlf,"<br>")
          Str1=Replace(Str1,chr(34),"&quot;")
          Str1=Replace(Str1,chr(9),"&nbsp;&nbsp;&nbsp;")
          Str1=Replace(Str1," ","&nbsp;")
          Text2Html=Str1
          End Function

          %>

          二.關于小數點前0的顯示問題

          1.如果小數點后位數是固定的,那么可以使用函數FormatNumber()

          示例:

          <%
          MyNumber=0.323
          Response.Write FormatNumber(MyNumber,2,-1) '保留小數點后兩位
          %>

          2.如果小數點后位數不固定,那么可以如下

          示例:
          <%
          MyNumber=0.323
          If Left(Cstr(MyNumber),1)="." Then Response.Write "0"&MyNumber Else Response.Write MyNumber
          %>
          也可以寫一個函數
          <%
          Function FormatNum(Num)
          If Left(Cstr(Num),1)="." Then FormatNum="0"&Num Else FormatNum=Num
          End Function
          %>

          建立記錄集對象:

          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
          -------------------------------------------------------------
          ADO Recordset的屬性和方法的有效性

          ADO Recordset的屬性和方法在不同的光標類型下,有不同的表現,這里列出了其詳細情況列表
          ADO Recordset屬性的有效性列表

          屬性 ForwardOnly Dynamic Keyset Static

          AbsolutePage 無效 無效 讀/寫 讀/寫
          AbsolutePosition 無效 無效 讀/寫 讀/寫
          ActiveConnection 讀/寫 讀/寫 讀/寫 讀/寫
          BOF 只讀 只讀 只讀 只讀
          Bookmark 無效 無效 讀/寫 讀/寫
          CacheSize 讀/寫 讀/寫 讀/寫 讀/寫
          CursorLocation 讀/寫 讀/寫 讀/寫 讀/寫
          CursorType 讀/寫 讀/寫 讀/寫 讀/寫
          EditMode 只讀 只讀 只讀 只讀
          EOF 只讀 只讀 只讀 只讀
          Filter 讀/寫 讀/寫 讀/寫 讀/寫
          LockType 讀/寫 讀/寫 讀/寫 讀/寫
          MarshalOptions 讀/寫 讀/寫 讀/寫 讀/寫
          MaxRecords 讀/寫 讀/寫 讀/寫 讀/寫
          PageCount 無效 無效 只讀 只讀
          PageSize 讀/寫 讀/寫 讀/寫 讀/寫
          RecordCount 無效 無效 只讀 只讀
          Source 讀/寫 讀/寫 讀/寫 讀/寫
          State 只讀 只讀 只讀 只讀
          Status 只讀 只讀 只讀 只讀

           

          在使用Microsoft OLE DB Provider for ODBC.1.0時候,屬性AbsolutePosition
          和AbsolutePage是只寫的

          ADO Recordse方法的有效性列表

          方法 ForwardOnly Dynamic Keyset Static

          AddNew 是 是 是 是
          CancelBatch 是 是 是 是
          CancelUpdate 是 是 是 是
          Clone 否 否 是 是
          Close 是 是 是 是
          Delete 是 是 是 是
          GetRows 是 是 是 是
          Move 是 是 是 是
          MoveFirst 是 是 是 是
          MoveLast 否 是 是 是
          MoveNext 是 是 是 是
          MovePrevious 否 是 是 是
          NextRecordset * 是 是 是 是
          Open 是 是 是 是
          Requery 是 是 是 是
          Resync 否 否 是 是
          Supports 是 是 是 是
          Update 是 是 是 是
          UpdateBatch 是 是 是 是

          * Microsoft Access databases.不支持
          --------------------------------------------------------------
          其中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才能對數據進行增、
          刪、改的操作。

          ------------------------------------------------------

          RS.OPEN SQL,CONN,A,B

          A:

          ADOPENFORWARDONLY(=0)
          只讀,且當前數據記錄只能向下移動

          ADOPENKEYSET(=1)
          只讀,當前數據記錄可自由移動

          ADOPENDYNAMIC(=2)
          可讀寫,當前數據記錄可自由移動

          ADOPENSTATIC(=3)
          可讀寫,當前數據記錄可自由移動,可看到新增記錄

          B:

          ADLOCKREADONLY(=1)
          缺省鎖定類型,記錄集是只讀的,不能修改記錄

          ADLOCKPESSIMISTIC(=2)
          悲觀鎖定,當修改記錄時,數據提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。

          ADLOCKOPTIMISTIC(=3)
          樂觀鎖定 ,直到用Update方法提交更新記錄時才鎖定記錄。 ADLOCKBATCHOPTIMISTIC(=4)
          批量樂觀鎖定,允許修改多個記錄,只有調用UpdateBatch方法后才鎖定記錄。

          當不需要改動任何記錄時,應該使用只讀的記錄集,這樣提供者不用做任何檢測。
          對于一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時間,
          數據在這段時間被更新。這減少了資源的使用。



          歡迎大家訪問我的個人網站 萌萌的IT人
          posted on 2005-07-14 16:11 一天一點愛戀 閱讀(163) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © 一天一點愛戀 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 贵德县| 岚皋县| 云安县| 恩施市| 太湖县| 柯坪县| 邻水| 宁夏| 荃湾区| 团风县| 石泉县| 个旧市| 家居| 成都市| 武威市| 巴楚县| 获嘉县| 个旧市| 鄢陵县| 龙南县| 呼伦贝尔市| 临清市| 阳信县| 满洲里市| 东宁县| 长武县| 富阳市| 绍兴县| 健康| 新宁县| 衡水市| 麻阳| 云安县| 无为县| 体育| 临颍县| 平乐县| 华宁县| 青龙| 内黄县| 崇文区|