王者荣耀pc版手柄设置不能与手机同步吗

网页设计教程与开发
提供各种常见网页效果
提供各种各样的设计教程
装扮QQ,让QQ变得更酷
设计参考,提高自升水平
学习服务器和操作系统
提供各种素材和工具
收藏学习资料
您现在的位置:&&>>&&>>&&>>&&>>&正文
在Recordset对象中查询记录的方法
无论是 DAO 还是 ADO 都有两种从 Recordset 对象中查询记录的方法: Find 方法和 Seek 方法。在这两种方法中可以让你指定条件进行查询与其相应的记录 , 一般而言,在相同条件下, Seek 方法提供了比 Find 方法更好的性能,因为 Seek 方法是基于索引的。因为这个原因基本提供者必须支持 Recordset 对象上的索引,可以用 Supports ( adSeek ) 方法确定基本提供者是否支持 Seek ,用 Supports ( adIndex ) 方法确定提供者是否支持索引。(例如, OLE DB Provider for Microsoft Jet 支持 Seek 和 Index 。),请将 Seek 方法和 Index 属性结合使用。如果 Seek 没有找到所需的行,将不会产生错误,该行将被放在 Recordset 的结尾处。执行此方法前,请先将 Index 属性设置为所需的索引。此方法只受服务器端游标支持。如果 Recordset 对象的 CursorLocation 属性值为 adUseClient ,将不支持 Seek 。只有当 CommandTypeEnum 值为 adCmdTableDirect 时打开 Recordset 对象,才可以使用此方法。
  用 ADO Find 方法
  DAO 包含了四个“ Find ”方法: FindFirst,FindLast,FindNext 和 FindPrevious .
  DAO 方法 ADO Find 方法
  下面的一个例子示范了如何用 ADO Find 方法查询记录:
Sub FindRecord(strDBPath As String, _strTable As String, _strCriteria As String, _strDisplayField As String)' This procedure finds a record in the specified table by' using the specified criteria.' For example, to use this procedure to find records' in the Customers table in the Northwind database' that have " USA " in the Country field, you can' use a line of code like this:' FindRecord _' "c:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb", _' "Customers", "Country=' USA '", "CustomerID"Dim cnn As ADODB.ConnectionDim rst As ADODB.Recordset' Open the Connection object.Set cnn = New ADODB.ConnectionWith cnn.Provider = "Microsoft.Jet.OLEDB.4.0".Open strDBPathEnd WithSet rst = New ADODB.RecordsetWith rst' Open the table by using a scrolling' Recordset object..Open Source:=strTable, _ActiveConnection:=cnn, _CursorType:=adOpenKeyset, _LockType:=adLockOptimistic' Find the first record that meets the criteria..Find Criteria:=strCriteria, SearchDirection:=adSearchForward' Make sure record was found (not at end of file).If Not .EOF Then' Print the first record and all remaining' records that meet the criteria.Do While Not .EOFDebug.Print .Fields(strDisplayField).Value' Skip the current record and find next match..Find Criteria:=strCriteria, SkipRecords:=1LoopElseMsgBox "Record not found"End If' Close the Recordset object..CloseEnd With' Close connection and destroy object variables.cnn.CloseSet rst = NothingSet cnn = NothingEnd Sub
例如,用用这个过程查询“罗期文商贸”示例数据库中“客户”表的“国家”等于 USA 的记录,可以使用下面的代码:
  FindRecord “c:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb”, _
  “Customers”, “Country=' USA '”, ”CustomerID”
  ( 译者注:如果你安装的是简体中文版要将相应的字段名改成中文 )
  用 ADO Seek 方法
  因为 ADO Seek 方法使用 Index ,最好是在用这个方法之前指定一个索引,可是,如果你没有指定索引, Jet database engine 将用主键。
  如果你需要从多个字段中指定值做为搜索条件,可以用 VBA 中的 Array 函数传递这些值到参数 KeyValues 中去。如果你只需要从一个字段中指定值做为搜索条件,则不需要用 Array 函数传递。
  象 Find 方法一样,你可以用 BOF 或者 EOF 属性测试是否查询到记录。
  下面的一个例子显示了如何用 ADO Seek 方法查询记录:
