【发布时间】:2020-06-05 02:00:15
【问题描述】:
我正在使用 Excel VBA 连接 Oracle 数据库并运行一些查询。我已经运行了一些复杂的选择查询,它工作正常。但它无法运行简单的更新查询。当我运行查询时,应用程序挂起并且查询没有执行(我检查了数据库并且没有看到任何更新)。当我使用 SQL 开发人员执行更新查询时,它运行良好。请帮忙。以下是代码 -
Sub checkupd()
strDriver = "Microsoft ODBC for Oracle"
strHost = ThisWorkbook.Sheets("Querygen").Cells(3, 17).Value
strPort = ThisWorkbook.Sheets("Querygen").Cells(4, 17).Value
strUser = ThisWorkbook.Sheets("Querygen").Cells(5, 17).Value
strPassword = ThisWorkbook.Sheets("Querygen").Cells(6, 17).Value
strSID = ThisWorkbook.Sheets("Querygen").Cells(7, 17).Value
'Connection String
strCon = strCon & "CONNECTSTRING=(DESCRIPTION="
strCon = strCon & "(ADDRESS=(PROTOCOL=TCP)"
strCon = strCon & "(HOST=" & strHost & ")(PORT=" & strPort & "))"
strCon = strCon & "(CONNECT_DATA=(SID=" & strSID & "))); "
strCon = strCon & "uid=" & strUser & ";pwd=" & strPassword & ";"
strQueryup = "UPDATE DM_RESERVE SET COL1 = 'new3'"
strQueryup = strQueryup & " WHERE PROD IN ('123','456')"
Set conn = CreateObject("ADODB.Connection")
conn.Open strCon
conn.Execute strQueryup
MsgBox ("Update Query executed")
conn.Close
Set conn = Nothing
End Sub
【问题讨论】:
-
仅供参考,我使用的是 excel 2013。我尝试过使用断点进行调试。执行语句存在一些问题。该代码在该语句之前运行顺利,当代码到达“conn.execute”语句时,excel会挂起。有人可能认为执行查询需要时间。我让它挂了 10 分钟,但数据库中仍然没有更新。