精华内容
下载资源
问答
  • VBrecordset的用法

    2012-10-04 10:41:05
    VBrecordset的用法,很全,很不错
  • http://www.microsoft.com/china/MSDN/library/data/dataAccess/USdnhcvb04vb04h4.mspx?mfr=trueDim RecordSet_Test As ADODB.RecordsetSet RecordSet_Test = New ADODB.RecordsetRecordSet_Test.CursorLocation =

    http://www.microsoft.com/china/MSDN/library/data/dataAccess/USdnhcvb04vb04h4.mspx?mfr=true

    Dim RecordSet_Test As ADODB.Recordset
    Set RecordSet_Test = New ADODB.Recordset
    RecordSet_Test.CursorLocation = 3 'adUseClient
    RecordSet_Test.CursorType = 3 'adStatic
    RecordSet_Test.LockType = adLockBatchOptimistic
    'Add a few fields
    With RecordSet_Test.Fields
       .Append "LastName", adVarChar, 40, adFldIsNullable
       .Append "FirstName", adVarChar, 40, adFldIsNullable
       .Append "HireDate", adDate
    End With
    RecordSet_Test.Open 

    展开全文
  • VB Recordset 对象

    2008-07-08 12:01:00
    Recordset 对象代表一个表的记录集或者命令执行的结果,在记录集中,总是有一个当前的记录。记录集是ADO 管理数据的基本对象,所有的Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record )...

     

    Recordset 对象代表一个表的记录集或者命令执行的结果,在记录集中,总是有一个当前的记录。记录集是ADO 管理数据的基本对象,所有的Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record ) ,每一列对应一个域(Field )。Recordset 对象也通过游标对记录进行访问,在ADo 中,游标分四不中:
    a .静态游标。提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等等,但其他用户所做的操作反映不出来。
    b .动态游标。允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作也可以直接反映出来。
    c .前向游标。允许各种前向移动操作,不能向后移动,并且其他用户所做的操作也可以直接反映出来。
    d .键集(keyset )游标。类似于动态游标,也能够看到其他用户所作的数据修改,但不能看到其它用户新加的记录,也不能访问其他用户删除的记录。
    ADO 中定义了四种不同的游标类型:
    动态游标 — 用于查看其他用户所作的添加、更改和删除;用于 Recordset(不依赖于书签)中的所有移动类型;如果提供者支持,还可用于书签。
    键集游标 — 其行为类似动态游标,不同的只是它禁止查看其他用户添加的记录,并且禁止访问其他用户删除的记录。其他用户所作的数据更改依然可见。它始终支持书签,因此允许 Recordset 中的所有移动类型。
    静态游标 — 提供记录集的静态副本,可用来查找数据或生成报告;它始终支持书签,因此允许 Recordset 中的所有移动类型。其他用户所作的添加、更改或删除将不可见。当打开客户端 Recordset 对象时,这是唯一允许的游标类型。
    仅向前游标 — 只允许在 Recordset 中向前滚动。其他用户所作的添加、更改或删除将不可见。当只需要对 Recordset 进行一次传递时,可以提高性能。
    针对本 CursorType 的 Recordset
    对于所有这些常量,Supports 方法必须返回 True
    adOpenForwardOnly
    adOpenKeyset
    adBookmark、adHoldRecords、adMovePrevious 和 adResync
    adOpenDynamic
    adMovePrevious
    adOpenStatic
    adBookmark、adHoldRecords、adMovePrevious 和 adResync
    指定在编辑过程中记录上的锁定类型。
    常量
    说明
    adLockBatchOptimistic
    4
    指示开放式批更新。需要批更新模式。
    adLockOptimistic
    3
    指示逐个记录开放式锁定。提供者使用开放式锁定,仅在调用 Update 方法时锁定记录。
    adLockPessimistic
    2
    指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之后立即在数据源锁定记录。
    adLockReadOnly
    1
    指示只读记录。无法改变数据。
    adLockUnspecified
    -1
    未指定锁定类型。创建副本时,副本与源对象使用相同的锁定类型。
    游标服务是数据访问的重要内容,在第二部分介绍Recordset 对象时,我们说明了游标的四种类型,在Recordset 对象还有一个属性CursorLocation 用于指定游标的位置,我们可以指定使用客户端的游标,也可以指定使用服务器端游标。CursorLocation 属性的缺省值为adUseserver ,使用服务器端游标的好处是,程序对数据库的修改可以立即反映到服务器,而且,其他用户对数据库的操作也可以马上反映出来,但使用服务器端游标带来了高网络流量,每一个数据访问都需要通过网络交换数据。 ADO 提供了客户端数据缓存处理,因此,在打开Recordset 对象前,可以设置CursorLocation 为adUseClient ,指定使用客户端游标。通过客户端游标,ADO 利用本地数据缓存以降低网络流量,虽然在数据访问灵活性上有所损失,但却大大提高了通过网络访问数据库的性能。
    批修改处理。 我们知道Recordset 对象的update 方法用于修改当前记录,而updateBatch 方法则用于递交所有对当前记录集的增、删、改操作。把Recordset 对象的LockTyPe 属性设置为adLockBatchoptimistic ,则updateBatch 方法有效,当然,不同的oLE DB 提供者可能还会有不同的要求,比如,sQL server 提供者也要求游标类型为键集游标或静态游标。UpdateBatch 方法可以一次把客户端所有的修改传送到数据库中,相对应地,也可以调用CancelBatch 方法取消所有的修改操作
    说一下Recordset 对象的属性 1、CursorType 属性 AdOpenForwardOnly: 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。(顾名思义,这种游标只能向前移动。然而,由于这种游标功能有限,将它用于系统资源时是非常有效的。) AdOpenKeyset: 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。(KeySet游标允许你看见自它创建起其他用户所做的修改,然而你却不能看到其他用户增加或删除的记录。) AdOpenDynamic :动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。(此类型的游标功能强大同时也是耗费系统资源最多的游标。Dynamic游标可以看到他们保存记录集合的所有变化。使用Dynamic游标的用户可以看到其他用户所做的编辑、增加、删除。如果数据提供者允许这种类型的游标,那么它是通过每隔一段时间从数据源重取数据来支持这种可视性的。毫无疑问这会需要很多的资源。) AdOpenStatic:静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。(Static类游标只是数据的一幅快照。这就是说,它无法看到自它创建以后其他用户对RecordSet所做的修改。采用这类游标你可以向前和向后航行。由于其功能简单,资源的需求比Dynamic要小! ) 需要注意的是:一旦打开RecordSet,你就无法改变CursorType属性。但是,如果你首先关闭RecordSet,改变CursorType属性,然后重新打开RecordSet,那么你仍可以有效地改变游标的类型!
    2、LockType 属性 在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时,数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当一个用户编辑时,如何由他对记录进行锁定。这就是由LockType属性所决定的。这个属性有四个值: adLockReadonly:默认值,只读。无法更改数据。(这是RecodSet的默认值,如果你把锁定的方式设为该值,那么你将不能更新 Recordset。) adLockPessimistic:保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。(如果设置为此类锁定,记录被锁定,且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问! ) adLockOptimistic:开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。(只有在将数据提交给数据提供者的那一瞬间才把记录锁定。) adlockBatchOptimistic:开放式批更新。用于与立即更新模式相反的批更新模式。(设定为这种类型的锁定制式将被称为批量更新模式的RecordSet。 可以加快更新RecordSet修改数据的速度,但因为同时更新多个记录,它也会恶化与并发访问相关的问题!)
    展开全文
  • VB Recordset 的用法

    2017-07-25 23:27:06
    我对同一个access的数据库文件 创建了两个不同名称的Recordset对象 rs.open strsql path 3 4 rs2.open strsql path 3 4 但是只有rs有内容 rs2没有内容 这是为什么
  • VBRecordset的clone方法

    2019-10-06 16:20:41
    在用vb的时候,发现了个奇怪的问题,见下面代码,在生成Recordset的过程中,调用了recordset的clone方法,clone后沒有做任何操作,及時跟踪的过程中发现clone前的原recordset對象rectemp的recordcount是26,但是但...
    在用vb的时候,发现了个奇怪的问题,见下面代码,在生成Recordset的过程中,调用了recordset的clone方法,clone后沒有做任何操作,及時跟踪的过程中发现clone前的原recordset對象rectemp的recordcount是26,但是但调用Recordset的clone方法后,居然发现clone后新的複製本rectempcopy 比rectemp多了一倍的记录。郁闷,难道clone了还多出一倍?查询msdn,上面这么描述,

    Use the Clone method to create multiple, duplicate Recordset objects, particularly if you want to be able to maintain more than one current record in a given set of records. Using the Clone method is more efficient than creating and opening a new Recordset object with the same definition as the original.
    The current record of a newly created clone is set to the first record.
    我也不知道是怎么回事情?郁闷。查閲了一下msdn:
    Changes you make to one Recordset object are visible in all of its clones regardless of cursor type. However, once you execute Requery on the original Recordset, the clones will no longer be synchronized to the original.

    Closing the original Recordset does not close its copies; nor does closing a copy close the original or any of the other copies.

    You can only clone a Recordset object that supports bookmarks. Bookmark values are interchangeable; that is, a bookmark reference from one Recordset object refers to the same record in any of its clones.

    再次查閲了clone原理之後,引用了博客園天伤之梦的一段話描述clone获取浅表副本就是把这本书直接接给读者,获取深层副本就是把这本书留着(或者销毁),抄写一份给读者()。

    C#中dataset的copy方法是深copy,clone方法只是淺clone而已
    代码:
    Dim objPrv As Object 'SYSRRVB.clsPPrv
    Dim objRectemp As New ADODB.Recordset
    Dim objRectempcopy, Rectempcopy1 As New ADODB.Recordset
    Dim strtemp
    Set objPrv = CreateObject("'SYSRRVB.clsPPrv")
    If Me.chkDep.Value = 1 Then
        Set objRectemp = m_Buffer.Records(CLng(Mid(Trim$(Me.trvOrg.SelectedItem.Key), 2, 1)))
        Set objRectempcopy= objRectemp .Clone
        Set Rectempcopy1 = objRectemp
    ******
    end if
    clone的方法原理倒查閲了不少,但一直不知道爲什麽clone對象double原來的一倍?,而且增加的和原來的對象還不完全相同。?

    转载于:https://www.cnblogs.com/PeterWang/archive/2004/11/04/60596.html

    展开全文
  • vbrecordset的用法

    2011-10-14 09:52:48
    Set Rs =Server.CreateObject("ADODB.Recordset") Rs.Open Source, ActiveConnection, CursorType, LockType, Options 参数 Source 选择性参数: 此 Varian

    Set Rs =Server.CreateObject("ADODB.Recordset")
    Rs.Open Source, ActiveConnection, CursorType, LockType, Options
    参数
    Source 选择性参数:
    此 Variant 是为一个有效的Command 对象变量名称、SQL 陈述式、数据表名称、已存的过程调用,或是一个保存的 Recordset 的檔名。
    ActiveConnection 选择性参数:
    不是 Variant 得到一个有效的Connection 对象变量名称,就是 String 包含 ConnectionString 参数。
    CursorType 选择性参数:
    此CursorTypeEnum 值决定提供者在开启 Recordset 时应使用的指标类型。其可以是下列其中一种常数。

    常数说明
    adOpenForwardOnly:开启一个顺向数据指针。(预设)
    AdOpenKeyset:开启一个索引键集 (keyset-type) 数据指针。
    AdOpenDynamic:开启一个动态数据指针。
    AdOpenStatic:开启一个静态数据指针。
    LockType 选择性参数:
    此LockTypeEnum 值决定提供者在开启 Recordset 时应使用何种锁定 (同时性)。其可以是下列其中一种常数。

    常数说明
    adLockReadOnly:只读,数据无法变更。(预设)
    AdLockPessimistic:悲观锁定,提供者会进行必要的动作以确保能顺利编辑数据录,其方法通常是在编辑时立即在数据源处锁定数据录。
    AdLockOptimistic:乐观锁定,提供者使用乐观性锁定,当您呼叫 Update 方法时,仅锁定数据录。
    AdLockBatchOptimistic:乐观批次更新,此为批次更新模式所需,与实时更新模式相反。

    Options 选择性参数:
    一个 Long 值,表示提供者在Source 自变量代表 Command 对象以外的东西时应如何评估它,否则 Recordset 应从前次储存的档案还原。它可以是下列其中一种常数。

    常数说明
    adCmdText:提供者会将 Source 评估为指令的文字定义。
    AdCmdTable:ADO 会产生一个 SQL 查询,从 Source 中指定的数据表传回所有数据列。
    AdCmdTableDirect:提供者会从 Source 中指定的数据表传回所有数据列。
    AdCmdStoredProc:提供者会将 Source 评估为一个预存程序。
    AdCmdUnknown:Source 自变量中未知的指令类型。
    AdCommandFile:保留的 (已储存的) Recordset 会从 Source 中指定的档案还原。
    AdExecuteAsync:Source 作异步执行。
    AdFetchAsync:表示在 CacheSize 属性中指定的初始数量被抓取后,剩下的数据列就会被异步地抓取。


    应用函数
    RecordSet.BOF           判断指标是否超过最前面
    RecordSet.EOF            判断指标是否超过最后面
    RecordSet.MoveFirst       将数据录指针移至第一笔
    RecordSet.MoveLast       将数据录指针移至最后一笔
    RecordSet.MoveNext       将数据指针往后移一笔
    RecordSet.MovePrevious       将数据指针往前移一笔
    RecordSet.Fields.Count       传回Recordset中的字段数
    RecordSet(i).Name            传回Recordset中第i个字段的名称
    RecordSet.RecordCount       传回Recordset中资料录的笔数
    RecordSet("字段名称")       传回指定字段名称的数据内容
    RecordSet(i)                  传回RecordSet中的第i个字段数据
    RecordSet.Fields(i).DefinedSize            传回RecordSet中的第i个字段数据域位长度
    RecordSet.Fields(i).Type            传回RecordSet中的第i个字段数据域位数据型别
    RecordSet.BookMark            传回设定的书签以储存现在纪录的位置。RecordSet.AbsolutePostition 将指标移至RecordSet中的某一笔数据上
    RecordSet.PageSize            设定每页显示的资料笔数
    RecordSet.PageCount            传回分页后的总页数
    RecordSet.AbsolutePage            传回目前所在的页数
    RecordSet.AddNew            新增数据至数据表中
    RecordSet.Update            更新目前这笔资料
    RecordSet.Delete            删除目前这笔资料
    RecordSet.Find            寻找数据值
    RecordSet.GetRows            可将Recordset中的数据储存至数组中
    RecordSet.Sort            可将Recordset中的数据排序

     


    展开全文
  • vb用xml传输recordset

    2015-07-18 15:03:01
    ‘发送端 。。。。。。。。。。。。。。。。。。。。。。。 ... Set xrs = New ADODB.Recordset  xrs.Open XMLDoc 。。。。。。。。。。。。。。。。。。。。。。。。。。
  • VB6 RecordSet与XML转换

    千次阅读 2013-08-09 12:50:19
    Public Function SaveRSToXML(ByVal ConnectionString As String, ByVal strSQL As String) As String Dim oCn As New ADODB.Connection Dim oRs As New ADODB.Recordset Dim oStream As New ADODB.Stre
  • VB Recordset 对象(转)

    2009-08-18 17:46:00
    Recordset 对象代表一个表的记录集或者命令执行的结果,在记录集中,总是有一个当前的记录。记录集是ADO 管理数据的基本对象,所有的Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record )...
  • Private Sub Form_Load() Dim RS As ADODB.Recordset Set RS = GetExcelRs(App.Path & "\book1.xls") MsgBox RS.RecordCount MsgBox RS(0) RS(0)
  • VB6--RECORDSET游标类型

    2014-12-16 14:30:06
    rs.Open sql,conn,1,3和rs.Open sql,...0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark  1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中
  • VB ADODB中的RecordSet.Open打开记录的两个参数adOpenKeyset、adLockBatchOptimistic的详细说明: 这两个参数当时弄明白,过后又忘记了,做了笔记,但为了方便,还是在Blog中也做上这个笔记。   缺省值1 ...
  • '**************************************' 过程名: Recordset2Excel' 描 述:使用ADO Recordset对象把记录导入到Excel文件中'' 输 入:ADO Recordset''****************************************Public Sub ...
  • vb中执行查询后,一般要判断是否为空,只要执行的查询执行了select,都可以用rs.eof 或者 rs.recordcount来判断, 但是,如果执行的sql中加了逻辑判断,导致没有执行任何select语句,则用rs.eof 或者rs.crcordcount...
  • vb 使用ADODB.Recordset 查询数据问题

    千次阅读 2011-10-26 10:05:47
    一个普通的数据库查询, 表A 和 表B sql = “SELECT A.ID,A.NAME,B.NUM FROM A LEFT JOIN (SELECT B.ID,B.SUM(NUM) NUM FROM B GROUP BY B.ID) B ON A.ID=B...dim rs as ADODB.Recordset rs.Open sql, publicobj.ado
  • 需要在object设置中参数...然后定义object对象型recordset参数 Dim objRst As Object Dim conn As Object Set conn = New ADODB.Connection Set objRst = New ADODB.Recordset 在objRst.open前设置客户端指针: ...
  • vb中用ado对象Recordset来绑定到DataGrid的常见问题分析 2014年03月14日 ⁄ 综合 ⁄ 共 2412字 ⁄ 字号 小 中 大 ⁄ 评论关闭 - 先看正常代码: Dim con As New ADODB.Connection '定义...
  • 读取Excel文件并返还数据集RecordSet 该方法适用于.xls,.xlsx类型的文件 读取Excel文件的Function: 1 '取得数据集 2 Function getRecordSetForExcels(sFilePath As String, _ 3 sTable...
  • vb listview分页显示,打印recordset

    千次阅读 2007-04-17 10:19:00
    把执行SQL语句后得到的记录集逐条(含字段名)显示在LISTVIEW控件中----------------------------------------------------------------Public Sub ListUpdate(ByRef rs As Recordset, ByRef lv As ListView) Dim ...
  • VB 6.0 下经常用到 ADODB.Record ,用于获取查询结果(select查询、存储过程返回的查询结果集 等) 其中,select查询一般不会有什么问题,但是 返回存储过程中的查询结果集却容易出问题。特别是 VB6.0 + SQL2000 的...
  • 网络上很多文章都是如下回答下列问题的: rs.MoveLast rs.MoveFirst Tmax = rs.RecordCount 'Tmax表示要取得的记录总数变量 然而,我却在我自己的程序中...需要在打开RecordSet之前,加入如下语句 rs.CursorLoca...
  • VB ADODB中的RecordSet.Open的参数

    千次阅读 2013-09-14 11:34:30
    这三天做机房收费有个问题一直没解决、就是数据库插入数据、插入不进去、但是就不报错、最后师傅给我看了看、终于发现了问题 把adLockOptimistic写成了adLockBatchOptimistic、因为没语法错误所以没报错、随后我查...
  • vb数据库编程(一)--记录集Recordset

    千次阅读 2011-04-05 15:53:00
    转自SOHU博客VB菜鸟堂

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 527
精华内容 210
关键字:

recordsetvb