Sub SeekRecord(strDBPath As String, _strIndex As String, _strTable As String, _varKeyValues As Variant, _strDisplayField As String)' This procedure finds a record by using' the specified index and key values.' For example, to use the PrimaryKey index to' find records in the Order Details table in the' Northwind database where the OrderID field is' 10255 and ProductID is 16, and then display the' value in the Quantity field, you can use a line' of code like this:' SeekRecord _' "c:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb", _' "PrimaryKey", "Order Details", Array(10255, 16), "Quantity"Dim cnn As ADODB.ConnectionDim rst As ADODB.Recordset' Open the Connection object.Set cnn = New ADODB.ConnectionWith cnn.Provider = "Microsoft.Jet.OLEDB.4.0".Open strDBPathEnd WithSet rst = New ADODB.RecordsetWith rst' Select the index used to order the' data in the recordset..Index = strIndex' Open the table by using a scrolling' Recordset object..Open Source:=strTable, _ActiveConnection:=cnn, _CursorType:=adOpenKeyset, _LockType:=adLockOptimistic, _Options:=adCmdTableDirect' Find the order where OrderId = 10255 and' ProductId = 16..Seek KeyValues:=varKeyValues, SeekOption:=adSeekFirstEQ' If a match is found, print the value of' the specified field.If Not .EOF ThenDebug.Print .Fields(strDisplayField).ValueEnd If' Close the Recordset object..CloseEnd With' Close connection and destroy object variables.cnn.CloseSet rst = NothingSet cnn = NothingEnd Sub
  例如,用主键索引查询“罗期文商贸”示例数据库中“订单明细”表的“订单编号”等于 10255 并且产品编号等于 16 的 ” 数量 ” 的值,可以使用下面的代码:
  SeekRecord “c:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb”, _
  “PrimaryKey”, “Order Details”, Array(10255,16), ”Quantity”
