Получение нового Nrec при копировании записи
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Получение нового Nrec при копировании записи
Здравствуйте!
Как можно получить новый Nrec при копировании записи в таблицу?
Сейчас я делаю так: вставляю новую пустую запись, запоминаю Nrec удаляю эту запись. Копирую нужную запись и одновременно меняю Nrec на новый. По другому можно как-нибудь? Если нет, то как можно написать функцию, которая все это бы проворачивала? То есть, как ее сделать понятно, не понятно только, как нужную таблицу передать в нее в качестве параметра. Спасибо.
Как можно получить новый Nrec при копировании записи в таблицу?
Сейчас я делаю так: вставляю новую пустую запись, запоминаю Nrec удаляю эту запись. Копирую нужную запись и одновременно меняю Nrec на новый. По другому можно как-нибудь? Если нет, то как можно написать функцию, которая все это бы проворачивала? То есть, как ее сделать понятно, не понятно только, как нужную таблицу передать в нее в качестве параметра. Спасибо.
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Допустим есть таблица Table1. В ней около 200 полей. Я встаю на определенную запись, которую мне надо скопировать изменив в ней всего одно поле. Если я делаю сразу просто Insert Current, то мне выдается ошибка, что нарушена уникальность ключа. Поэтому, я сначала создаю пустую новую запись, запоминаю nrec (nrecNew), удаляю пустую запись.. Далее встаю на нужную мне запись и делаю следующие:m0p3e писал(а):Брр...
Если ты сделал Insert Current <TableName> то ты стоишь на этой самой записи. Т.е. <TableName>.nrec и есть искомый тобой nrec.
Или я не допонял вопроса...
Insert Current Table1
set Nrec := NrecNew,
User := 'новое значение' ;
Спасибо, буду знать.. Только вот я не совсем понял. Nrec будет нулевым? Мне же его заполнить надо..sen писал(а): может речь о копировании записей, типа такого?
pushpos(#table) // запоминаем старую запись
table.nrec := 0;
insert current table; // создаем новую с теми же значениями
poppos(#table) // возвращаемся на старую запись