07.11.2005, 08:20 | #1 |
Участник
|
Есть таблица с ключевым полем 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 |
Участник
|
Цитата:
Сообщение от Alexus
Можно ли сделать, чтобы ID продлджалась с 91.
Нет, нельзя. Почему нельзя - написано в справке по этому свойству. Если только принудительно нумеровать. 2. Б. Программа зависает потому, что неправильно построен цикл (зациклен, без выхода).
__________________
MBS Certified Master in Navision Developer |
|
07.11.2005, 10:27 | #3 |
Участник
|
Цитата:
Сообщение от Alexus
Пробовал вместо Copy использовать Transferfields(true).
|
|
07.11.2005, 12:53 | #4 |
Участник
|
У меня работает конструкция
RecTo:=RecFrom; recTo.Id:=0; recTo.insert; Какая у вас версия ? В версии 3.7 А работа с Avtoincrenet глючит именно в вашем варианте "б". Причем проявление этого глюка происходит в зависимости от места положения поля с типом Avtoincrement. В версии 3.7 B все нормально |
|
07.11.2005, 19:28 | #5 |
Участник
|
1. С автоинкрементом указанные вещи лучше не делать. И, наверное, не ошибусь, если скажу, что подобные финты с автоинкрементом вообще являются плохим тоном, не важно в какой СУБД. Подобные вопросы про автоинкремент регулярно появляются в ветках про разные СУБД и ответы на них примерно одинаковы
Тут, наверное, одно из двух: либо автоинкремент был выбран неправильно, либо потребность ошибочна. |
|
08.11.2005, 08:46 | #6 |
Участник
|
У нас версия 4.0
Решил отказаться от автоинкремента. Спасибо за ответы. |
|