Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Базы Данных

Копирование записи в пределах одной и той же таблицы
"Каким образом мне копировать запись в пределах одного и того же TTable? То есть, если я вижу текущую запись на экране и хочу ее скопировать в ту же таблицу с изменением индекса поля(ей), то какие действия мне необходимо предпринять?"

Необходимы два TTable, связанные с одной таблицей. Когда Table1 позиционируется в копируемой строке, с помощью Table2 вы можете выполнить операцию добавления записи. Пример: {только для демонстрации идеи, пример может быть нерабочим}


    procedure TForm1.Button1Click(Sender: TObject);
var
i: Cardinal ;
srcStream: TBlobStream ;
begin
try
with Table1 do
begin
CheckBrowseMode ;
if EOF or BOF then raise Exception.Create('Разместите курсор на правильной строке');
end ;
with Table2 do
begin
Append ;
for i := 0 to Table1.FieldCount - 1 do
if Table1.Fields[i].DataType < ftBytes then
FieldByName(Table1.Fields[i].FieldName).Assign(Table1.Fields[i])
else
try
srcStream := nil ;
srcStream := TBlobStream.Create(TBlobField(Table1.Fields[i]), bmRead) ;
TBlobField(FieldByName(Table1.Fields[i].FieldName)).LoadFromStream(srcStream) ;
finally
if Assigned(srcStream) then srcStream.Free ;
end ;
Post ;
end ;
except
on E: EDBEngineError do MessageDlg(E.Message, mtError, [mbOk], 0) ;
on E: Exception do MessageDlg(E.Message, mtError, [mbOk], 0) ;
end ;
end;

OAmiry/Borland

Категория: Базы Данных | Добавил: DelphiAiX (20.05.2012)
Просмотров: 1067 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]