![]() |
вызвать хранимую процедуру MS SQL из кода 1С 7.7 с параметрами. Добрый день ! подскажите, вызвать хранимую процедуру MS SQL из кода 1С 7.7 с параметрами. спасибо. |
через ADODB.Connection и ADODB.Command параметры, как вариант, можно передавать в Command.CommandText как ="exec sp_Name 'param1,param2,...'" ЗЫ поиск в гугле по сабжу выдает дополнения) |
сделал. Вот так работает из 1С 7.7 : ServerName=СокрЛП(ИмяСервера);//имя или IP-адрес сервера DSN=СокрЛП(ИмяБазыДанных);//имя базы данных UID=СокрЛП(ИмяПользователя_);//логин пользователя PWD=СокрЛП(Пароль);//пароль ConnectString="Provider=SQLOLEDB;Data Source="+ServerName+";DatabaseName="+DSN+ ";Initial Catalog="+DSN+";UID="+UID+";PWD="+PWD; Соединение=CreateObject("ADODB.Connection"); Соединение.ConnectionTimeOut=600; //****Составим строку параметров соединения //**{Соединимся с базой данных Попытка Соединение.Open(ConnectString); Исключение Предупреждение("Не удалось соединиться с базой данных!"); Сообщить(ОписаниеОшибки()); Возврат ; КонецПопытки; Cmd=СоздатьОбъект("ADODB.Command"); Cmd.ActiveConnection=Соединение; Cmd.CommandTimeOut=3600; Cmd.CommandType=4;// хранимку ?? Cmd.CommandText = "[get_marks_by_doc]"; Cmd.Parameters("@nomerdoc").Value = номер_Док; Cmd.Parameters("@datadoc").Value = док.датадок; Cmd.Parameters("@typeofdoc").Value = "Spisanie"; Rs=Cmd.Execute(); если (Rs.EOF() >=0) и (Rs.BOF() >=0)тогда Пока Rs.EOF() = 0 Цикл марка=строка(Rs.Fields(0).Value); сообщить(марка); Rs.MoveNext(); конеццикла; конецесли; Соединение.Close(); вот хранимка на скуле : ALTER PROCEDURE [dbo].[get_marks_by_doc] @nomerdoc nvarchar(10), @datadoc datetime, @typeofdoc nvarchar(80) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SELECT mark from bd1 where nomerdoc=@nomerdoc and typeofdoc=@typeofdoc and datadoc=@datadoc END |
а нельзя было просто этот запрос из одной строчки выполнить с помощью 1cpp.dll ? |
[quote=USSR;45986104] а нельзя было просто этот запрос из одной строчки выполнить с помощью 1cpp.dll ? [/quote] подскаж, а ? мне надо, чтобы именно на скуле выполнилось. в хранимке. |
Текущее время: 20:56. Часовой пояс GMT +3. |