2017-01-18 1 views
0

Мне нужно получить все имена таблиц в базе данных. Я все заканчивается с ошибкойОперации с несколькими шагами OLEDB сгенерировали ошибки

operation is not allowed when the object is closed

Я искал вокруг и нашел много говорят, что они должны добавить SET NOCOUNT ON или Set objRecords = objRecords.NextRecordset(), что приводит к ошибке:

multiple-step ole db operation generated errors. Check each OLE DB status value, if availabe. No Work was done

Это где я застрял что бы я ни делал, я переключаюсь между этими ошибками.

Запрос Я пытаюсь сделать

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} без каких-либо проблем.

+0

Попробуйте закомментировать эту строку: 'Set objRecords = objRecords.NextRecordset() '. Я считаю, что источник вашей операции не разрешен, когда объект закрыт. –

+0

Просто прокомментировал это и получил операцию, когда объект закрыт. – dark2222

+0

, когда вы используете SET NOCOUNT ON в запросе, что означает, что вы получаете только один набор записей и устанавливаете objRecords = objRecords.NextRecordset() закрывает текущий RS-обход закрыто – DimaSUN

ответ

0

Я не укомплектовать уверен, как это установил его, но я переместил USE {DATABASE} из запроса и выполнил его на соединение, вместо которой фиксированной мои вопросы

 Смежные вопросы

  • Нет связанных вопросов^_^