AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.07.2018, 19:59   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Передать binary поле
Нужно перекачать varbinary поле, содержащее картинку, из внешней таблицы в аксаптовскую табличку (AX2012R3)
Помогите, пожалуйста, правилько перобразовать типы.
Пишу:

X++:
    System.Data.SqlClient.SqlConnection      sqlConnection;
    System.Data.SqlClient.SqlDataReader     dataReader;
    System.Data.SqlClient.SqlCommand        command;
    str                                                               comandText;
    SqlStatementExecutePermission              permission;
    container                                                    image;
    String                                                         conStr = <myConnectionString>;

        permission.assert();
        sqlConnection = new System.Data.SqlClient.SqlConnection();
        sqlConnection.set_ConnectionString(conStr);
        command = sqlConnection.CreateCommand();
        comandText = strFmt(@"<my select statement>");
        command.set_CommandText(comandText);
        sqlConnection.Open();
        dataReader = command.ExecuteReader();
        
        if (dataReader.Read())
        {           
            image        = dataReader.GetValue(1);
.....
Все компилируется, но CIL вываливается с ошибкой:
"CIL generation: Error: .NET Cast Type Name not found. Type System.String found on the stack. This code in Class/Table: <MyClassName>, Method: <My methodName> may not work in CIL run time."

Пытаюсь изменить на:
X++:
 image        = dataReader.GetSqlBinary(1);
Но ошибка та же ...

Я понимаю, что можно через base64 , но хотелось бы именно binary данные перелить, т.е без лишних конвертаций.

Спасибо
Старый 14.07.2018, 04:15   #2  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Интересно, обе get* операции возвращают класс, а вы его в контейнер и думаете он там магическим образом сконвертируется ? GetSqlBinary возвращает класс у которого value() вернёт вам byte[] вот с ним и работайте.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Binary.string John_11 DAX: Программирование 6 27.10.2017 16:33
запись в поле Binary blackjack DAX: Программирование 1 18.01.2012 14:56
Ошибка при работе с binary в Ax2009 someOne DAX: Программирование 2 08.11.2010 10:04
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
Binary in Axapta BorDark DAX: Программирование 6 01.09.2004 19:08

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:58.