asp(vbs)Rs.Open和Conn.Execute的详解和区别及&H0001的说明

1. Rs.Open SQL,Conn,A,B,C
2. Conn.Execute(SQL,RowsAffected,C)

一、Conn.Execute(SQL,RowsAffected,C)

参数含义:

SQL的值可以是SQL语句、表名、存储过程名,也可以是数据提供者所能接受的任意字符串。为了提高性能,最好为C参数指定合适的值
可选参数RowsAffected
1、一个Insert、Update或Delete查询执行以后,RowsAffected返回所影响的数目,这些查询会返回一个关闭的Recordset对象。
2、一个SELECT查询将返回RowsAffected值为-1并且返回带有一行或多行内容的打开的Recordset。

<%
Set Conn=OpenDatabase'(OpenDatabase函数详见:ASP中与ACCESS和MSSQL数据库建立连接方法)
Conn.Execute "update Table1 set Col1='123'",RowsAffected,&H0001
Response.Write RowsAffected&" 行受到影响"
Conn.close
Set Conn=Nothing
%>

二、Rs.Open SQL,Conn,A,B,C

Set Rs=Server.CreateObject ("adodb.RecordSet")
sql="xxxx"
Rs.Open Sql,Conn,1,1,&H0001
irs=rs.getrows(10)

&H0001是什么意思?以前第一次见到这个时,着实迷惑了一阵。现在网站关于这个的资料满天飞了。在此提一下,下面参数说明中有具体说明。

A参数:游标类型

Const adOpenForwardOnly=0 只读,缺省。在记录集内的记录间游标只允许往前移动。不支持分页、Recordset、BookMark
Const adOpenKeyset=1 只读,键集游标,当前数据记录可自由移动,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark
Const adOpenDynamic=2 可读写,当前数据记录可自由移动,动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。
Const adOpenStatic=3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动

B参数:锁定类型

Const adLockReadOnly=1 缺省值,记录集是只读的,不能修改记录
Const adLockPessimistic=2 '悲观锁定,当编辑时立即锁定记录,以确保成功地编辑记录。最安全的方式
Const dLockOptimistic=3 '乐观锁定,直到用Update方法提交更新记录时才锁定记录,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
Const dLockBatchOptimistic=4 '批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。
当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,数据在这段时间被更新。这减少了资源的使用。

C参数:(指定SQL语句类型)

Const ADCmdUnknown=&H0008 '未知,需要系统来判断,速度慢,为缺省值
Const ADCmdText=&H0001 '将执行一段sql
Const ADCmdTable=&H0002 '将操作一个表
Const ADCmdStoredProc=&H0004 '将操作存储过程名称
Const ADCmdFile= &H0100 '对象类型相应的文件名称
Const ADCmdTableDirect=&H0200 '是能直接从表中获取行内容的表名称

三、Rs.Open和Conn.Execute的区别

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)括号一定要,不能省略
这是因为vb的特性,带返回值的调用必须加括号,不带返回值的调用可以不要括号。

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 news where id="&cstr(id)
Conn.Execute sql
如果需要返回recordset对象,则使用如下代码:
sql="select from news where id="&cstr(id)
Set Rs=Conn.Execute(sql)
如果去掉execute(sql)这儿的括号(即为set rs = Conn.Execute sql),就会提示“语句未结束”这样的错误提示,我翻看了一下语法格式,发现有二种格式,详解如下:

格式一:Connection对象名.Execute(SQL指令)
格式二:Connection对象名.Execute(数据表名)
Conn.Execute(sql)(0)为数据集的第一个字段的值
Conn.Execute(sql) 返回记录集。
Conn.Execute sql 不返回记录集。一般用于插入、更新,删除等不带返回值的操作

(0)

