Тема: VBS: Передача объекта из функции.
Доброго времени суток!
Пишу функцию для удобства выборки данных из базы MSSQL. Только желательно, чтобы результатом работы функции был объект с набором выбранных данных. Так вот не могу найти ни документации, ни похожих примеров.
Буду признателен за помощь. Вот то, что есть сейчас:
Function FetchDatabaseRecords(hostName, databaseName, userName, userPassword, tableName)
Dim objConnection, sqlStatement, FetchData
Set FetchDatabaseRecords = Nothing
sqlStatement = "SELECT * from " & tableName
On Error Resume Next
Set objConnection = CreateObject("ADODB.Connection")
If Err.Number <> 0 Then
msgbox "Creating ADO connection Object"
Exit Function
End If
objConnection.CommandTimeout = 3600
objConnection.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;Initial Catalog=" & databaseName & ";" & _
"Data Source=" & hostName & _
"," & userName & "," & userPassword
If Err.Number <> 0 Then
msgbox "Opening the " & DQ(databaseName) & " on " & DQ(hostName)
Exit Function
End If
Set FetchDatabaseRecords = CreateObject("ADODB.Recordset")
If Err.Number <> 0 Then
msgbox "Creating ADO recordset Object"
Exit Function
End If
FetchDatabaseRecords.Open sqlStatement, objConnection
If Err.Number <> 0 Then
msgbox "Executing SQL Statement " & DQ(sqlStatement)
Exit Function
End If
'On Error Goto 0
Set objConnection = Nothing
End Function
Вызов функции и обработка результатов (было несколько вариантов, это - последний):
Set TableData = FetchDatabaseRecords(sServerIP, sDataBaseName, sUserName, sPassWord, "dbo.computers")
If TableData Is Nothing Then
msgbox("No object passed!")
Else
While Not TableData.EOF 'Перебираем результаты
if isNull(TableData.Fields(0).Value) then' Что нибудь с ними вытворяем
msgbox("NULL")
Else
msgbox(CStr(TableData.Fields(0).Value))
end if
TableData.MoveNext' Идем к следующей записи
Wend
End If

