【问题标题】:Why we always need a Update immediate next to AddNew in ADO vbscript?为什么我们总是需要在 ADO vbscript 中的 AddNew 旁边立即更新?
【发布时间】:2013-01-07 18:47:19
【问题描述】:

我正在寻找关于rs.AddNew,rs.Update 的更深入的概念。为什么在 ADO vbscript 中,AddNew 旁边总是需要一个 Update

Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim cmd As New adodb.Command

cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=foo$bar00;"

cn.Open
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic

Dim fieldsArray(1) As Variant
fieldsArray(0) = "intf"
fieldsArray(1) = "charf"
Dim values(1) As Variant
values(0) = 4
values(1) = "as"
rs.AddNew fieldsArray, values
rs.Update

ADO GetString() 方法如何加快进程,我们处理的是什么概念呢?

【问题讨论】:

    标签: vbscript ado


    【解决方案1】:

    您无需在修改数据后立即更新/提交更改。初始化一组连贯的更改并推迟“真正的写入”直到系统确保所有修改都可以成功完成,这是数据库管理系统的一个重要特征。有关背景知识,请参阅 UpdateBatch,有关代码和讨论,请参阅 this answer

    添加:

    虽然我不想鼓励提出多个问题:GetString()(和GetRows())是通过“幕后”循环使信息检索变得更容易的两种方法。请参阅herehere

    【讨论】:

    • 但是每个文件都在告诉update needed after Addnew,这让我很困惑。你能用我的例子定义这两种方法,如果我们不使用update和如果我们使用会发生什么?
    • 你真的是我的carrier driver in the world of Programming。谢谢先生,我的话对你很重要。 :)
    • 从你推荐的帖子Bulk insert records into Access using Vbscript 我有一些问题(你可以把我的问题当作我的学习) - (a) 这样Case- Bob 的目的是什么?你怎么想的。 (b) 在你的代码中设置这些句子的目的是什么 - WScript.Echo "oRs.CursorLocation: ", oRs.CursorLocation,WScript.Echo "oRs.CursorType: ", oRs.CursorTypeWScript.Echo "oRs.LockType: ", oRs.LockType
    • @PythonLikeYOU -我用一个脚本比较/对比了解决一个问题的三种方法,Selects中的名字(bob,trout,eh)设置了特定的属性和代码序列,其中一些显示通过 WScript.Echo。
    • @PythonLikeYOU - 不,正如我所说:选择是为三种方法只使用一个脚本的方式(使用调试器逐步执行代码可能会有所帮助)。
    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 2020-12-03
    相关资源
    最近更新 更多