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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2005, 08:20   #1  
aleksys is offline
aleksys
Участник
 
51 / 10 (1) +
Регистрация: 16.11.2004
Есть таблица с ключевым полем ID, тип Integer, AutoIncrement = Yes

1 вопрос.
Добавляем несколько записей. (Например 100)
Удаляем последние (10).
В таблице остаются записи с ID от 1 до 90.
При добавлении новой записи ID начинается с 101. Можно ли сделать, чтобы ID продлджалась с 91.

2 вопрос.
Как можно использовать Copy или Transferfields для копирования записей в такой таблице?

Пробовал 2 варианта:
a)
WITH rsRecTo DO BEGIN
INIT;
COPY(rsRecFrom);
INSERT;
END;
Ошибка: 'Запись уже существует. Идентифицирующие поля и значения:
ID = ...'

б)
WITH rsRecTo DO BEGIN
INIT;
COPY(rsRecFrom);
ID := 0;
INSERT;
END;
Программа зависает.

Пробовал вместо Copy использовать Transferfields(true).
Тот же результат.

в)
Приходится перечислять все поля:
INIT;
ID := 0;
...
INSERT;
Старый 07.11.2005, 10:20   #2  
Шрэк is offline
Шрэк
Участник
Аватар для Шрэк
 
645 / 24 (2) +++
Регистрация: 09.02.2004
Адрес: Москва
Цитата:
Сообщение от Alexus
Можно ли сделать, чтобы ID продлджалась с 91.
1.

Нет, нельзя. Почему нельзя - написано в справке по этому свойству. Если только принудительно нумеровать.

2. Б.
Программа зависает потому, что неправильно построен цикл (зациклен, без выхода).
__________________
MBS Certified Master in Navision Developer
Старый 07.11.2005, 10:27   #3  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Alexus
Пробовал вместо Copy использовать Transferfields(true).
Попробуйте Transferfields(False).
Старый 07.11.2005, 12:53   #4  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
У меня работает конструкция
RecTo:=RecFrom;
recTo.Id:=0;
recTo.insert;

Какая у вас версия ?
В версии 3.7 А работа с Avtoincrenet глючит именно в вашем варианте "б". Причем проявление этого глюка происходит в зависимости от места положения поля с типом Avtoincrement.
В версии 3.7 B все нормально
Старый 07.11.2005, 19:28   #5  
e-statik is offline
e-statik
Участник
 
102 / 11 (1) +
Регистрация: 06.07.2005
1. С автоинкрементом указанные вещи лучше не делать. И, наверное, не ошибусь, если скажу, что подобные финты с автоинкрементом вообще являются плохим тоном, не важно в какой СУБД. Подобные вопросы про автоинкремент регулярно появляются в ветках про разные СУБД и ответы на них примерно одинаковы

Тут, наверное, одно из двух: либо автоинкремент был выбран неправильно, либо потребность ошибочна.
Старый 08.11.2005, 08:46   #6  
aleksys is offline
aleksys
Участник
 
51 / 10 (1) +
Регистрация: 16.11.2004
У нас версия 4.0

Решил отказаться от автоинкремента.

Спасибо за ответы.
 


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

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

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