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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.01.2014, 14:35   #1  
Kiot is offline
Kiot
Участник
 
12 / 11 (1) +
Регистрация: 25.01.2012
? Update Через ADO
Выручайте ребята, впервые не нашел примера решения моей проблемы!
Нужно проапдейтить записи напрямую в сторонней базе. Есть джоб но котором я провожу отладку кода, который должен выполнять обновление, а он не работает, точнее ругани никакой нет при выполнении кода, но тестовая запись не обновляется. Выборка для update правильная, с коннектом тоже проблем нет, по тем же параметрам соединения, получаю записи из данной БД.

Вот код из джоба:
X++:
static void test(Args _args)
{
    #PsiLogic
    #CCADO
    CCADOConnection conn;
    CCADOCommand    cmd;
    str             cs, sqlExp;
    ;

    new InteropPermission(InteropKind::ComInterop).assert();

    cs = strFmt("Provider=OraOLEDB.Oracle;Password=%1;User Id=%2;Data Source=%3",
                #Password,
                #DbName,
                #ServiceName);

    sqlExp = @"UPDATE IFOUT_T
               SET AlarmTxt = '123'
               WHERE TRXID = '5472' AND
               IFSUBSYSNAM = 'DAX'";

    if (cs)
    {
        conn = new CCADOConnection();
        try
        {
            conn.Open(cs);
        }
        catch
        {
            warning(strfmt('Соединение с базой данных %1 не установлено', #DbName));
            conn = null;
        }

        if (conn)
        {
            cmd     = new CCADOCommand();
            cmd.activeConnection(conn);

            cmd.commandText(sqlExp);
            cmd.commandType(#adCmdText);
            cmd.execute();

            conn.close();
        }
    }

    CodeAccessPermission::revertAssert();
}
Прошу прощения за несвязный текст.

Последний раз редактировалось Kiot; 09.01.2014 в 14:40.
Старый 09.01.2014, 14:53   #2  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
а у пользователя базы назначения права на это есть?
Может он ридонли только.

Там в консоли этот запрос прокатывает?
Старый 09.01.2014, 15:27   #3  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Тоже склоняюсь к проблемам с привелегиями юзера.

Ради интереса: джоб выполняется ведь на клиенте, попробуйте ему указать модификатор
X++:
server
.
За это сообщение автора поблагодарили: Kiot (1).
Старый 09.01.2014, 17:03   #4  
Kiot is offline
Kiot
Участник
 
12 / 11 (1) +
Регистрация: 25.01.2012
Спасибо за подсказки. Коннект срабатывает, до базы добираюсь(выяснил методом научного тыка - ругается если ошибаешься в названии поля), а вот правится запись или нет и что вообще приходит на сервер БД будут завтра выяснять админы Оракла)
В консоли запрос работает нормально.
Старый 10.01.2014, 08:09   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от user_ax Посмотреть сообщение
Тоже склоняюсь к проблемам с привелегиями юзера.

Ради интереса: джоб выполняется ведь на клиенте, попробуйте ему указать модификатор
X++:
server
.
Джобы всегда выполняются на клиенте. Чтобы код отработал на сервере, создайте в классе статический метод с модификатором server, либо сделайте, чтобы сам этот класс выполнялся на сервере.
Можете для проверки запустить код:
X++:
public static server void JobTest(Args _args)
{
    str test  = Session::isServer() ? "SERVER" : "CLIENT";
    ;
    
    info(test);
}
__________________
// no comments
Старый 10.01.2014, 09:35   #6  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Цитата:
Джобы всегда выполняются на клиенте.
Ну, это слишком строгое утверждение.
Джобы выполняются там, где нужно - если сделать менюИтем и указать в нем, где вызывать.
Из АОТ да, только на клиенте
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Падает клиент при записи значения поля через ADO на пакетном сервере McArrow DAX: Программирование 2 22.11.2012 11:03
fed: Net requirements update in MRP Module and Working Set of MRP Blog bot DAX Blogs 14 08.05.2012 13:09
Кеширование при UPDATE через T-SQL polygris DAX: Программирование 19 23.01.2008 13:31
Подключение к базе на Oracle через ADO miklenew DAX: Программирование 6 19.12.2007 15:41
Как управлять транзакциями через ADO? Silence DAX: Программирование 4 19.11.2007 17:00

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

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

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