![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGridEh и копирование [D7]
fynjy1984 © (2005-02-03 08:52:00)При копировании строки из DBGridEh по CTRL+Ins и дальнейшей вставки (SHIFT+Ins) в другое место этой же таблицы все числовые значения вставляются нормально, а строковые не вставляются (остаются пустые поля), может кто знает как поправить.
jack128 (2005-02-03 09:09:00) [1]Я руками все поля копировал:
procedure TBaseDBElementFrame.btnCopyClick(Sender: TObject);
begin
if FValidCopyBookmark then
begin
IbDataSet.FreeBookmark(FCopyBookmark);
FValidCopyBookmark := False;
end;
if not IbDataSet.Active then Exit;
FCopyBookMark := IbDataSet.GetBookmark;
FValidCopyBookmark := True;
btnPaste.Enabled := True;
end;
procedure TBaseDBElementFrame.IBDataSetBeforeClose(DataSet: TDataSet);
begin
if FValidCopyBookmark then
begin
IbDataSet.FreeBookmark(FCopyBookmark);
FValidCopyBookmark := False;
end;
end;
procedure TBaseDBElementFrame.btnPasteClick(Sender: TObject);
var
Values: array of Variant;
CurBookMark: TBookMark;
i: Integer;
begin
if FValidCopyBookmark then
begin
CurBookMark := IbDataSet.GetBookmark;
IbDataSet.DisableControls;
try
IbDataSet.GotoBookmark(FCopyBookmark);
SetLength(Values, IbDataSet.FieldCount);
for i := 0 to Length(Values) - 1 do
Values[i] := IbDataSet.Fields[i].Value;
IbDataSet.GotoBookmark(CurBookmark);
finally
IbDataSet.EnableControls;
IbDataSet.FreeBookmark(CurBookmark);
end;
if not (IbDataSet.State in dsEditModes) then
IbDataSet.Append;
for i := 0 to IbDataSet.FieldCount - 1 do
if IbDataSet.Fields[i].FieldName <> 'ID' then
IbDataSet.Fields[i].Value := Values[i];
end;
end;