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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2007, 14:00   #1  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Lightbulb WinAPI и работа с файлами
суть проблемы (ax3.0sp2):
метод WinAPI::copyFile копирует файл и в случае неудачи возвращает код ошибки WinAPI::getLastError(). НО все хорошо ТОЛЬКО при работе на клиенте, при вызове copyFile на сервере (серверный клас/метод) и возникновении ошибки копирования происходит следующее: CopyFileA говорит что ошибка есть, а getLastError возвращает 0 (как бы нет никакой ошибки), в результате функция WinAPI::copyFile возвращает 0 что в нашем случае обозначает "нет ошибки".
1) Возможные решения:
а) проверять кодвозврта в getLastError и в случае результата 0 - подменять на что то общее, но это малоинформативно.
б) поправить каждый метод использующий getLastError - т.е. в случае 0 возвращать свой код.
2) Интересно в каком паке это пофиксили (а может еще и не пофиксили)

есть еще идеи ??
__________________
--- SHiSHok
Старый 14.05.2007, 15:27   #2  
Мариночка is offline
Мариночка
Microsoft Dynamics
Аватар для Мариночка
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Регистрация: 31.01.2005
Адрес: Киев
1.а) а если таки нет никаких ерроров, то тогда будет выдываться какой-то другой код как-будто еррор есть?
2) я вижу, что есть в сп2 какие-то изменения в getLastError // Syp Modifications - SP2 - BEGIN, может ревертнуть ?

Возможно, что копирование происходит на сервере, а getLastError - на клиенте? в 4ке вообще эти 2 функции теперь с модификатором клиента. Но в 4ке есть метод обхода, насчет 3ки пока не видела
Старый 14.05.2007, 16:19   #3  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Цитата:
Сообщение от Мариночка Посмотреть сообщение
1.а) а если таки нет никаких ерроров, то тогда будет выдываться какой-то другой код как-будто еррор есть?
2) я вижу, что есть в сп2 какие-то изменения в getLastError // Syp Modifications - SP2 - BEGIN, может ревертнуть ?
у меня sp2. без //Syp Modifications - SP2// эта функция вообще не работала.
Вызов getLastError обычно происходит в случае неудачного исполнения какой либо функции винапи, посему не вижу смысла вызова этого метода без видимых на то причин. По крайней мере вызов getLastError в классе WinAPI (и несколько методов др. классов) происходит именно из таких соображений .
Цитата:
Сообщение от Мариночка Посмотреть сообщение
Возможно, что копирование происходит на сервере, а getLastError - на клиенте? в 4ке вообще эти 2 функции теперь с модификатором клиента. Но в 4ке есть метод обхода, насчет 3ки пока не видела
Оба метода на сервере исполняются (отладчик так показывает).
Насчет модификатора client: С точки зрения безопасности может это и правильно - клиент не получит доступа к ресурсам не имея доступ, но опять же - все в руках программиста. У меня же класс именно копирует пользователю данные, доступа к которым напрямую у него нет.
__________________
--- SHiSHok
Старый 15.05.2007, 11:31   #4  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Пока сделал так:
X++:
client server static int getLastError()
{
int     err;
    err = DLL::lastDLLError();
    return err ? err : #ERROR_FILE_OPERATION; //SHiSHok, server site call returns 0
}
ну и в WinAPI::formatMessage добавил обработку #ERROR_FILE_OPERATION
по крайней мере теперь есть реакция на ненормальное завершение файловых операций.
__________________
--- SHiSHok
Старый 14.05.2007, 15:42   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
В KR2 работает
__________________
Axapta v.3.0 sp5 kr2
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Работа с файлами Excel Arahnid DAX: Программирование 2 02.09.2007 00:06
Работа с файлами KingPeas DAX: Программирование 1 02.05.2007 15:39
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 0 28.10.2006 16:40
WinApi. Удаление файлов глючит. NJD DAX: Программирование 10 05.12.2003 13:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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