Версия для печати темы (https://pro1c.org.ua/index.php?s=669745c7ad66cb767bc1a87cd64f52ed&showtopic=63231)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Отправить данные из 1с на SQL

Автор: astonvilla 01.12.20, 16:08

Добрый день...

Вот команда, успешно отрабатывающая на SQL

DECLARE @RC int
DECLARE @cardNo varchar(28)
DECLARE @pin smallint
SET @cardNo = '77088800000000125'
SET @pin = 6666
EXECUTE @RC = dbo.p_AddPin2 @cardNo,@pin
GO

Пробовал по всякому ((

Command = Новый COMObject("ADODB.Command");
        Command.ActiveConnection = Соединение;
        Command.CommandText = СтрокаSQL;
        Результат = Command.Execute(СтрокаSQL);


и так

Command = Новый COMObject("ADODB.Command");
        Command.ActiveConnection = Соединение;
        Command.CommandType = 4;
        Результат = Command.Execute(СтрокаSQL);


и так

Command = Новый COMObject("ADODB.Command");
        Command.ActiveConnection = Соединение;
        Command.CommandType = 4;
                Command.CommandText = СтрокаSQL;
        Результат = Command.Execute();


Текст команды менял, пробовал параметры устанавливать...

Подключаюсь успешно, при выполнении EXECUTE ответ Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.

Как правильно написать процедуру? Или может есть грамотная статья с примерами? Заранее благодарен за помощь..


Автор: Vofka 01.12.20, 16:33

astonvilla, https://pro1c.org.ua/redirect.php?http://pushorigin.ru/sql/mysql-adodb пример есть. Надо параметры создавать специальным образом.

Там пример под MySQL, но под MS SQL думаю так же

Автор: astonvilla 01.12.20, 16:37

Vofka @ Сегодня, 17:33 * ,
Попробую еще по примеру из статьи, хотя прописывать параметры пробовал самым первым, получил аналогичный отлуп ))

Автор: astonvilla 04.12.20, 12:14

astonvilla @ 01.12.20, 17:37 * ,
Разобрался... Параметры в данном случае надо было передавать по другому.
Ну и, как выяснилось, ошибку еще возвращало, т.к. номер карты был несуществующий ))
Окончательно это теперь выглядит так, может кому поможет в будущем..

    
        Command = Новый COMОбъект("ADODB.Command");
    Command.CommandTimeout = 100;
    Command.ActiveConnection = Соединение;
    Command.CommandText = "p_AddPin2";
    Command.CommandType = 4;                        
    Command.Parameters("@cardNo").Value = "77088800000000125";
    Command.Parameters("@pin").Value = 1254;
        Command.Execute();

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua