多步OLEDB操作产生错误

时间:2017-01-18 21:14:37

标签: sql-server database vbscript

我需要在数据库中获取所有表名。 我一直以错误结束

  关闭对象时不允许

操作

我已经四处搜索并发现很多人说他们应该添加SET NOCOUNT ONSet objRecords = objRecords.NextRecordset(),这会导致错误:

  

多步ole db操作生成错误。检查每个OLE DB状态值(如果可用)。没有工作

这就是我所做的一切,我在这些错误之间转换。

我试图做的查询

SET NOCOUNT ON Use {Database} SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_CATALOG='{Database}'

我的连接字符串"Provider=SQLOLEDB; Data Source={Server}; Initial Catalog={Database}; User ID={Login}; Password={Password};"

我的SQL服务器位于Windows Server 2012上。

我收到错误的函数:

Function LoadTableData()
  Dim objSqlConnection : Set objSqlConnection = CreateObject("ADODB.Connection")
  Dim objRecords : Set objRecords = CreateObject("ADODB.RecordSet")

  objSqlConnection.Open ReplaceInfo()
  Dim ReplacedText : ReplacedText = Replace(SelectAllDatabaseTables, "{Database}", SelectedDatabase)

  objRecords.Open ReplacedText, objSqlConnection, 3, 3

  Set objRecords = objRecords.NextRecordset()
  Do While Not objRecords.EOF
    alert("Test")
    objRecords.MoveNext()
  Loop
End Function

我能看到的不应该是一个问题,但我认为它与查询有关,因为我可以SELECT * FROM {Database}没有任何问题。

1 个答案:

答案 0 :(得分:0)

我并不完全确定如何修复它但是我将USE {DATABASE}从查询中移出并在连接上执行了而不是修复了我的问题