rs.open和conn.execute區(qū)別

字號(hào):

1. RS.OPEN SQL,CONN,A,B,C
    2. CONN.EXECUTE(SQL,RowsAffected,C)
    參數(shù)含義:
    SQL的值可以是SQL語(yǔ)句、表名、存儲(chǔ)過程名,也可以是數(shù)據(jù)提供者所能接受的任意字符串。為了提高性能,為C參數(shù)指定合適的值
    可選參數(shù)RowsAffected將返回INSERT、UPDATE或DELETE查詢執(zhí)行以后所影響的數(shù)目。這些查詢會(huì)返回一個(gè)關(guān)閉的Recordset對(duì)象。
    一個(gè)SELECT查詢將返回RowsAffected值為-1并且返回帶有一行或多行內(nèi)容的打開的Recordset。
    <%
    set Conn=Server.CreateObject("ADODB.Connection")
    Conn.open "Provider=SQLOLEDB;Password=xiaolu;User ID=sa;Database=Test;Data Source =127.0.0.1"
    conn.execute "update Table1 set Col1=’123’",RowsAffected,&H0001
    Response.Write RowsAffected&" 行受到影響"
    Conn.close
    Set Conn=Nothing
    %>
    A: ADOPENFORWARDONLY(=0)
    只讀,且當(dāng)前數(shù)據(jù)記錄只能向下移動(dòng)
    ADOPENKEYSET(=1)
    只讀,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng)
    ADOPENDYNAMIC(=2)
    可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng)
    ADOPENSTATIC(=3)
    可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄
    B: ADLOCKREADONLY(=1)
    缺省鎖定類型,記錄集是只讀的,不能修改記錄
    ADLOCKPESSIMISTIC(=2)
    悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。
    ADLOCKOPTIMISTIC(=3)
    樂觀鎖定 ,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
    ADLOCKBATCHOPTIMISTIC(=4)
    批量樂觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
    當(dāng)不需要改動(dòng)任何記錄時(shí),應(yīng)該使用只讀的記錄集,這樣提供者不用做任何檢測(cè)。
    對(duì)于一般的使用,樂觀的鎖定可能是的選擇,因?yàn)橛涗浿槐绘i定一小段時(shí)間,
    數(shù)據(jù)在這段時(shí)間被更新。這減少了資源的使用。
    C:(指定SQL語(yǔ)句類型)
    ADCmdUnknown (= &H0008)
    未知,需要系統(tǒng)來(lái)判斷,速度慢,為缺省值
    ADCmdText (= &H0001)
    命令語(yǔ)句如SQL語(yǔ)句
    如:Select * from Table1
    ADCmdTable (= &H0002)
    查詢的表名稱,例如:Table1
    ADCmdStoredProc (= &H0004)
    存儲(chǔ)過程名稱
    ADCmdFile (= &H0100)
    對(duì)象類型相應(yīng)的文件名稱
    ADCmdTableDirect (= &H0200)
    是能直接從表中獲取行內(nèi)容的表名稱
    conn.execute(sql)(0)為數(shù)據(jù)集的第一個(gè)字段的值