Показать сообщение отдельно
Старый 26.12.2006, 09:56   #9  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от mazzy Посмотреть сообщение
А что говорит?
Не получается ли так, что новый код совпадает с уже существующим?
Цитата:
Сообщение от Lemming Посмотреть сообщение
Аесли сразу после вызова inventTable.renamePrimaryKey(); добавить info(inventTable.ItemId) и посмотреть что выдает, еще до закрытия транзакции? Просто ItemId входит в кластерный индекс таблицы InventTable ItemIdx и в свое время были похожие проблемы с апдейтом полей входящих в кластерный индекс.
Извиняюсь за молчание, заболел.

Новый код отличается от страрого:

PHP код:
static void reNameItemId(Args _args)
{
    
InventTable inventTable;
    ;

    
ttsbegin;
    
select forupdate inventTable;
    
inventTable.ItemId substr(inventTable.ItemId,9);
    
info(strFmt("ItemId after conversion %1"inventTable.ItemId));
    
inventTable.renamePrimaryKey();
    
info(strFmt("ItemId after call renamePrimaryKey() %1"inventTable.ItemId));
    
ttscommit;

На выходе дает:
PHP код:
ItemId after conversion 0000001
ItemId after call renamePrimaryKey
() 000000001 
ItemId входит в кластерный индекс.. попробую отключить и повторить операцию.