我用Delphi语言在代码中创建了一个TClientDataSet和TDataSetProvider,并从一个TUniQuery (Devart UniDAC)加载数据。在设置dataset提供程序和clientdataset的属性之后,我尝试打开clientdataset并获得运行时异常:"Missing data provider or data packet“。
我不确定为什么会发生这种情况,如果有人能指出到底哪里出了问题,我会很高兴的。
这是我的代码:
//uq is a TUniQuery correctly set to an active TUniConnection
cdsFirstNames := TClientDataSet.Create(nil);
dspFirstNames := TDataSetProvider.Create(nil);
try
uq.SQL.Text := 'SELECT * FROM firstnames;';
uq.Prepared := True;
// uq.Open;
dspFirstNames.Name := 'dspFirstNames';
dspFirstNames.DataSet := uq;
cdsFirstNames.ProviderName := 'dspFirstNames';
cdsFirstNames.Open; // <--- Exception occurs here!
uq.Close;
showmessage(IntToStr(cdsFirstNames.RecordCount));发布于 2015-05-01 23:21:58
如果DatasetProvider没有所有者,则ClientDataSet无法获取对提供程序的引用。
所以请使用
...Create(Self); 而不是
...Create(nil);https://stackoverflow.com/questions/29987104
复制相似问题