Страница 1 из 1

Добавлено: 26 Июнь 2004, 9:47
Гость
Как можно скопировать определённую запись из одного файла данных в другой, при этом удалив её из первоисточника?????

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

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

Добавлено: 29 Июнь 2004, 7:44
Гость
Фр> 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)

Добавлено: 29 Июнь 2004, 7:47
Гость
поправочка!!
не next(SrcFile.Key)

а next(SrcFile)

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