Создание среды выполнения набора данных в Delphi - PullRequest
2 голосов
/ 21 июня 2020

Я оптимизирую свою систему и пытаюсь сделать более динамичную c форму создания наборов данных для вставки, обновления, удаления и даже поиска. Мне удалось попасть сюда, пытаясь сделать вставку, но возникает ошибка DatasetProvider, хотя я уже направил ее в ClientDataset, и ошибка возникает при открытии TClientDataSet:

procedure TF_Teste.Button1Click(Sender: TObject);
VAR
  sdsTemp : TSQLDataSet;
  dspTemp : TDataSetProvider;
  cdsTemp : TClientDataSet;
  dsTemp : TDataSource;
begin
  try
    //Cria o TSQLDataSet
    sdsTemp := TSQLDataSet.Create(nil);
    sdsTemp.SQLConnection := DMPrin.HYPERBD;
    sdsTemp.Close;
    sdsTemp.CommandText := 'SELECT * FROM CLIENTE';

    //Cria o TDataSetProvider
    dspTemp := TDataSetProvider.Create(nil);
    dspTemp.Name := 'dspProvider';
    dspTemp.DataSet := sdsTemp;
    dspTemp.Options := dspTemp.Options + [poAllowCommandText];
    dspTemp.Options := dspTemp.Options + [poUseQuoteChar];

    //Cria o TClientDataSet
    cdsTemp := TClientDataSet.Create(nil);
    cdsTemp.ProviderName := dspTemp.Name;

    cdsTemp.Open; //Nesse momento ocorre o erro de "Missing dataset provider ou data packet"
    cdsTemp.Append;
    cdsTemp.FieldByName('NOME').AsString := 'Teste dataset';
    cdsTemp.ApplyUpdates(0);
  finally
    FreeAndNil(sdsTemp);
    FreeAndNil(dspTemp);
    FreeAndNil(cdsTemp);
  end;
end;

Я все еще собираюсь оптимизировать код, поместив его в функцию, но теперь я просто пытаюсь заставить его работать. Не могли бы вы мне помочь с этой проблемой? Заранее спасибо.

...