asp中的rs.open與conn.execute的區(qū)別說明
更新時間:2011年01月06日 17:12:23 作者:
不管是rs.open sql,conn還是conn.execute(sql) [這里的SQL是delete,update,insert]執(zhí)行以后都會返回一個關閉的記錄集
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]執(zhí)行以后都會返回一個關閉的記錄集
也就是說如果sql是插入,更新,刪除語句,那么set rs=conn.execute(sql)中的RS就沒什么意義。
1.conn.execute
sql="select * from admin where username='xiaozhu'"
set rs=conn.execute(sql)
執(zhí)行完以后自動關閉記錄集
最后只需要關閉連接就可以了
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
可以自己設定一些參數(shù),即鎖定和游標的移動方式
最后要關閉記錄集和連接
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為正常的記錄數(shù)
2.
rs.open是打開數(shù)據(jù)庫 conn.execute 是執(zhí)行SQL指令
set rs=conn.execute(insert,update,delete)返回一個關閉了的記錄集
set rs=conn.execute(select)返回一個沒有關閉的記錄集
3.
CONN.EXECUTE(SQL,RowsAffected,C)
參數(shù)含義:
SQL的值可以是SQL語句、表名、存儲過程名,也可以是數(shù)據(jù)提供者所能接受的任意字符串。為了提高性能,最好為C參數(shù)指定合適的值
可選參數(shù)RowsAffected將返回INSERT、UPDATE或DELETE查詢執(zhí)行以后所影響的數(shù)目。這些查詢會返回一個關閉的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),就會提示“語句未結束”這樣的錯誤提示,我翻看了一下語法格式,發(fā)現(xiàn)有二種格式,詳解如下:
格式一:Connection對象名.Execute(SQL指令).
格式二:Connection對象名.Execute(數(shù)據(jù)表名)。
從上面的格式中看出,execute后面的sql指令是包含在括號中的,但事實上如果執(zhí)行刪除或者修改等操作并不需要非得將sql指令包含在括號中也能正確執(zhí)行,這是為何?而執(zhí)行查詢就必須將sql指令包含在括號中,否則就會出錯,看了手頭所有的ASP教程都沒有提到這個問題,搜索了一通也沒找到答案,懇請前人給指點一下其中的原因,可不要只說語法規(guī)則就這樣的喲,我希望得到正確答案,謝謝。
中間可以來多個記錄集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]執(zhí)行以后都會返回一個關閉的記錄集
也就是說如果sql是插入,更新,刪除語句,那么set rs=conn.execute(sql)中的RS就沒什么意義。
1.conn.execute
sql="select * from admin where username='xiaozhu'"
set rs=conn.execute(sql)
執(zhí)行完以后自動關閉記錄集
最后只需要關閉連接就可以了
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
可以自己設定一些參數(shù),即鎖定和游標的移動方式
最后要關閉記錄集和連接
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為正常的記錄數(shù)
2.
rs.open是打開數(shù)據(jù)庫 conn.execute 是執(zhí)行SQL指令
set rs=conn.execute(insert,update,delete)返回一個關閉了的記錄集
set rs=conn.execute(select)返回一個沒有關閉的記錄集
3.
CONN.EXECUTE(SQL,RowsAffected,C)
參數(shù)含義:
SQL的值可以是SQL語句、表名、存儲過程名,也可以是數(shù)據(jù)提供者所能接受的任意字符串。為了提高性能,最好為C參數(shù)指定合適的值
可選參數(shù)RowsAffected將返回INSERT、UPDATE或DELETE查詢執(zhí)行以后所影響的數(shù)目。這些查詢會返回一個關閉的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),就會提示“語句未結束”這樣的錯誤提示,我翻看了一下語法格式,發(fā)現(xiàn)有二種格式,詳解如下:
格式一:Connection對象名.Execute(SQL指令).
格式二:Connection對象名.Execute(數(shù)據(jù)表名)。
從上面的格式中看出,execute后面的sql指令是包含在括號中的,但事實上如果執(zhí)行刪除或者修改等操作并不需要非得將sql指令包含在括號中也能正確執(zhí)行,這是為何?而執(zhí)行查詢就必須將sql指令包含在括號中,否則就會出錯,看了手頭所有的ASP教程都沒有提到這個問題,搜索了一通也沒找到答案,懇請前人給指點一下其中的原因,可不要只說語法規(guī)則就這樣的喲,我希望得到正確答案,謝謝。
相關文章
關于靜態(tài)頁生成問題 突破form數(shù)量限制
關于靜態(tài)頁生成問題 突破form數(shù)量限制...2006-09-09
使用AJAX實現(xiàn)UTF8編碼表單提交到GBK編碼腳本無亂碼的解決方法
這篇文章主要介紹了用AJAX實現(xiàn),多個不同編碼的項目(GBK,UTF8)互相通過 POST/GET 匯總表單數(shù)據(jù)。最終實現(xiàn) 使用同一個頁面接收 不同編碼的 表單(GBK,UTF8),特別適合 JS 采集項目,需要的朋友可以參考下2020-09-09
我用ASP寫的m行n列的函數(shù),動態(tài)輸出創(chuàng)建TABLE行列
我用ASP寫的m行n列的函數(shù),動態(tài)輸出創(chuàng)建TABLE行列...2007-02-02
ASP 處理JSON數(shù)據(jù)的實現(xiàn)代碼
今天看網(wǎng)頁才發(fā)現(xiàn)了ASP也能處理JSON數(shù)據(jù)?呵呵,剛才論壇上看到一個兄弟寫的文章,沒有測試,不過理論上一定是可以的,之前腳本之家小編也發(fā)過類似的文章都可以看下2017-07-07
ASP開發(fā)中可能遇到的錯誤信息中文說明大全(整理收集)
ASP開發(fā)中可能遇到的錯誤信息中文說明大全(整理收集)...2007-03-03
實現(xiàn)對Access數(shù)據(jù)庫表重命名的一段代碼
實現(xiàn)對Access數(shù)據(jù)庫表重命名的一段代碼...2006-07-07

