Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ClientDataSet


Автор: php5 10.12.2008, 15:20
А как для ClientDataSet выполнить действие, аналогичные нажатию в DesignTime кнопки Assign Local Data, которая появляется при правом клике мышкой на компоненте ClientDataSet?  
Мне надо копировать данные из ZQuery в ClientDataSet

Автор: Rrader 10.12.2008, 16:09
Можно посмотреть код этой формы. У меня в D2007 лежит здесь:

CodeGear\RAD Studio\5.0\source\Win32\Property Editors\CDSEdit.pas

В D7 здесь:
Borland\Delphi7\Source\Property Editors\CDSEdit.pas

Автор: php5 10.12.2008, 19:49
Что то  там  ничего  не понятно  относительно  поставленной задачи  smile 

Автор: pseud 11.12.2008, 10:46
Цитата(php5 @  10.12.2008,  19:49 Найти цитируемый пост)
Что то  там  ничего  не понятно  относительно  поставленной задачи

от чего же
например, вот нужный тебе кусок кода
Код

procedure TClientDataForm.OkBtnClick(Sender: TObject);
var
  DataSet: TDataSet;
  DSProv: TDataSetProvider;
begin
  try
    if DataSetList.ItemIndex >= 0 then
    begin
      Screen.Cursor := crHourGlass;
      try
        with DataSetList do
          DataSet := FDesigner.GetComponent(Items[ItemIndex]) as TDataSet;
        if (DataSet is TClientDataSet) then
          FDataSet.Data := TClientDataSet(DataSet).Data
        else
        begin
          DSProv := TDataSetProvider.Create(nil);
          try
            DSProv.DataSet := DataSet;
            FDataSet.Data := DSProv.Data
          finally
            DSProv.Free;
          end;
        end;
      finally
        Screen.Cursor := crDefault;
      end;
    end
    else
      FDataSet.Data := varNull;
  except
    ModalResult := mrNone;
    raise;
  end;
end;

а если разжевать, то вот:
Код

var
  DSProv: TDataSetProvider;
begin
  DSProv := TDataSetProvider.Create(nil);
  try
    DSProv.DataSet := ZQuery1;
    ClientDataSet1.Data := DSProv.Data;
  finally
    DSProv.Free;
  end;
end;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)