我正在优化我的系统,并且试图做一种更加动态的数据集创建形式来进行插入,更新,删除甚至搜索。我能够到达这里尝试插入,但是即使我已经将它定向到Clientdataset,也会发生DatasetProvider错误,并且在打开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;
我仍将通过将其放入函数中来进一步优化代码,但现在我只是想使其发挥作用。 您能帮我解决这个问题吗? 预先谢谢你。