Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Как добавить в таблицу БД массив COMSafeArray?


Автор: TongerenS 2.7.2009, 14:57
Добрый день господа! Скажите пожалуйста, как добавить многомерный массив ComSafeArray в поле таблицы БД с типом значения BinaryData 

Есть примерно такой код, обычное подключение через АДО


    СоединениеАДОДБ= Новый COMObject("ADODB.Connection");
    
    СоединениеАДОДБ.ConnectionString="Provider="+СКЛБДПровайдер+
    ";server="+ СКЛБДСервер+ ";Database="+СКЛБДИмяБД+
    ";uid="+СКЛБДЛогин + ";pwd="+ СКЛБДПароль;
    
    попытка
        НовоеСоединение.Open();
    исключение
        СоединениеВключено=ложь;
    КонецПопытки;
    
    ////Добавление параметров
    Param1 = СоединениеАДОДБ.CreateParameter("@TT",200,1,50,Формат(ТекущаяДата(),"ДФ=ггггММдд"));
    СоединениеАДОДБ.Parameters.Append(Param1);
    ////+
    
    STR="INSERT INTO Matters (FileName, DataSize, BinaryData) VALUES ('"+ИмяТ+".pfl',"+ДатаСайз+", @TT)";
    
    СоединениеАДОДБ.Execute(STR,128);
    СоединениеАДОДБ.Close();




Здесь параметр @TT имеет значение Дата, а вопрос: Как можно вместо него указать тот самый многомерный массив ComSafeArray?

Извиняюсь за возможно глупые вопросы, но очень необходимо это. 
Если можно пожалуйста напишите пример, как правильно было бы указать параметр.




Автор: TongerenS 3.7.2009, 08:58
Разобрался как добавлять BinaryData. Используется  "ADODB.Recordset" через Update    



 СоединениеАДОДБ= Новый COMObject("ADODB.Connection");
    
    СоединениеАДОДБ.ConnectionString="Provider="+СКЛБДПровайдер+
    ";server="+ СКЛБДСервер+ ";Database="+СКЛБДИмяБД+
    ";uid="+СКЛБДЛогин + ";pwd="+ СКЛБДПароль;
    
    попытка
        НовоеСоединение.Open();
    исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

СоединениеАДОДБ=Crystal_Admin_SEC.СоединениеADODB_Connection(База);
    RecSet=Новый COMОбъект("ADODB.Recordset");
    RecSet.Open("Select DataSize,Modified,BinaryData From Matters WHERE FileName='"+ИмяТ+".pfl'",СоединениеАДОДБ,1,3);
//3 Разрешаем Update обычно 3,1

    RecSet.Fields("Modified").Value=ТекущаяДата();
    RecSet.Fields("DataSize").Value=ДатаСайз;
    RecSet.Fields("BinaryData").Value=пData;
        
    RecSet.Update();
    RecSet.Close();
    СоединениеАДОДБ.Close();


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)