Проблеми при отваряне на набор от записи във VB Script при свързване към DB2 чрез ADO

Опитвам се да използвам 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

person Porl    schedule 09.07.2011    source източник


Отговори (1)


Това е изстрел в тъмното, но според моя опит обикновено имах по-добри резултати с Command.

Dim cmd
Set cmd = createobject("ADODB.Command")
Set cmd.ActiveConnection = currcon
cmd.CommandText = "Select somecol from sometable"
cmd.prepared = true
Set rset = createobject("ADODB.Recordset")
rset.open cmd

Вече нямам достъп до никакви средства за тестване на това, съжалявам.

За целите на отстраняването на грешки обикновено предпочитах да използвам cscript вместо wscript, за да мога действително да отпечатам изхода си за отстраняване на грешки в конзолата.

person Dan    schedule 11.07.2011