I'm optimizing my system and I'm trying to do a more dynamic form of dataset creation to do inserts, updates, delete, and even searches. I was able to get here trying to make an insert, but a DatasetProvider error occurs even though I have already directed it to the ClientDataset, and the error occurs when opening the 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;
I'm still going to optimize the code further by putting it into a function, but now I'm just trying to make it work. Could you help me with this problem? Thank you in advance.