Вызов хранимой процедуры
20.08.2010
12:26
#1
"Всем, здравствуйте!!!
Помогите разобраться, пытаюсь из внешней обработки (платформа 1С:Бухгалтерия 8.1) вызвать хранимую процедуру (MS SQL Server 2008). При попытке обратиться к результатам выдает ошибку, что объект закрыт. Пробовал вызывать без параметров (т.к. есть значения по умолчанию) - такая же проблема. Просматривал в дебагере свойства объекта RecordSet - есть поля со значением "Ошибка чтения". Запросы выполняю без проблем, а с хронимкой возникли проблемы. Помогите.
Параметры хранимки следующие:
ALTER PROCEDURE [dbo].[CR_Buh_Block_Otchet]
(
@us int = 1,
@login nvarchar(50) = 'SERVER\sasha5',
@serviceDate DateTime='01.01.2010',
@registerType int = -1, -- "0" - регистр "Рассчитанные услуги", "1" - регистр "Бухгалтерские документы"
@dateList varchar(max)='13.05.2010'
Вызов хранимки делаю так:
RecordSet = Новый COMОбъект("ADODB.RecordSet");
Command.ActiveConnection = Connection;
Command.CommandText = "CR_Buh_Block_Otchet";
Command.CommandType = 4;
adInteger = 3;
adVarChar = 200;
adDate = 7;
adParamInput = 1;
Param1 = Command.CreateParameter("@us", adInteger, adParamInput, 4, 1);
Command.Parameters.Append(Param1);
Param2 = Command.CreateParameter("@login", adVarChar, adParamInput, 50, "SMOLENSK\polyak_gg");
Command.Parameters.Append(Param2);
Param3 = Command.CreateParameter("@serviceDate", adDate, adParamInput, 4, "01.01.2010"); Command.Parameters.Append(Param3);
Param4 = Command.CreateParameter("@registerType", adInteger, adParamInput, 4, 1);
Command.Parameters.Append(Param4);
Param5 = Command.CreateParameter("@dateList", adVarChar, adParamInput, 500, "20100513");
Command.Parameters.Append(Param5);
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
счетчик = счетчик + 1;
Сообщить(счетчик );
RecordSet.MoveNext();
КонецЦикла;
Спасибо за помощь."
Помогите разобраться, пытаюсь из внешней обработки (платформа 1С:Бухгалтерия 8.1) вызвать хранимую процедуру (MS SQL Server 2008). При попытке обратиться к результатам выдает ошибку, что объект закрыт. Пробовал вызывать без параметров (т.к. есть значения по умолчанию) - такая же проблема. Просматривал в дебагере свойства объекта RecordSet - есть поля со значением "Ошибка чтения". Запросы выполняю без проблем, а с хронимкой возникли проблемы. Помогите.
Параметры хранимки следующие:
ALTER PROCEDURE [dbo].[CR_Buh_Block_Otchet]
(
@us int = 1,
@login nvarchar(50) = 'SERVER\sasha5',
@serviceDate DateTime='01.01.2010',
@registerType int = -1, -- "0" - регистр "Рассчитанные услуги", "1" - регистр "Бухгалтерские документы"
@dateList varchar(max)='13.05.2010'
Вызов хранимки делаю так:
RecordSet = Новый COMОбъект("ADODB.RecordSet");
Command.ActiveConnection = Connection;
Command.CommandText = "CR_Buh_Block_Otchet";
Command.CommandType = 4;
adInteger = 3;
adVarChar = 200;
adDate = 7;
adParamInput = 1;
Param1 = Command.CreateParameter("@us", adInteger, adParamInput, 4, 1);
Command.Parameters.Append(Param1);
Param2 = Command.CreateParameter("@login", adVarChar, adParamInput, 50, "SMOLENSK\polyak_gg");
Command.Parameters.Append(Param2);
Param3 = Command.CreateParameter("@serviceDate", adDate, adParamInput, 4, "01.01.2010"); Command.Parameters.Append(Param3);
Param4 = Command.CreateParameter("@registerType", adInteger, adParamInput, 4, 1);
Command.Parameters.Append(Param4);
Param5 = Command.CreateParameter("@dateList", adVarChar, adParamInput, 500, "20100513");
Command.Parameters.Append(Param5);
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
счетчик = счетчик + 1;
Сообщить(счетчик );
RecordSet.MoveNext();
КонецЦикла;
Спасибо за помощь."
16.03.2012
15:58
#2
"
Ошибка о соединеии в этой строке.
ActiveConnection - Определяет объект Connection, с которым связан данный объект Command. Значением этого свойства может быть и строка, содержащая ту же информацию, что и свойство ConnectionString объекта Connection. Попытка выполнить метод Execute объекта Command при незаданном свойстве ActiveConnection приведёт к ошибке. Назначение закрытого объекта Connection в качестве значения свойства ActiveConnection также вызовет ошибку (объект должен быть открыт). Закрытие объекта Connection, с которым связан объект Command, устанавливает свойство ActiveConnection в Nothing.
Поменять
на
На что ссылаются и чему равны переменные adInteger, adParamInput, adVarChar, adDate?
p.s. Я реально запаздал с ответом, но лучше fix, чем empty."
RecordSet = Command.Execute();
Ошибка о соединеии в этой строке.
ActiveConnection - Определяет объект Connection, с которым связан данный объект Command. Значением этого свойства может быть и строка, содержащая ту же информацию, что и свойство ConnectionString объекта Connection. Попытка выполнить метод Execute объекта Command при незаданном свойстве ActiveConnection приведёт к ошибке. Назначение закрытого объекта Connection в качестве значения свойства ActiveConnection также вызовет ошибку (объект должен быть открыт). Закрытие объекта Connection, с которым связан объект Command, устанавливает свойство ActiveConnection в Nothing.
Поменять
Command.ActiveConnection = Connection;
на
Command.ActiveConnection = ConnectionString;
На что ссылаются и чему равны переменные adInteger, adParamInput, adVarChar, adDate?
p.s. Я реально запаздал с ответом, но лучше fix, чем empty."
Читают тему
(гостей: 1)