【问题标题】:Use ADODB Recordset to INSERT Oracle DB使用 ADODB 记录集插入 Oracle DB
【发布时间】:2018-01-30 16:20:17
【问题描述】:

我正在转换一些将 DAO 记录集上传到 Access 数据库的 Excel-VBA 代码。我的新代码使用 ADODB 对象,需要将数据推送到 Oracle 12c。

我查看了一些文章,并在此处找到了一个方便的等效图表:From-DAO-to-ADO。使用这些信息,我创建了以下代码。

第一个位只是加载源记录集。这里没有问题,但如果相关,请发布:

Dim CN As New ADODB.Connection, RS As New ADODB.Recordset
Dim SRC_CN As New ADODB.Connection, SRC_RS As New ADODB.Recordset, SRC_CMD As New ADODB.Command
strSQL = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Src_WB_nm & _
        ";Extended Properties='Excel 12.0 Xml;HDR=NO';"
SRC_CN.Open strSQL
Set SRC_CMD.ActiveConnection = SRC_CN
SRC_CMD.CommandType = adCmdText
SRC_RS.Close
Set SRC_RS = Nothing
strSQL = "SELECT * FROM [" & TableNm & "]"
SRC_CMD.CommandText = strSQL
With SRC_RS
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .LockType = adLockOptimistic
    .Open SRC_CMD
End With

在此段中,我打开目标连接并尝试打开目标记录集。当我在 DAO 中时,这种方法(AddNew、RS...value = RS.value、RS.Update...)有效。我预计它可能需要进行一些修改,但它是我现在无法通过的 RS.Open 命令。

CN.Open CSTRG
strSQL = "DELETE FROM DFSTOOL.C_QUERYLIST"
Set RS = CN.Execute(strSQL)
Set RS = Nothing
RS.Open "DFSTOOL.C_QUERYLIST", CN, adCmdTable
Do Until SRC_RS.EOF
    RS.AddNew
    RS.Fields(0).Value = SRC_RS.Fields(0).Value
    RS.Update
    SRC_RS.MoveNext
Loop
RS.Close
SRC_RS.Close
Set RS = Nothing
Set SRC_RS = Nothing

抛出的错误是:

感谢您提供的任何帮助!

【问题讨论】:

    标签: oracle excel adodb vba


    【解决方案1】:

    很高兴这是一个简单的语法问题。也许我应该删除该帖子,但我会暂时保留它,以防它对其他人有所帮助。我引用的等效表指出“adCmdTable”是 ADO 中的一个选项,而等效的“dbOpenTable”是 DAO 中的一个类型。因此,我需要跳过一些字段,以便它位于正确的位置。随后进行了其他微调,最终迭代按预期工作:

    RS.Open "DFSTOOL.C_QUERYLIST", CN, adOpenForwardOnly, adLockOptimistic, adCmdTable
    Do Until SRC_RS.EOF
        RS.AddNew
        RS.Fields(1).Value = SRC_RS.Fields(0).Value
        RS.Update
        SRC_RS.MoveNext
    Loop
    

    感谢社区的耐心等待!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多