當前位置:首頁 > 建站常識 > 列表

Rs.Open和(hé)Conn.Execute的(de)區(qū)别

點擊:時(shí)間:2018/5/17關鍵詞:上海網頁設計
經常會遇到這(zhè)樣一些問題:1、什(shén)麽時(shí)候使用(yòng)rs.close,什(shén)麽時(shí)候不使用(yòng)。2、數據庫中明(míng)明(míng)有記錄,也(yě)有符合要求的(de)記錄,而rs.recordcount卻等于-1這(zhè)些都是與rs.open與conn.execute有關,雖然這(zhè)兩個(gè)都是執行sql語句的(de),但還(hái)是有一些

經常會遇到這(zhè)樣一些問題:

1、什(shén)麽時(shí)候使用(yòng)rs.close,什(shén)麽時(shí)候不使用(yòng)。

2、數據庫中明(míng)明(míng)有記錄,也(yě)有符合要求的(de)記錄,而rs.recordcount卻等于-1

這(zhè)些都是與rs.open與conn.execute有關,雖然這(zhè)兩個(gè)都是執行sql語句的(de),但還(hái)是有一些區(qū)别。

Rs.Open和(hé)Conn.Execute的(de)區(qū)别:

Rs.Open SQL,Conn

如果sql是delete,update,insert則會返回一個(gè)關閉的(de)記錄集,在使用(yòng)過程中不要來(lái)個(gè)rs.close在文件最後再寫rs.close中間可(kě)以來(lái)多(duō)個(gè)記錄集rs1.open sql1,conn,最後一塊關閉記錄集:rs.close rs1.close

Conn.Execute(SQL)

如果sql是delete,update,insert則會返回一個(gè)關閉的(de)記錄集,在使用(yòng)過程中不要來(lái)個(gè)rs.close在文件最後再寫rs.close中間可(kě)以來(lái)多(duō)個(gè)記錄集rs1.open sql1,conn,最後一塊關閉記錄集:rs.close rs1.close.

如果sql是update,insert,delete則應該使用(yòng)Conn.Execute(sql)也(yě)可(kě)以不要括号Conn.Execute sql

如果sql是select語句則應該使用(yòng)Set Rs=Conn.Execute(sql)括号一定要,不能省略

這(zhè)是因爲vb的(de)特性,帶返回值的(de)調用(yòng)必須加括号,不帶返回值的(de)調用(yòng)可(kě)以不要括号。

1.Conn.Execute

sql="select * from admin where username='xiaozhu'"

Set Rs=Conn.Execute(sql)

'執行完以後自動關閉記錄集

'最後隻需要關閉連接就可(kě)以了(le)

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

'可(kě)以自己設定一些參數,即鎖定和(hé)遊标的(de)移動方式

'最後要關閉記錄集和(hé)連接

Rs.Close

Set Rs=nothing

Conn.Close

Set Conn=Nothing


參數含義:

SQL的(de)值可(kě)以是SQL語句、表名、存儲過程名,也(yě)可(kě)以是數據提供者所能接受的(de)任意字符串。爲了(le)提高(gāo)性能,最好爲C參數指定合适的(de)值。

可(kě)選參數RowsAffected将返回INSERT、UPDATE或DELETE查詢執行以後所影(yǐng)響的(de)數目。這(zhè)些查詢會返回一個(gè)關閉的(de)Recordset對(duì)象。

一個(gè)SELECT查詢将返回RowsAffected值爲-1并且返回帶有一行或多(duō)行内容的(de)打開的(de)Recordset。

4.

Conn.Execute sql适合于不需返回recordset對(duì)象時(shí)使用(yòng),比如下(xià)面的(de)代碼:

sql="delete from news where id="&cstr(id)

Conn.Execute sql

如果需要返回recordset對(duì)象,則使用(yòng)如下(xià)代碼:

sql="select from news where id="&cstr(id)

Set Rs=Conn.Execute(sql)

 

如果去掉execute(sql)這(zhè)兒(ér)的(de)括号(即爲set rs = Conn.Execute sql),就會提示“語句未結束”這(zhè)樣的(de)錯誤提示,我翻看了(le)一下(xià)語法格式,發現有二種格式,詳解如下(xià):

格式一:Connection對(duì)象名.Execute(SQL指令)

格式二:Connection對(duì)象名.Execute(數據表名)

Conn.Execute(sql)(0)爲數據集的(de)第一個(gè)字段的(de)值

Conn.Execute(sql) 返回記錄集。

Conn.Execute sql 不返回記錄集。一般用(yòng)于插入、更新,删除等不帶返回值的(de)操作

預約建站
免費提供網站優化(huà)
領取關鍵詞