Я пытаюсь использовать 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