相关推荐

  • asp(vbs)Rs.Open和Conn.Execute的详解和区别及&H0001的说明

    1. Rs.Open SQL,Conn,A,B,C 2. Conn.Execute(SQL,RowsAffected,C) 一.Conn.Execute(SQL,RowsAffected,C) 参数含义: SQL的值可以是SQL语句.表名.存储过程名,也可以是数据提供者所能接受的任意字符串.为了提高性能,最好为C参数指定合适的值 可选参数RowsAffected 1.一个Insert.Update或Delete查询执行以后,RowsAffected返回所影响的数目,这些查询会返回一个关闭的Rec

  • ThreadPoolExecutor线程池原理及其execute方法(详解)

    jdk1.7.0_79 对于线程池大部分人可能会用,也知道为什么用.无非就是任务需要异步执行,再者就是线程需要统一管理起来.对于从线程池中获取线程,大部分人可能只知道,我现在需要一个线程来执行一个任务,那我就把任务丢到线程池里,线程池里有空闲的线程就执行,没有空闲的线程就等待.实际上对于线程池的执行原理远远不止这么简单. 在Java并发包中提供了线程池类--ThreadPoolExecutor,实际上更多的我们可能用到的是Executors工厂类为我们提供的线程池:newFixedThreadP

  • 基于asp.net MVC 应用程序的生命周期(详解)

    首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的生命周期,从一个控件到另一个控件是怎样被处理的.我们还会详细介绍一下整个请求的生命周期中,用到的相关组件.因为在平常的开发过程中,我们可能知道怎样去使用MVC框架来处理相关的请求,大部分的时候我们只是在controller和action方法之间做相关的处理,对于真正内在的运行机制可能不是很了解.其实

  • ASP.NET Core中Cookie验证身份用法详解

    目录 添加配置 ASP.NETCore1.x ASP.NETCore2.x 创建身份认证Cookie ASP.NETCore1.x ASP.NETCore2.x Signingout(登出) ASP.NETCore1.x ASP.NETCore2.x 服务端变化反馈 ASP.NETCore1.x ASP.NETCore2.x Cookie设置选项 ASP.NETCore1.x ASP.NETCore2.x 持久Cookie ASP.NETCore1.x ASP.NETCore2.x 绝对到期时间

  • ASP.NET MVC模式中应用程序结构详解

    目录 一.App_Data 二.App_Start 三.Content 四.Controllers 五.font 六.Models 七.Scripts 八.Views 九.Web.config 1.根目录下面的Web.config文件 2.Views文件夹下面的Web.config 十.Global.asax 在上一篇文章中,讲解了一些MVC的概念,并且创建了第一个ASP.NET MVC项目,这篇文章将讲解ASP.NET MVC程序中的代码解构,新创建的MVC应用程序解构如下图所示: 一.App

  • ASP.NET Core WebSocket集群实现思路详解

    目录 前言 实现 nginx配置 一对一发送 群组发送 发送所有人 整合到一起 一对一处理 群组处理 全员消息处理 示例源码 总结 前言 提到WebSocket相信大家都听说过,它的初衷是为了解决客户端浏览器与服务端进行双向通信,是在单个TCP连接上进行全双工通讯的协议.在没有WebSocket之前只能通过浏览器到服务端的请求应答模式比如轮询,来实现服务端的变更响应到客户端,现在服务端也可以主动发送数据到客户端浏览器.WebSocket协议和Http协议平行,都属于TCP/IP四层模型中的第四层

  • asp中的rs.open与conn.execute的区别说明

    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 中间可以来多个记录集r

  • android与asp.net服务端共享session的方法详解

    前言 最近因为工作的需要,要实现一个功能,就是需要通过发送短信进行注册,现在想把短信验证码放到服务器的session值中,当客户端收到短信并提交短信码时由asp.net服务端进行判断,那么如何共享这个session那么需要在android客户端中添加几行代码. 实现方法 如下操作.第一次数据请求时就获取这个cookie的名称并且得到这个cookie的值,这个即是sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要将这个sessionid一并放在Cookie中发给服务器,服务

  • Asp中err和error对象的属性详解及用法示例

    一.ERR对象 err对象使用的时候不需要创建实例,就是说你要用的时候随便拿来使用,就像session一样. 不需要像ADODB对象使用的时候Set conn=Server.CreateObject("ADODB.Connection")来创建实例,它返回一个错误代码. 但是Err!=Err.Number,可以用Clear方法清除,以利于下次使用.它主要的是个Description方法,返回的是简要错误说明,这里一个很经典的例子: 程序代码: 复制代码 代码如下: < %@ LA

  • ASP.NET Core使用HostingStartup增强启动操作方法详解

    概念 在ASP.NET Core中我们可以使用一种机制来增强启动时的操作,它就是HostingStartup.如何叫"增强"操作,相信了解过AOP概念的同学应该都非常的熟悉.我们常说AOP使用了关注点分离的方式,增强了对现有逻辑的操作.而我们今天要说的HostingStartup就是为了"增强"启动操作,这种"增强"的操作甚至可以对现有的程序可以做到无改动的操作.例如,外部程序集可通过HostingStartup实现为应用提供配置服务.注册服务或

随机推荐