Помогите cкопировать запись
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Помогите cкопировать запись
Хочу скопировать запись в таблице, например KatSopr, со всеми полями. Есть ли возможность как-нибудь сделать копию всей записи не присваивая все поля таблицы KatSopr при insert???
Кстати вот описание из asdk
Код: Выделить всё
Работа с таблицами
Для работы с текущей записью таблицы можно использовать выражение вида:
<имя таблицы>".buffer"
(например, katos.buffer). Поле Buffer является полем структурного типа который имеет имя вида: "type$"<имя таблицы>. (например, type$katos).
Buffer - фиктивное поле и не является полем физической таблицы.
Благодаря полю buffer становится возможным присвоение текущей записи таблицы.
При этом необходимо всегда явно задавать преобразование типа.
Например,
type TMyTable = record as table mytable;
var table1 : TMyTable;
...
mytable.buffer := mykatos; // ошибка
mytable.buffer := type$mytable(mykatos); // правильно
insert current mytable;
...
также возможна обратная операция, получения текущей записи таблицы. Например,
type TMyTable = record as table mytable;
var table1 : TMyTable;
...
table1 := mytable.buffer; // ошибка
table1 := TMyTable(mytable.buffer); // правильно
...
Поля структуры, соответствующие полям, которые отсутствуют в текущей выборке, становятся невалидными. Если производится присвоение значения структуры текущей записи в таблице, то реально производится присвоение только тем полям таблицы, для которых соответствующие поля структуры валидны.
Структуры могут передаваться в процедуры и функции как параметры. Передача структур возможна как по значению, так и по ссылке. Допустимо возвращать структуры как результат функции. Допустимо передавать структуры как параметры интерфейсов.