【问题标题】:How to update a recordset如何更新记录集
【发布时间】:2012-01-27 12:07:47
【问题描述】:

这是我的代码

Dim Cn1 As ADODB.Connection
Dim iSQLStr As String
Dim field_num As Integer


Set Cn1 = New ADODB.Connection
Cn1.ConnectionString = _
    "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
    "DefaultDir=" & "C:\path\"
Cn1.Open

iSQLStr = "Select * FROM " & "file.txt" ' & " ORDER BY " & txtField.Text
field_num = CInt(1) - 1
Set Rs1 = Cn1.Execute(iSQLStr)
lstResults.Clear

While Not Rs1.EOF
    DoEvents
    Rs1.Fields(field_num).Value = "qaz"
    If IsNull(Rs1.Fields(field_num).Value) Then
        lstResults.AddItem "<null>"
    Else
        lstResults.AddItem Rs1.Fields(field_num).Value
    End If
    Rs1.MoveNext
Wend

我得到的错误在这一行

Rs1.Fields(field_num).Value = "qaz"

它说“当前记录集不支持更新”,代码有什么问题?

【问题讨论】:

  • 恐怕您无法使用文本 ODBC 驱动程序更新/删除,您需要自己解析文件。
  • 那么,我应该如何操作大文件(200 万行文本文件),就像我想在文本文件中添加行号一样。
  • 将其完全打开到内存中并拆分为行数组,或者逐行编辑,然后根据需要进行编辑
  • 我想一次编辑所有数据并且数据不断变化(更新)。无论如何使用 sql 在 vb6 中更新/编辑 csv 文件?
  • 您始终可以将文件拉入数据库并以这种方式进行操作。它可能会比其他任何东西都快。甚至 Microsoft SQL Server Express 也允许导入文件。

标签: vb6 ado


【解决方案1】:

我不确定这是否对文本文件有效,但对于 SQL Server,您需要更改 LockTypeEnum 值设置以允许编辑查看此link,默认为adLockReadOnly

编辑

根据link,无法通过 ADO 编辑文本文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    相关资源
    最近更新 更多