Записи БД

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Как можно скопировать определённую запись из одного файла данных в другой, при этом удалив её из первоисточника?????

P.S. Если БД включает более 60 полей, неужели нужно вручную присваивать поля?? Может есть другая тропа???
Написал: Sergey(111)
Гость

Сообщение Гость »

Не совсем понятно, точнее совсем не. Почему не подходит рабоче-крестьянский вариант:
SrcFile.KeyField=...
GET(SrcFile.Key,SrcFile.Key)
DestFile.F1=SrcFile.F1
! присваиваем остальные поля
ADD(DestFile)
DELETE(SrcFile)
Гость

Сообщение Гость »

Фр> SrcFile.KeyField=...
Фр> GET(SrcFile.Key,SrcFile.Key)
^^^^^^^^^^^ так не пойдет!! RTFM Тут должен быть pointer(SrcFile.Key)

вот так можно:
GET(SrcFile,SrcFile.Key)
if errorcode() <> NoRecErr
...
или так:
set(SrcFile.Key,SrcFile.Key)
next(SrcFile.Key)
if ~errorcode() and SrcFile.KeyField = ...

Фр> DestFile.F1=SrcFile.F1
Фр> ! присваиваем остальные поля
Фр> ADD(DestFile)
Фр> DELETE(SrcFile)
Гость

Сообщение Гость »

поправочка!!
не next(SrcFile.Key)

а next(SrcFile)
Гость

Сообщение Гость »

Если структуры RECORD одинаковые у обеих файлов, тогда, чтобы не
писать присвоение всех полей можно так FILE2:Record = FILE1:Record.
Если нужно привоить зачения полей с одинаковыми именами,
тогда FILE2:Record :=: FILE1:Record, а дальше что хотите.
С уважением, Сергей Углик
Ответить