Привет всем!
Надо из 1с выполнить хранимую процедуру на MS SQL и получить параметр обратно, через 1срр что-то не получается...
Процедура на SQL
CREATE PROCEDURE P (@P1 Integer OUTPUT)
AS
Insert into [dbo].[Table2_2] Values (@P1)
SET @P1 = @P1 + @P1
GO
на 1с пишу так...
БД=СоздатьОбъект("ODBCDatabase");
БД.Соединение("Driver={SQL Server};Server=serv;Database=DB;Uid=U;Pwd=P;");
Если БД.ЕстьСоединение()=0 Тогда
предупреждение("Нет сединения");
КонецЕсли;
РекСет=СоздатьОбъект("ODBCRecordSet");
РекСет.УстБД(БД);
РекСет.ДобПараметр(3,4,3,0,"@P1");
РекСет.УстПараметр(1,333);
Если РекСет.Выполнить("P")=0 Тогда
Сообщить(РекСет.ПолучитьОписаниеОшибки());
КонецЕсли;
ничего на SQL не выполняет и ПолучитьОписаниеОшибки() возвращает пустую строку...
еще пишу вот так...
БД=СоздатьОбъект("ODBCDatabase");
БД.Соединение("Driver={SQL Server};Server=serv;Database=DB;Uid=U;Pwd=P;");
Если БД.ЕстьСоединение()=0 Тогда
предупреждение("Нет сединения");
КонецЕсли;
РекСет=СоздатьОбъект("ODBCRecordSet");
РекСет.УстБД(БД);
Если РекСет.Подготовить("P ?")=0 Тогда
Возврат;
КонецЕсли;
Если РекСет.ПостроитьПараметры()=1 Тогда
Возврат;
КонецЕсли;
РекСет.УстПараметр(1,333);
Если РекСет.Выполнить()=0 Тогда
Сообщить(РекСет.ПолучитьОписаниеОшибки());
КонецЕсли;
после РекСет.Выполнить() ПолучитьОписаниеОшибки() возвращает - State 07009, native 0, message [Microsoft][ODBC SQL Server Driver]Недопустимый индекс дескриптора
Подскажите плз, это я не догоняю чегото или это априори не работает?