WEB編程一些常用代碼

以下內容爲程序代碼:
1. οncοntextmenu="window.event.returnvalue=false"      將徹底屏蔽鼠標右鍵
    <table border οncοntextmenu=return(false)><td>no</table>   可用於Table

2.  <body onselectstart="return false">                 取消選取、防止複製

3.  οnpaste="return false"                                        不準粘貼

4.  οncοpy="return false;" oncut="return false;"                  防止複製

5.  <link rel="Shortcut Icon" href="favicon.ico"> IE地址欄前換成自己的圖標

6.  <link rel="Bookmark" href="favicon.ico">  可以在收藏夾中顯示出你的圖標

7.  <input style="ime-mode:disabled">                           關閉輸入法

8.  永遠都會帶着框架
<script language="javascript"><!--
  if (window == top)top.location.href = "frames.htm"; //frames.htm爲框架網頁
// --></script>

9.  防止被人frame
<SCRIPT LANGUAGE=javascript><!--
  if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

10. <noscript><iframe src=*.html></iframe></noscript>     網頁將不能被另存爲

11. <input type=button value=查看網頁源代碼
οnclick="window.location = 'view-source:'+ 'http://www.csdn.net/&#39;">

12. 怎樣通過asp的手段來檢查來訪者是否用了代理
<% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
response.write "<font color=#FF0000>您通過了代理服務器,"& _
"真實的IP爲"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if
%>

13. 取得控件的絕對位置

//javascript
<script language="javascript">
function getIE(e){
  var t=e.offsetTop;
  var l=e.offsetLeft;
  while(e=e.offsetParent){
    t+=e.offsetTop;
    l+=e.offsetLeft;
    }
  alert("top="+t+"/nleft="+l);
  }
</script>

//VBScript
<script language="VBScript"><!--
function getIE()
  dim t,l,a,b
  set a=document.all.img1
  t=document.all.img1.offsetTop
  l=document.all.img1.offsetLeft
  while a.tagName<>"BODY"
    set a = a.offsetParent
    t=t+a.offsetTop
    l=l+a.offsetLeft
  wend
  msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>

14. 光標是停在文本框文字的最後
<script language="javascript">
function cc()
{
  var e = event.srcElement;
  var r =e.createTextRange();
  r.moveStart('character',e.value.length);
  r.collapse(true);
  r.select();
}
</script>
<input type=text name=text1 value="123" οnfοcus="cc()">

15. 判斷上一頁的來源
asp:
request.servervariables("HTTP_REFERER")

javascript:
document.referrer

16. 最小化、最大化、關閉窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="Close"></OBJECT>

<input type=button value=最小化 οnclick=hh1.Click()>
<input type=button value=最大化 οnclick=hh2.Click()>
<input type=button value=關閉 οnclick=hh3.Click()>
本例適用於IE

17. 定義數據庫連接的一些常量
<%
Const adOpenForwardOnly     = 0 '遊標只向前瀏覽記錄,不支持分頁、Recordset、BookMark
Const adOpenKeyset          = 1 '鍵集遊標,其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會反映到記錄集中。支持分頁、Recordset、BookMark
Const adOpenDynamic         = 2 '動態遊標功能最強,但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
Const adOpenStatic          = 3 '靜態遊標,只是數據的一個快照,用戶對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支持向前或向後移動

Const adLockReadOnly        = 1 '鎖定類型,默認的,只讀,不能作任何修改
Const adLockPessimistic     = 2 '當編輯時立即鎖定記錄,最安全的方式
Const adLockOptimistic      = 3 '只有在調用Update方法時才鎖定記錄集,而在此前的其他操作仍可對當前記錄進行更改、插入和刪除等
Const adLockBatchOptimistic = 4 '當編輯時記錄不會被鎖定,而更改、插入和刪除是在批處理方式下完成的

Const adCmdText  = &H0001
Const adCmdTable = &H0002
%>

18. 網頁不會被緩存
HTM網頁
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">
ASP網頁
  Response.Expires = -1
  Response.ExpiresAbsolute = Now() - 1
  Response.cachecontrol = "no-cache"
PHP網頁
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");


19. 檢查一段字符串是否全由數字組成
<script language="javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

20. 獲得一個窗口的大小
document.body.clientWidth,document.body.clientHeight

21. 怎麼判斷是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有漢字");
else alert("全是字符");

22.TEXTAREA自適應文字行數的多少
<textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

