Помогите cкопировать запись
Добавлено: 20 мар 2007, 20:24
Хочу скопировать запись в таблице, например KatSopr, со всеми полями. Есть ли возможность как-нибудь сделать копию всей записи не присваивая все поля таблицы KatSopr при insert???
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
http://gal.tyumbit.ru/
Код: Выделить всё
Работа с таблицами
Для работы с текущей записью таблицы можно использовать выражение вида:
<имя таблицы>".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); // правильно
...
Поля структуры, соответствующие полям, которые отсутствуют в текущей выборке, становятся невалидными. Если производится присвоение значения структуры текущей записи в таблице, то реально производится присвоение только тем полям таблицы, для которых соответствующие поля структуры валидны.
Структуры могут передаваться в процедуры и функции как параметры. Передача структур возможна как по значению, так и по ссылке. Допустимо возвращать структуры как результат функции. Допустимо передавать структуры как параметры интерфейсов.