热搜词
发表于 2008-3-4 14:57:04 | 显示全部楼层 |阅读模式
<p>一、 <span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial">用</span><span lang=EN-US style="FONT-FAMILY: &#39;Times New Roman&#39;; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">Recordset</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial">对象的</span><span lang=EN-US style="FONT-FAMILY: &#39;Times New Roman&#39;; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">Open</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &#39;Times New Roman&#39;; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial">方法打开记录集</span></p><p>使用Recordset对象的Open方法打开一个记录集。语法格式如下:<br />recordset.Open Source, ActiveConnection, CursorType, LockType, Options</p><p>例如:<br />&nbsp;&lt;%<br />Set conn = Server.CreateObject("ADODB.Connection")<br />Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&amp;Server.MapPath("DATa.mdb")&nbsp; <br />Set rs= Server.CreateObject("ADODB.Recordset")<br />MySQL = "SELECT * FROM Employees WHERE Couontry = &#39;USA&#39;“<br />rs.Open MySQL, conn,3,3<br />&nbsp;……<br />rs.Close<br />&nbsp;%&gt;</p><p>1.访问字段值<br />每个Recordset对象都包含一个Fields集合,该集合由一些Field对象组成,Field对象的个数由Fields集合的Count属性确定。每个Field对象对应于记录集内的一列,也就是数据库表中的一个字段。使用Field对象的Value属性可以设置或返回当前记录中的字段值,使用Field对象的Name属性可以返回字段名。例如:<br />&nbsp;&lt;%<br />Set&nbsp; conn=Server.CreateObject("ADODB.Connection")<br />conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&amp;Server.MapPath("DATa.mdb")&nbsp; <br />set&nbsp; rs=server.CreateObject("adodb.recordset") <br />sqlstr="select&nbsp; *&nbsp; from&nbsp; linkman" <br />rs.open&nbsp; sqlstr,conn,3,3<br />response.write(rs ("name"))<br />conn.close<br />&nbsp;%&gt;</p><p>2.创建新表<br />&nbsp;在SQL语言中,使用CREATE TABLE语句创建一个新表。语法如下:<br />&nbsp;CREATE TABLE table_name<br />&nbsp;( column_name data_type, column_name data_type, ... )<br />其中table_name是新表的名称,必须符合标识符规则。<br />在ASP页面中,首先使用Connection对象的Open建立到指定数据库的连接,然后将CREATE TABLE语句作为CommandText参数的值来执行Execute方法,以在所连接的数据库中创建一个新表。<br />例如:<br />tablename="test"<br />cmdtext="create table "&amp;tablename&amp;"(id int primary key,name char)“<br />&nbsp;‘创建表的SQL语句 <br />conn.execute cmdtext,recordaffected,adcmdText<br />&nbsp;’创建表的ASP语句</p><p>3. 添加记录<br />增加数据库记录用到rs.addnew, rs.update两个函数&nbsp;&nbsp;&nbsp;&nbsp; &lt;%<br />rs.open db conn,3,3&nbsp;打开表<br />rs.addnew &nbsp;&nbsp;新增加一条记录<br />rs("name")="xx" &nbsp;将xx的值传给name字段<br />rs.update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 刷新数据库<br />&nbsp;&nbsp; %&gt;</p><p>4. 检索记录<br />&nbsp;在SQL语言中,使用SELECT语句从表中检索数据,该语句有许多子句,例如FROM子句指定从其中检索数据的表,WHERE子句指定用于限制返回的行的搜索条件,ORDER BY子句设置结果集的排序方式等。<br />方法一:<br />&nbsp;在ASP页面中,首先使用Connection对象的Open创建到指定数据库的连接,然后将SELECT语句作为CommandText参数的值来执行Execute方法,以从指定的表中选择一行或多行记录。<br />方法二:<br />&nbsp; (1)、字符型:<br />sqlstr=“select * from user where user=‘’张三” (字符型)<br />rs.open sqlstr,conn,1,3 <br />if rs.eof then<br />&nbsp;response.write ”不存在“<br />Else<br />&nbsp;response.write “存在”<br />End if<br />&nbsp; (2)、数值型:<br />sqlstr="select * from message where id=12<br />&nbsp;rs.open sqlstr,conn,1,3 <br />if rs.eof then<br />&nbsp;response.write ”不存在“<br />Else<br />&nbsp;response.write “存在”<br />End if</p><p>5. 更新记录<br />&nbsp;set rs = server.CreateObject("adodb.recordset")<br />&nbsp;sqlstr="select&nbsp; *&nbsp; from&nbsp; test where id=2"<br />&nbsp;rs.open&nbsp; sqlstr,conn,3,3&nbsp;打开查找记录<br />&nbsp;rs(“name”)=“tom3“&nbsp;&nbsp;修改记录<br />&nbsp;rs.update&nbsp;&nbsp;&nbsp;&nbsp;更新记录</p><p>6. 删除记录<br />&nbsp;set rs = server.CreateObject("adodb.recordset")<br />&nbsp;sqlstr="select&nbsp; *&nbsp; from&nbsp; test where id=2"<br />&nbsp;rs.open&nbsp; sqlstr,conn,3,3&nbsp;打开查找记录<br />&nbsp;rs.delete&nbsp;&nbsp;删除记录<br />&nbsp;rs.update&nbsp;&nbsp;更新记录<br />7. 关闭记录集<br />&nbsp;创建记录集并执行所需操作后,可以使用Close方法关闭Recordset对<br />象,同时释放相关联的数据和可能已经通过该特定Recordset对象对数据进<br />行的独立访问。随后可以调用Open方法重新打开具有相同属性或已修改属<br />性的Recordset对象。</p><p>二、设置游标特性和锁定类型<br />1. 设置游标的类型<br />&nbsp;使用CursorType属性可以指定打开Recordset对象时应该使用的游标类<br />型,该属性可以设置或返回下列值之一:<br />adOpenForwardOnly:表示仅向前游标(默认值),只能在Recordset中向前滚动。<br />adOpenKeyset:表示键集游标,允许Recordset中各种类型的移动。<br />adOpenDynamic:表示动态游标,用于不依赖书签的Recordset中各种类型的移动。如果提供者支持,可以使用书签。<br />adOpenStatic:表示静态游标,也允许Recordset中各种类型的移动,支持书签。<br />2. 设置游标引擎的位置<br />&nbsp;使用Recrodset对象的CursorLocation属性可以设置或返回游标的位置,该属性<br />可以取下列值之一:<br />adUseServer,表示使用数据提供程序或驱动程序提供的游标(默认值)。<br />adUseClient:表示使用由本地游标库提供的客户端游标。<br />3. 设置锁定类型<br />&nbsp;打开Recordset对象前设置LockType属性可以指定打开该对象时提供程序应该<br />使用的锁定类型,该属性设置或返回下列值之一。<br />adLockReadOnly:这是默认值,表示只读,无法更改数据。<br />adLockPessimistic:表示保守式记录锁定(逐条),提供程序执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方</p><p>式。<br />adLockOptimistic:表示开放式记录锁定(逐条),提供程序使用开放式锁定,只在调用Update方法时锁定记录。<br />adLockBatchOptimistic:表示开放式批更新,用于与立即更新模式相反的批更新模式。<br />统计记录集内包含的记录数<br />&nbsp;使用Recordset对象的RecordCount属性可以确定Recordset对象中记录的当前数<br />目。仅向前游标和动态游标不支持RecordCount属性。当ADO无法确定记录数时,<br />该属性返回-1。</p><p>三、记录导航<br />&nbsp;当打开一个非空记录集时,当前记录总是位于第一行记录上。使用<br />Recordset对象的下列属性或方法可以在不同记录之间移动。<br />AbsolutePosition属性:设置或返回当前记录在记录集内的序号位置<br />Bookmark属性:&nbsp;设置或返回在记录集内唯一标识当前记录的书签<br />BOF属性&nbsp;:如果当前记录在第一条记录之前,则该属性值为True<br />EOF属性&nbsp;:如果当前记录在最后一条记录之后,则该属性值为True<br />Move方法:&nbsp;语法格式:recordset.Move NumRecords, Start<br />&nbsp;在记录集内向前或向后移动一定数目的记录。NumRecords为正数时,向记录集的末尾移动,为负数时向记录集的开始移动。Start指定</p><p>移动的起点,可以是当前记录(默认值)或某一书签<br />MoveFirst方法:&nbsp;&nbsp;移到记录集内的第一条记录<br />MoveLast方法:&nbsp;&nbsp;移到记录集内的最后一条记录<br />MoveNext方法:&nbsp;&nbsp;移到记录集内的下一条记录<br />MovePrevious方法:&nbsp;移到记录集内的上一条记录<br /><br />四、分页显示记录<br />1. 使用PageSize属性指定一页中的记录数<br />&nbsp;使用PageSize属性设置或返回一个长整型值,以指定某页上的记录数,默认值为10。使用PageSize属性可以确定组成逻辑数据页的记</p><p>录数。在对数据进行分页显示时,该属性在Web服务器方案中非常有用,可以用来在某一时刻查看一定数量的记录。随时可以设置该属性,其值</p><p>将用来计算特定页第一个记录的位置。<br />2. 使用PageCount属性返回总页数<br />&nbsp;使用PageCount属性可以确定Recordset对象中数据的页数。“页”是大小等于<br />PageSize属性设置的记录组。即使最后页不完整,由于记录数比PageSize值少,该<br />页也会作为PageCount 值中的附加页进行计数。如果Recordset对象不支持PageCount<br />属性,该值为-1,以表明该属性无法确定。<br />3. 使用AbsolutePage属性指定当前记录所在的页<br />&nbsp;Recordset对象的AbsolutePage属性设置或返回从1到该对象所含页数(即<br />PageCount)的长整型值。使用AbsolutePage属性可以识别当前记录所在的页码,可<br />以使用该属性将记录集从逻辑上划分为一系列的页,每页的记录数等于PageSize,<br />但最后一页除外,该页记录数可能比较少。提供程序必须支持该属性的相应功能才<br />能使用该属性。<br />&nbsp;AbsolutePage属性从1开始并在当前记录为Recordset对象中的第一个记录时等<br />于1。设置该属性可以移动到特定页的第一个记录。</p><p>五、搜索记录<br />&nbsp;使用Recordset对象的Find方法可以搜索记录集内满足指定条件的记录。如果条件符合,则记录集位置设置在找到的记录上,否则位置</p><p>将设置在记录集的末尾。语法格式如下:<br />&nbsp;Find (criteria, SkipRows, searchDirection, start)<br />其中criteria参数是一个字符串,包含用于搜索的指定列名、比较操作符和值的语句。SkipRows是可选参数,取长整型值,其默认值为零,它</p><p>指定当前行或start书签的位移以开始搜索。searchDirection是可选参数,指定搜索应从当前行还是搜索方向上的下一个有效行开始,其值可</p><p>以是adSearchForward或adSearchBackward。搜索停止在记录集的开始还是末尾则取决于searchDirection值。start是可选参数,变体型书签,</p><p>指定用作搜索的开始位置。<br />&nbsp; criteria中的比较操作符可以是“&gt;”(大于)、“&lt;”(小于)、“=”(等于)或“Like”(模式匹配)。criteria中的值可以是</p><p>字符串、浮点数或者日期。字符串值以单引号分隔,例如state = ‘WA’;日期值以“#”(数字记号)分隔,例如start_date &gt; #7/22/97#”</p><p>。如果比较操作符为Like,则字符串值可以包含通配符星号(*)和下划线(_),星号表示某字符可以出现一次或多次,下划线表示某字符只</p><p>出现一次。<br />&nbsp;<br />六、更新记录<br />&nbsp;使用Connection对象的Execute方法将SQL INSERT、DELETE和UPDATE语句提交给SQL Server服务器,可以完成数据的增删改<br />操作。也可以使用Recordset对象的下列方法来完成这些操作。</p><p>AddNew:&nbsp;添加一条新记录<br />Delete:&nbsp;删除当前记录<br />Update:&nbsp;保存当前记录所做的所有更改,移向其他记录时&nbsp;&nbsp;&nbsp;自动调用该方法<br />CancelUpdate:&nbsp;取消对当前记录或新记录所做的任何更改,必须&nbsp;&nbsp;&nbsp;在调用Update方法或移向其他记录前调用<br />UpdateBatch:&nbsp;将所有挂起的批更新写入磁盘</p><p>&nbsp;</p><p>[此帖子已被 灰儿 在 2008-3-4 17:27:24 编辑过]
全部评论1
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-22 15:21 , Processed in 0.162909 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team