23. 日期減去天數等於第二個日期
<script language=javascript>
function cc(dd,dadd)
{
//可以加上錯誤處理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>

24. 選擇了哪一個Radio
<HTML><script language="vbscript">
function checkme()
  for each ob in radio1
    if ob.checked then window.alert ob.value
  next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="style" checked>Style
<INPUT name="radio1" type="radio" value="barcode">Barcode
<INPUT type="button" value="check" οnclick="checkme()">
</BODY></HTML>

25.獲得本頁url的request.servervariables("")集合
Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
for each ob in Request.ServerVariables
Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
next
Response.Write "</TABLE>"

26.request.servervariables集合
本機ip<%=request.servervariables("remote_addr")%>
服務器名<%=Request.ServerVariables("SERVER_NAME")%>
服務器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
服務器端口<%=Request.ServerVariables("SERVER_PORT")%>
服務器時間<%=now%>
IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
腳本超時時間<%=Server.ScriptTimeout%>
本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服務器CPU數量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服務器解譯引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服務器操作系統<%=Request.ServerVariables("OS")%>

27.ENTER鍵可以讓光標移到下一個輸入框
<input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">

28. 檢測某個網站的鏈接速度:
把如下代碼加入<body>區域中:
<script language=javascript>
tim=1
setInterval("tim++",100)
b=1

var autourl=new Array()
autourl[1]="www.njcatv.net"
autourl[2]="javacool.3322.net"
autourl[3]="www.sina.com.cn"
autourl[4]="www.nuaa.edu.cn"
autourl[5]="www.cctv.com"

function butt(){
document.write("<form name=autof>")
for(var i=1;i<autourl.length;i++)
document.write("<input type=text name=txt"+i+" size=10 value=測試中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO οnclick=window.open(this.form.url"+i+".value)><br/>")
document.write("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="鏈接超時"}
else
{document.forms[0]["txt"+b].value="時間"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl[i]+"/"+Math.random()+" width=1 height=1 οnerrοr=auto('http://";;+autourl[i]+"')>")}
run()</script>

 29. 各種樣式的光標
auto          :標準光標
default       :標準箭頭
hand          :手形光標
wait          :等待光標
text          :I形光標
vertical-text :水平I形光標
no-drop       :不可拖動光標
not-allowed   :無效光標
help          :?幫助光標
all-scroll    :三角方向標
move          :移動標
crosshair     :十字標
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize

30.本地無緩存,每次自動刷新
response.expires=0
response.addHeader "pragma" , "no-cache"
response.addHeader "cache-control" , "private"

31.修改contentType並下載gif等格式
<%
function dl(f,n)
on error resume next

set s=CreateObject("Adodb.Stream")
S.Mode=3
S.Type=1
S.Open
s.LoadFromFile(server.mappath(f))
if err.number>0 then
  response.write err.number & ":" & err.description
else
  response.contentType="application/x-gzip"
  response.addheader "Content-Disposition:","attachment; filename=" & n
  response.binarywrite(s.Read(s.size))
end if
end function

call dl("012922501.gif","t1.gif")
%>

32. 檢查一段字符串是否全由數字組成
<script language="javascript"><!--
function checkNum(str){return !//D/.test(str)}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

33. 獲得一個窗口的大小
document.body.clientWidth,document.body.clientHeight
document.body.offsetWidth,document.body.offsetHeight
有時還需要知道window.screenTop,window.screenLeft

34. 怎麼判斷是否含有漢字
if (escape(str).indexOf("%u")!=-1) alert("含有漢字");
else alert("全是字符");

35.TEXTAREA自適應文字行數的多少
IE 5.5+ 可以用 overflow-y:visible
<textarea rows=1 name=s1 cols=27 style="overflow-y:visible">
</textarea>

36. 日期減去天數等於第二個日期
<script language=javascript>
function cc(dd,dadd)
{
//可以加上錯誤處理
var d = new Date(dd.replace("-","/"))
d.setDate(d.getDate()+dadd)
alert(d.getFullYear() + "年" + (d.getMonth() + 1) + "月" + d.getDate() + "日")
}
cc("2002-2-28",2)
</script>

37、純編碼實現Access數據庫的建立或壓縮

<%
'#######以下是一個類文件,下面的註解是調用類的方法################################################
'# 注意:如果系統不支持建立Scripting.FileSystemObject對象,那麼數據庫壓縮功能將無法使用
'# Access 數據庫類
'# CreateDbFile 建立一個Access 數據庫文件
'# CompactDatabase 壓縮一個Access 數據庫文件
'# 建立對象方法:
'# Set a = New DatabaseTools
'# by (蕭寒雪) s.f.
'#########################################################################################

Class DatabaseTools

Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath)
'建立數據庫文件
'If DbVer is 0 Then Create Access97 dbFile
'If DbVer is 1 Then Create Access2000 dbFile
On error resume Next
If Right(SavePath,1)<>"/" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "/"
If Left(dbFileName,1)="/" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
If DbExists(SavePath & dbFileName) Then
Response.Write ("對不起,該數據庫已經存在!")
CreateDBfile = False
Else
Dim Ca
Set Ca = Server.CreateObject("ADOX.Catalog")
If Err.number<>0 Then
Response.Write ("無法建立,請檢查錯誤信息
" & Err.number & "
" & Err.Description)
Err.Clear
Exit function
End If
If DbVer=0 Then
call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName)
Else
call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName)
End If
Set Ca = Nothing
CreateDBfile = True
End If
End function

Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)
'壓縮數據庫文件
'0 爲access 97
'1 爲access 2000
On Error resume next
If Right(SavePath,1)<>"/" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "/"
If Left(dbFileName,1)="/" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
If DbExists(SavePath & dbFileName) Then
Response.Write ("對不起,該數據庫已經存在!")
CompactDatabase = False
Else
Dim Cd
Set Cd =Server.CreateObject("JRO.JetEngine")
If Err.number<>0 Then
Response.Write ("無法壓縮,請檢查錯誤信息
" & Err.number & "
" & Err.Description)
Err.Clear
Exit function
End If
If DbVer=0 Then
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
Else
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
End If
'刪除舊的數據庫文件
call DeleteFile(SavePath & dbFileName)
'將壓縮後的數據庫文件還原
call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)
Set Cd = False
CompactDatabase = True
End If
end function