转载请注明:破洛洛(谢谢合作)
上一篇文章: 下一篇文章:
网友评论:ADO对象之Recordset用法总结:
ADO对象之Recordset用法总结:
在ADO程序中,记录集(Recordset)对象代表一个表的记录集合或者是一个SQL命令或存储过程执行结果。简单地说:记录集实际上缓存了从数据库获得的记录,应用程序可以从记录集中获得每条记录的字段。
Recordset对象的常用属性和方法:
RecordCount属性:返回Recordset对象中记录的当前数目
BOF,EOF属性:BOF指示当前记录位置的第一记录的前一个,EOF指示当前记录的最后一个记录的后一个。如果打开没有记录的Recordset对象,则BOF,EOF都为true,如果打开的记录集中包含记录,则BOF,EOF都为false
AbsolutePosition属性:指定Recordset对象当前记录的序号位置
ActiveConnection属性:该属性指定Recordset当前所属的Connection对象。
Open方法定义:
HRESULT Open (const _variant_t &Source,
const _variant_t &ActiveConnection,
enum CursorTypeEnum CursorType,
enum LockTypeEnum LockType,
long Options)Source参数:为记录源,它可以是下列内容之一:Command对象变量,SQL语句,存储过程,表名或完整的路径名。
ActiveConnection参数:对应于ActiveConnection属性,指定在哪个连接中打开该记录集,常用_ConnectionPtr.GetInfaceterPtr()指定
CursorType参数:指定打开Recordset时使用的游标,它的取值可以是CursorTypeEnum枚举型中的常量,adOpenStatic(静态游标),adOpenDynamic(动态游标),adOpenForwardOnly(默认,前向游标),adOpenKeyset(键集游标).
LockType参数:指定打开记录集时应该使用的锁定类型,LockType取值为LockTypeEnum枚举型的值,它的取值为
adLockReadOnly:默认值,只读:不能改变数据;
adLockPessimistic:保守式锁定(逐个),数据提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录
adLockOptimistic:开发式锁定(逐个),数据提供者使用开放式锁定,只在调用Update()方法时才锁定记录
adLockBattchOptimistic:开发式批更新:用于批更新模式
Options参数:该参数类型为长整型值,它指定参数Source的种类,Options的种类有如下几种:
adCmdText:指示提供者应该将Source作为命令的文本定义来计算
adCmdTable:指示ADO生成SQL查询以便从在Source中命名的表中返回所有行
adCmdTableDirect:指示提供者更改从Source中命名的表中返回所有行
adCmdStoredProc:指示提供者应该将Source视为存储过程
adCmdUnknown:指示Source参数的命令类型为未知。
MoveFirst,MoveLast,MoveNext,MovePrevious方法:这些方法可以对记录集的游标进行移动操作
GetCollect方法:用于取得字段的值,参数Index可以是字符串表明字段名,也可以是整型数,表示字段的序号。
_variant_t &GetCollect(const _variant_t &Index);
PutColloct方法:用于向记录字段中写入值,pvar参数表示要写入的变量值
void PutCollect (const _variant_t &Index,const _variant_t &pvar);
AddNew()方法:使用该方法创建和初始化新记录,该方法可以使用参数,在参数中指定要添加的新纪录,也可以不使用参数,而在后面使用PutCollect方法修改新记录,使用Update函数保存新纪录
Update()方法:该方法保存从调用AddNew方法以来或更改现有记录中的任何字段值以来所做的所有更改。
使用记录集的具体方法:
定义_RecordsetPtr型变量,然后通过它调用Recordset对象的Open方法,即可打开一个数据集,然后可以使用GetCollet方法获取记录的字段值,使用Move系列函数实现记录集的遍历,最后关闭记录集。
使用集合Fields获取字段值
_variant_t var=pRecordset-&Fields-&GetItem(long(0))-&GetValue();
我的热门文章
即使是一小步也想与你分享ADO Recordset 对象
ADO Recordset 对象
本例演示如何使用 GetRows 方法。
Recordset 对象
ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。
在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。
set objRecordset=Server.CreateObject(&ADODB.recordset&)
当您首次打开一个 Recordset 时,当前记录指针将指向第一个记录,同时 BOF 和 EOF 属性为 False。如果没有记录,BOF 和 EOF 属性为 True。
Recordset 对象能够支持两种更新类型:
立即更新 - 一旦调用 Update 方法,所有更改被立即写入数据库。
批更新 - provider 将缓存多个更改,然后使用 UpdateBatch 方法把这些更改传送到数据库。
在 ADO,定义了 4 中不同的游标(指针)类型:
动态游标 - 允许您查看其他用户所作的添加、更改和删除
键集游标 - 类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。
静态游标 - 提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。
仅向前游标 - 只允许在 Recordset 中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。
可通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标的类型。
注释:并非所有的提供者(providers)支持 Recordset 对象的所有方法和属性。
AbsolutePage
设置或返回一个可指定 Recordset 对象中页码的值。
AbsolutePosition
设置或返回一个值,此值可指定 Recordset 对象中当前记录的顺序位置(序号位置)。
ActiveCommand
返回与 Recordset 对象相关联的 Command 对象。
ActiveConnection
如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的 Connection 对象。
如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。
设置或返回一个书签。此书签保存当前记录的位置。
设置或返回能够被缓存的记录的数目。
CursorLocation
设置或返回游标服务的位置。
CursorType
设置或返回一个 Recordset 对象的游标类型。
DataMember
设置或返回要从 DataSource 属性所引用的对象中检索的数据成员的名称。
DataSource
指定一个包含要被表示为 Recordset 对象的数据的对象。
返回当前记录的编辑状态。
如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。
返回一个针对 Recordset 对象中数据的过滤器。
设置或返回 Recordset 对象的当前索引的名称。
设置或返回当编辑 Recordset 中的一条记录时,可指定锁定类型的值。
MarshalOptions
设置或返回一个值,此值指定哪些记录被返回服务器。
MaxRecords
设置或返回从一个查询返回 Recordset 对象的的最大记录数目。
返回一个 Recordset 对象中的数据页数。
设置或返回 Recordset 对象的一个单一页面上所允许的最大记录数。
RecordCount
返回一个 Recordset 对象中的记录数目。
设置或返回一个或多个作为 Recordset 排序基准的字段名。
设置一个字符串值,或一个 Command 对象引用,或返回一个字符串值,此值可指示 Recordset 对象的数据源。
返回一个值,此值可描述是否 Recordset 对象是打开、关闭、正在连接、正在执行或正在取回数据。
返回有关批更新或其他大量操作的当前记录的状态。
StayInSync
设置或返回当父记录位置改变时对子记录的引用是否改变。
创建一条新记录。
撤销一次执行。
CancelBatch
撤销一次批更新。
CancelUpdate
撤销对 Recordset 对象的一条记录所做的更改。
创建一个已有 Recordset 的副本。
关闭一个 Recordset。
CompareBookmarks
比较两个书签。
删除一条记录或一组记录。
搜索一个 Recordset 中满足指定某个条件的一条记录。
把多条记录从一个 Recordset 对象中拷贝到一个二维数组中。
将 Recordset 作为字符串返回。
在 Recordset 对象中移动记录指针。
把记录指针移动到第一条记录。
把记录指针移动到最后一条记录。
把记录指针移动到下一条记录。
MovePrevious
把记录指针移动到上一条记录。
NextRecordset
通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset。
打开一个数据库元素,此元素可提供对表的记录、查询的结果或保存的 Recordset 的访问。
通过重新执行对象所基于的查询来更新 Recordset 对象中的数据。
从原始数据库刷新当前 Recordset 中的数据。
把 Recordset 对象保存到 file 或 Stream 对象中。
搜索 Recordset 的索引以快速定位与指定的值相匹配的行,并使其成为当前行。
返回一个布尔值,此值可定义 Recordset 对象是否支持特定类型的功能。
保存所有对 Recordset 对象中的一条单一记录所做的更改。
UpdateBatch
把所有 Recordset 中的更改存入数据库。请在批更新模式中使用。
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual C++, and Visual J++ languages can handle events).
EndOfRecordset
当试图移动到超过 Recordset 结尾的行时被触发。
FetchComplete
当异步操作中的所有记录均被读取后被触发。
FetchProgress
在异步操作期间被定期地触发,报告已读取多少记录。
FieldChangeComplete
Field 对象的值更改被触发。
MoveComplete
Recordset 中的当前位置更改后被触发。
RecordChangeComplete
一条记录更改之后被触发。
RecordsetChangeComplete
在 Recordset 更改之后被触发。
WillChangeField
在 Field 对象的值更改之前被触发
WillChangeRecord
在一条记录更改之前被触发。
WillChangeRecordset
在 Recordset 更改之前被触发。
在 Recordset 中的当前位置更改之前被触发。
指示在此 Recordset 对象中 Field 对象的数目。
Properties
包含所有 Recordset 对象中的 Property 对象。
Fields 集合的属性
返回 fields 集合中项目的数目。以 0 起始。
countfields = rs.Fields.Count
Item(named_item/number)
返回 fields 集合中的某个指定的项目。
itemfields = rs.Fields.Item(1)
itemfields = rs.Fields.Item(&Name&)
Properties 集合的属性
返回 properties 集合中项目的数目。以 0 起始。
countprop = rs.Properties.Count
Item(named_item/number)
返回 properties 集合中某个指定的项目。
itemprop = rs.Properties.Item(1)
itemprop = rs.Properties.Item(&Name&)&CString&strSQL&=&&SELECT&*&FROM&authors&;&
&&&&_RecordsetPtr&pRs&=&NULL;&
&&&&pRs.CreateInstance(&ADODB.Recordset&);
&&&&long&nRecordCount&=&0;
&&&&&&&&pRs-&Open(&_variant_t(strSQL),
&&&&&&&&&&&&m_pConnection.GetInterfacePtr(),
&&&&&&&&&&&&adOpenStatic,
&&&&&&&&&&&&adLockOptimistic,
&&&&&&&&&&&&adCmdText);
&&&&&&&&nRecordCount&=&pRs-&GetRecordCount();
&&&&&&&&pRs-&Close();
&&&&catch&(&_com_error&&e&)
&&&&&&&&MessageBox(&e.Description()&);&
&&&&CString&strRecordC
&&&&strRecordCount.Format(&&RecordCount:
%d&&,&nRecordCount&);
&&&&MessageBox(&strRecordCount&);
注意:在用 Open 方法打开记录集时使用了 adOpenStatic 游标;如果使用 adOpenDynamic 游标,GetRecordCount 方法将返回 -1 。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10672次
排名:千里之外
原创:43篇
转载:12篇
(1)(11)(8)(10)(19)(6)使用Recordset对象的方法操作数据库的编程技巧 - Office办公助手
最专业的Office办公软件学习和原创Office教程网站!
使用Recordset对象的方法操作数据库的编程技巧
发布时间:09-03 来源:Office办公助手()
在VBA中,Recordset对象包含很多的方法,如记录的开启和关闭方法Open与Close,添加新记录方法AddNew以及记录集更新方法Update等。本文以使用AddNew方法向数据库中添加记录为例来介绍使用Recordset对象的方法操作数据库的编程技巧。
1、启动Excel,打开Visual Basic编辑器,在工程资源管理器中插入一个模块,在模块的&代码&窗口中输入如下程序代码:
Sub EditRecord()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim fld As ADODB.Field
Dim arrFld As Variant,arrValue As Variant
conn.Provider=&Microsoft.ACE.OLEDB.12.0&
conn.ConnectionString=&data source&=&&_ThisWorkbook.Path&&\罗斯文2007.accdb&
conn.Mode=adModeReadWrite
rs.CursorLocation=adUseClient
rs.Open&运货商&,conn,adOpenDynamic,adLockOptimistic
Debug.Print&添加前记录数:&&rs.RecordCount
arrFld=Array(&公司&,&地址&,&城市&,&省/市/自治区&,_&邮政编码&,&国家/地区&)
arrValue=Array(&UPS&,&福田车公庙工业区泰然九路&,_&深圳&,&广东&,&518040&,&中国&)
rs.AddNew arrFld,arrValue
Debug.Print&添加前记录数:&&rs.RecordCount
2、按F5键运行该过程,此时在&立即窗口&中将显示记录添加结果,如图1所示。打开Access,查看&运货商&数据表,在该数据表中添加了新的字段,如图2所示。
图1 &立即窗口&的输出结果
图2 &运货商&数据表实际效果
上一篇: 下一篇:
专题教程推荐
(window.slotbydup=window.slotbydup || []).push({
id: '3577897',
container: s,
size: '300,450',
display: 'inlay-fix'
热门资源下载

我要回帖

更多关于 王者荣耀pc版配置要求 的文章

 

随机推荐