不管是rs.open sql,conn還是conn.execute(sql) [這裡的SQL是delete,update,insert]執行以後都會回傳一個關閉的記錄集rs.open sql,conn:如果sql是delete,update,insert則會傳回一個關閉的記錄集,在使用過程中不要來個rs.close在檔案最後再寫rs.close
中間可以來多個記錄集rs1.open sql1,conn,最後一塊關閉記錄集:rs.close rs1.close
conn.execute(sql) 如果sql是delete,update,insert則會傳回一個關閉的記錄集,在使用過程中不要來個rs.close在檔案最後再寫rs.close
中間可以來多個記錄集rs1.open sql1,conn,最後一塊關閉記錄集:rs.close rs1.close.
如果sql是update,insert,delete則應該使用conn.execute(sql)也可以不要括號conn.execute sql
如果sql是select語句則應該使用set rs=conn.execute(sql)括號一定要,不能省略:這是因為vbscript的特性,帶回傳值
的呼叫必須加括號,不帶回傳值的呼叫可以不要括號。
注意:不管是rs.open sql,conn還是conn.execute(sql) [這裡的SQL是delete,update,insert]執行以後都會回傳一個關閉的記錄集
也就是說如果sql是插入,更新,刪除語句,那麼set rs=conn.execute(sql)中的RS就沒什麼意義。
1.conn.execute
sql=select * from admin where username='xiaozhu'
set rs=conn.execute(sql)
執行完以後自動關閉記錄集
最後只需要關閉連線就可以了
conn.close
set conn=nothing
2.rs.open
set rs=server.createobject(adodb.recordset)
sql=select * from admin where username='xiaozhu'
rs.open sql,conn,1,1
可以自己設定一些參數,即鎖定和遊標的移動方式
最後要關閉記錄集和連接
rs.close
set rs=nothing
conn.close
set conn=nothing
3.command.execute
sql=select * from admin where username='xiaozhu'
set rs=command.execute(sql)
************************************************** ***************************
1.
set rs=conn.execute(如果是select語句) 得到的rs.recordcount=-1
rs.open sql,conn(sql為select語句) 得到的rs.recordcount為正常的記錄數
2.
rs.open是開啟資料庫conn.execute 是執行SQL指令
set rs=conn.execute(insert,update,delete)傳回一個關閉了的記錄集
set rs=conn.execute(select)傳回一個沒有關閉的記錄集
3.
CONN.EXECUTE(SQL,RowsAffected,C)
參數意義:
SQL的值可以是SQL語句、表名、預存程序名,也可以是資料提供者所能接受的任意字串。為了提高性能,最好為C參數指定合適的值
選用參數RowsAffected將會傳回INSERT、UPDATE或DELETE查詢執行以後所影響的數目。這些查詢會傳回一個關閉的Recordset物件。
一個SELECT查詢將傳回RowsAffected值為-1並且傳回帶有一行或多行內容的開啟的Recordset。
4.
conn.execute sql適合不需要回傳recordset物件時使用,例如下面的程式碼:
sql=delete from enews where id=&cstr(id)
conn.execute sql
如果需要傳回recordset對象,則使用以下程式碼:
sql=select from enews where id=&cstr(id)
set rs = conn.execute(sql)
如果去掉execute(sql)這兒的括號(即為set rs = conn.execute sql),就會提示語句未結束這樣的錯誤提示,我翻看了一下語法格式,發現有二種格式,詳解如下:
格式一:Connection物件名稱.Execute(SQL指令).
格式二:Connection物件名.Execute(資料表名)。
從上面的格式看出,execute後面的sql指令是包含在括號中的,但事實上如果執行刪除或修改等操作並不需要非得將sql指令包含在括號中也能正確執行,這是為何?而執行查詢就必須將sql指令包含在括號中,否則就會出錯,看了手頭所有的ASP教程都沒有提到這個問題,搜索了一通也沒找到答案,懇請前人給指點一下其中的原因,可不要只說文法規則就這樣的喲,我希望得到正確答案,謝謝。