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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2005, 12:12   #1  
Kolbin_Mihail is offline
Kolbin_Mihail
Участник
 
6 / 10 (1) +
Регистрация: 18.03.2005
Добавление строк в существующую таблицу!
Всем привет!
Прошу сильно не смеьяться над вопросом! Просто я первый раз программлю в Аксапте.
Вопрос следующий: мне надо из временной таблицы (созданной мною и заполненой из Excel'я) переписать данные в таблицу ContactPerson. Делаю следующее:
PHP код:
 server static void mk_contlicaJOB(Args _args)
{
    
Mk_contlicaTBL _InTable;
    
ContactPerson _OutTable;


ttsbegin;
while 
select _InTable where _InTable.Name != ''
{
while 
select forupdate _OutTable where _OutTable.CustAccount != _InTable.AxaptaNum
                                    
&& _OutTable.Name != _InTable.Name
                                    
&& _OutTable.Phone != _InTable.Phone
{   
    
_OutTable.Name _InTable.Name;
    
_OutTable.Title _InTable.POst;
    
_OutTable.Phone _InTable.Phone;
    
_outTable.Email _InTable.Mail;
    
_OutTable.TitleGenitive _InTable.Prim;
    
_OutTable.CustAccount _InTable.AxaptaNum;

    
_OutTable.Insert();
}
}

ttscommit;


Вылетае с ошибкой: Невозможно создать запись в таблице "Контактное Лицо". Запись уже существует.

Что я делаю не так?
Старый 18.03.2005, 12:32   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Запись уже существует.
Если ты изменяешь существующую, то делай update()

С Уважением,
Георгий
Старый 18.03.2005, 12:43   #3  
BigMac is offline
BigMac
Гамбургер
Аватар для BigMac
 
266 / 16 (1) ++
Регистрация: 03.09.2004
Адрес: Москва
Из ёкслея аксапта иногда не берёт значения полей, состоящих только из цифр - такие нужно принудительно переводить в текстовый формат. Посмотрите, у вас во временную таблицу правильно переносятся данные из ёкселя? Если туда попадают пустые значения, то они и могут восприниматься как одинаковые. При импорте из ёкселя стандартными средствами именно так и происходит.
Старый 18.03.2005, 12:51   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
В цикле перед заполнением полей новой записи неплохо бы сделать:
PHP код:
_OutTable.clear();
_OutTable.initValue(); // там генерится id записи 
PS: Почитали бы Вы Best Practice Handbook, а то эти подчеркивания в начале имен внутренних переменных режут глаз...
__________________
Андрей.
Старый 18.03.2005, 12:54   #5  
Kolbin_Mihail is offline
Kolbin_Mihail
Участник
 
6 / 10 (1) +
Регистрация: 18.03.2005
2 George Nordic
Я хочу не заменить, а добавить к уже существующим записям новые. Видемо необходимо через временные переменные?!

2 BigMac: Поля вроде все текстовые. Проверил.
Старый 18.03.2005, 13:10   #6  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Тогда зачем выбираете forupdate?

PHP код:
ttsbegin;

while 
select _InTable where _InTable.Name != ''
{
   if(! 
проверка на уникальность)
        continue;
    outTable.clear();
    outTable.initValue();
    outTable.Name _InTable.Name;
    outTable.Title _InTable.POst;
    outTable.Phone _InTable.Phone;
    outTable.Email _InTable.Mail;
    outTable.TitleGenitive _InTable.Prim;
    outTable.CustAccount _InTable.AxaptaNum;
    outTable.Insert();
}

ttscommit
Старый 18.03.2005, 13:12   #7  
Kolbin_Mihail is offline
Kolbin_Mihail
Участник
 
6 / 10 (1) +
Регистрация: 18.03.2005
2 Dron AKA andy
Сделал, как вы посоветовали. Процесс запустился и повис. Уже минут 20 висит. Записей было не больше 200. Так что даже и не знаю, в чем проблема.

Насчет имен: это я из проекта другого человека копировал. Вот имена и идут с подчеркиванием. В следующий раз изправлюсь. Кстати, если ссылочку, где можно почитать советуемую вами книгу кинете - буду очень признателен.
Старый 18.03.2005, 13:44   #9  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
C:\Program Files\Navision\Clent\Bin\Dev_BPHB.chm
Она идет в стандартной поставке.

А зацикливается, естественно, из-за select`а лишнего; сделаете как Георгий советовал - будет вам щастье...
__________________
Андрей.
Старый 18.03.2005, 13:48   #10  
Kolbin_Mihail is offline
Kolbin_Mihail
Участник
 
6 / 10 (1) +
Регистрация: 18.03.2005
Спасибо за советы
Всем большое спасибо. Разобрался. Вроде заработало. Еще раз спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Добавление новых строк в SalesLine Qaz Qwerty DAX: База знаний и проекты 6 04.02.2009 17:23
Добавление нового поля в старую таблицу PavelSR DAX: Программирование 3 14.06.2006 08:22
Добавление строк в "Фильтр записей" Vby DAX: Программирование 6 05.06.2006 11:31
Добавление строк в LedgerTrans M.Ruslan DAX: Программирование 5 01.03.2005 12:13
К чему приводит добавление поля в таблицу. si DAX: Программирование 6 21.05.2002 11:54
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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