Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Дубликат Paradox или dBase записи

Автор: Eryk Bottomley

Встречаются два администратора: (1)-Юникса, (2)-Винды
(1) - Вот, на работе скукотища - делать совсем нечего. Hикто не жалуется...
(2) - А у меня всегда работа есть - каждые полчаса систему переставляю.
(1) - Hу ни фига себе - ну ты крут. Как ты добился, чтобы винда 30 минут работала???
(2) - Да нет, это она 30 минут переставляется...

Существует ли какое-либо простое решение для Delphi-приложения, позволяющее прочесть запись из первого поля таблицы Paradox (первичный ключ) и потом обратно добавить ее в таблицу в виде новой записи?

Вот одно "кривое" решение:


procedure TForm1.Button1Click(Sender: TObject);
var
  p : CURProps;
begin
  Table2.Insert;
  DbiGetCursorProps(Table1.Handle,p);
  Move(Table1.ActiveBuffer^,Table2.ActiveBuffer^,p.iRecBufSize);
  Table2.FieldByName('ID').AsInteger := Table1.FieldByName('ID').AsInteger + 1;
  Table2.Post;
end;

...это работает на том "основании", что как Table1, так и Table2 ссылаются на один и тот же табличный файл. Вы могли бы осуществить это и с единственным TTable, если сохраните содержание в активном буфере (ActiveBuffer).

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay