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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.07.2017, 19:12   #1  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Чтение картинки из БД
Всем доброго дня. Прошу совета вот в каком вопросе. У меня есть две аксаптовских БД (4 и 12). Так уж получилось что и в той в той есть одинаковые товары, но в базе Ах4 в отдельной таблице есть картинки. Задача при нажатии кнопки в Ах12 подтягивать картинку из базы Ах4 и записывать её в базу Ах12. Где-то натыкался на подобное обсуждение, но не могу его сейчас найти.
Пробовал вот так
X++:
        loginProperty    = new LoginProperty();

        loginProperty.setServer  (systemParameters.Ax4ServerName);
        loginProperty.setDatabase(systemParameters.Ax4DatabaseName);

        odbc =  new ODBCConnection(loginProperty);

        if(odbc)
        {
            binData = new BinData();

            statement       = odbc.createStatement();

            queryText   = strfmt(<>);

            perm = new SqlStatementExecutePermission(queryText);
            
            perm.assert();

            odbc.ttsbegin();

            resultSet = statement.executeQuery(queryText);
            CodeAccessPermission::revertAssert();

            resultSet.next();

            inventItemImage = InventItemImage::findOrCreate(_inventTable.ItemId, InventItemImageFormat::FullAx, true);
            
            // но не могу из resultSet забрать картинку и положить в binData

            odbc.ttscommit();

            inventItemImage.Image = binData.getData();
            inventItemImage.update();

            _inventTable.IsImage = NoYes::Yes;
            _inventTable.update();
Может у кого-нибудь все-таки получилось из resultSet достать картинку?
Еще пробую вот так
X++:
sqlConnection = new System.Data.SqlClient.SqlConnection(strFmt("Data Source=%1;Initial Catalog=%2;Integrated Security=True",
        systemParameters.Ax4ServerName,
        systemParameters.Ax4DatabaseName));

    queryText   = strfmt(<>);

    sqlCommand    = new System.Data.SqlClient.SqlCommand(queryText, sqlConnection);

    try
    {
        sqlConnection.Open();

        sqlCommand.ExecuteNonQuery();
        
        binData = new BinData();
       
        binData.setData(sqlCommand.get_Container()); 
// вот тут ругается на что setData вызван с недопустимыми параметрами

        sqlCommand.Dispose();

        sqlConnection.Close();
        sqlConnection.Dispose();

        ttsBegin;

        inventItemImage = InventItemImage::findOrCreate(_itemId, InventItemImageFormat::FullAx, true);

        inventItemImage.Image = binData.getData();
        inventItemImage.update();

        ttsCommit;
    }
    catch
    {
        info(CLRInterop::getLastException().ToString());
        sqlConnection.Close();
    }
В этом случае я в правильном направлении иду?
Еще был вариант слинковать сервера и написать что-то вроде
X++:
update t1 set t1.Image=t2.Image
from TableWithImage t1 join [SQLAx4].Ax4.dbo.TableWithImage  t2
но мне сказали что при выполнении подобных запросов на линкованных серверах сначала требуемая таблица полностью скачается на сервер, а лишь потом из неё сделается выборка. В данном случае в таблице картинки и перекидывать её между серверами неприемлемо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод картинки, хранящейся в БД, с помощью display-метода в грид Vasiliusis DAX: Программирование 5 09.09.2016 12:04
Установка текущего SID-а в БД sukhanchik DAX: Администрирование 0 16.09.2009 07:58
Подключение АОС к новой БД AxaptaUser DAX: Администрирование 4 07.04.2008 16:09
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Создание точной копии БД для анализа ошибок Maxim Gorbunov DAX: База знаний и проекты 1 18.12.2001 15:24

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

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

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