Регистрация Правила Главная форума Поиск |
0
- 12.09.2018 - 16:59
|
Добрый день ! подскажите, вызвать хранимую процедуру MS SQL из кода 1С 7.7 с параметрами. спасибо. | |
1
- 12.09.2018 - 17:58
|
через ADODB.Connection и ADODB.Command параметры, как вариант, можно передавать в Command.CommandText как ="exec sp_Name 'param1,param2,...'" ЗЫ поиск в гугле по сабжу выдает дополнения) | |
2
- 13.09.2018 - 13:08
|
сделал. Вот так работает из 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 | |
3
- 13.09.2018 - 18:22
| а нельзя было просто этот запрос из одной строчки выполнить с помощью 1cpp.dll ? | |
4
- 14.09.2018 - 08:45
| подскаж, а ? мне надо, чтобы именно на скуле выполнилось. в хранимке.
Отредактировано specx; 14.09.2018 в 08:47. Причина: 1 | |
![]() | Интернет-форум Краснодарского края и Краснодара |