Я пытаюсь использовать vbscript для подключения к базе данных iSeries DB2 через ADO, чтобы выполнить очень простой поиск данных, но столкнулся с парой странностей.
Если я установлю расположение курсора в соединении на стороне сервера, то процесс wscript «исчезнет» после шага 3 (см. ниже). Если я устанавливаю CursorLocation как локальный, я получаю сообщение «неопределенная ошибка» (80004005) при попытке открыть набор записей.
Если я скопирую код в VB (и внесу небольшие изменения в синтаксис), то все будет работать правильно, поэтому это не может быть разрешение на доступ к базе данных. Я пробовал извлекать данные из различных файлов, чтобы убедиться, что имя поля не является защищенным значением. Я проверил и убедился, что CCSID файла на сервере равен 65535 (что исключает необходимость перевода строки подключения). Теперь я в тупике.
У кого-нибудь есть идеи?
Код выглядит следующим образом:
msgbox "1. Started"
set currcon = getConnection()
currcon.CursorLocation = 3
msgbox "2. Connection Created"
set rcdset = getRcdSet("Select field from Library.file", currcon)
rcdset.open
msgbox "3. Recordset Open"
Moo = rcdset.fields(0)
msgbox "4. Ended"
Public Function getRcdSet(stmt, oCon)
'Basic declarations
Dim RcdSet
Set RcdSet = createobject("ADODB.Recordset")
'Create the record set
RcdSet.ActiveConnection = oCon
RcdSet.Source = stmt
'Set the return value
Set getRcdSet = RcdSet
End Function
Public Function getConnection()
'Basic connection details
Dim CurrCon
Dim ConString
'Build the connection string
ConString = "Driver={Client Access ODBC Driver (32-bit)};System=XXXXXXX;Uid="
ConString = ConString & "XXXXX"
ConString = ConString & ";Pwd="
ConString = ConString & "XXXXX"
'Create and open the connection
Set CurrCon = CreateObject("ADODB.Connection")
CurrCon.ConnectionString = ConString
CurrCon.Open
'Apply the return value
Set getConnection = CurrCon
End Function