2008-12-08 3 views
1

Код соединения:Преобразование строки Подключение к SQLOLEDB

set conx = Server.CreateObject("ADODB.connection") 
conx.Open Application("connectionString") 

set cmdx = server.CreateObject("ADODB.command") 
cmdx.ActiveConnection = conx 
cmdx.CommandText = "dbo.sproc" 
cmdx.CommandType = &H0004 

set rsx = Server.CreateObject("ADODB.Recordset") 
rsx.open cmdx 

resarray = rsx.getrows 

Эта строка подключения работает:

connectionString = "DRIVER=SQL Server;UID=User;Address=000.000.000.000;Network=DBMSSOCN;DATABASE=Database;SERVER=server;Password=password;" 

Это не ...

connectionString = "Provider=SQLOLEDB;Data Source=000.000.000.000;UID=User;Address=000.000.000.000;Network=DBMSSOCN;DATABASE=Database;SERVER=server;Password=password;" 

Ошибки я получаю:

ADODB.Recordset error '800a0e78' 

Operation is not allowed when the object is closed. 

Что мне не хватает?

ответ

3

Просто пунт здесь, но способ, которым драйверы OLEDB обрабатывают информацию о количестве строк, отличается от ODBC.

Я очень подозреваю, что если вы добавите SET NOCOUNT ON в верхней части хранимой процедуры, проблема исчезнет.

+0

Это сработало, спасибо! – NikolaiDante 2008-12-10 08:13:01

-1

Звучит как проблема с разрешениями в базе данных!

+0

Это та же база данных, что и другой способ ее достижения. – NikolaiDante 2008-12-08 11:23:08