Имя: Пароль:
1C
1С v8
Прямое обращение к sql
0 Anttonnio
 
05.08.17
00:44
Добрый вечер!

Сейчас реализую обработку, которая выполняет прямой запрос к Скулю.

Но не могу понять - как передать массив/список значений в параметр

Для одного реализовал такой код:

  Попытка
        Соединение  = Новый COMОбъект("ADODB.Connection");
        Команда     = Новый COMОбъект("ADODB.Command");
         Соединение.ConnectionString =
            "Provider=SQLOLEDB;" +
            "server="+Объект.ИмяСервераSQL+";"+
            "uid="+Объект.ПользовательSQL+";"+
            "pwd="+Объект.ПарольSQL+";"+
            "database="+Объект.БазаДанныхSQL+";";
        Соединение.ConnectionTimeout = 300;
        Соединение.CommandTimeout = 600;
        //Открытие соединение
        Соединение.Open();
        Команда.ActiveConnection   = Соединение;
        Сообщить("Успешное подключение!");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    гуид = Строка(Объект.Отбор[0].ЭлементОтбора.УникальныйИдентификатор());    
    гуид = СтрЗаменить(гуид,"-", Символы.ПС);    
    скульныйгуид = "0x" + СтрПолучитьСтроку(гуид,4) + СтрПолучитьСтроку(гуид,5) + СтрПолучитьСтроку(гуид,3) + СтрПолучитьСтроку(гуид,2) + СтрПолучитьСтроку(гуид,1);
    Для Каждого Стр из Объект.ТаблицыДляЗачистки Цикл
        Команда.CommandText = "
            | DELETE  FROM " +  Стр.НаименованиеТаблицыSQL + " WHERE " +  Стр.НаименованиеТаблицыSQL + "."+Стр.НаименованиеПоляSQL + "!=" + скульныйгуид + ?(Стр.СоставнойТип, " and " + Стр.НаименованиеТаблицыSQL + "."+СтрЗаменить(Стр.НаименованиеПоляSQL,"_RRRef","_RTRef") + "=" + Объект.RTRefРазделаОтбора ,"") ;
        Попытка
            Команда.Execute();
            
        Исключение
            Сообщить("Запись не удалена!
            |" + Команда.CommandText);
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
        
    КонецЦикла;

подскажите, пожалуйста, как вместо "скульныйгуид" передать массив и написать "в"?
1 Маленький Мук
 
05.08.17
00:58
OR
2 Diman000
 
05.08.17
02:43
IN
3 Имитация работы
 
05.08.17
02:54
inner join @Table
4 youalex
 
05.08.17
05:31
cte + delete from ... join cte on ...
Независимо от того, куда вы едете — это в гору и против ветра!