Public function DbExists(byVal dbPath)
'查找數據庫文件是否存在
On Error resume Next
Dim c
Set c = Server.CreateObject("ADODB.Connection")
c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
If Err.number<>0 Then
Err.Clear
DbExists = false
else
DbExists = True
End If
set c = nothing
End function

Public function AppPath()
'取當前真實路徑
AppPath = Server.MapPath("./")
End function

Public function AppName()
'取當前程序名稱
AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME")))
End Function

Public function DeleteFile(filespec)
'刪除一個文件
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Err.number<>0 Then
Response.Write("刪除文件發生錯誤!請查看錯誤信息
" & Err.number & "
" & Err.Description)
Err.Clear
DeleteFile = False
End If
call fso.DeleteFile(filespec)
Set fso = Nothing
DeleteFile = True
End function

Public function RenameFile(filespec1,filespec2)
'修改一個文件
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Err.number<>0 Then
Response.Write("修改文件名時發生錯誤!請查看錯誤信息
" & Err.number & "
" & Err.Description)
Err.Clear
RenameFile = False
End If
call fso.CopyFile(filespec1,filespec2,True)
call fso.DeleteFile(filespec1)
Set fso = Nothing
RenameFile = True
End function

End Class
%>

38、現在已可以壓縮有密碼的數據庫,代碼如下,但是壓縮之後的數據庫密碼就沒有了!如何解決?

<%
Const JET_3X = 4

Function CompactDB(dbPath, boolIs97)
    Dim fso, Engine, strDBPath
    strDBPath = left(dbPath,instrrev(DBPath,"/"))
    Set fso = CreateObject("Scripting.FileSystemObject")

    If fso.FileExists(dbPath) Then    
        Set Engine = CreateObject("JRO.JetEngine")

        If boolIs97 = "True" Then
            Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
            "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password='XXXXXXXX';Data Source=" & strDBPath & "temp.mdb;" _
            & "Jet OLEDB:Engine Type=" & JET_3X
        Else
        Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password='XXXXXXXX';Data Source=" & dbpath, _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"
        End If

        fso.CopyFile strDBPath & "temp.mdb",dbpath
        fso.DeleteFile(strDBPath & "temp.mdb")
        Set fso = nothing
        Set Engine = nothing

        CompactDB = "你的數據庫, " & dbpath & ", 已經壓縮成功!" & vbCrLf

    Else
        CompactDB = "數據庫名稱或路徑不正確. 請重試!" & vbCrLf
    End If

End Function
%>

39. 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=數據庫名稱
%>

40. 建立記錄集對象:

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

41. 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 數據表名稱 (永久性刪除一個數據表)

42. 記錄集對象的方法:

rs.movenext 將記錄指針從當前的位置向下移一行
rs.moveprevious 將記錄指針從當前的位置向上移一行
rs.movef   
 irst 將記錄指針移到數據表第一行
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 更新數據表記錄

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

43、 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才能對數據進行增、
刪、改的操作。

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章