首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

datasnap clientdataset missing dataprovider,该怎么处理

2013-01-21 
datasnapclientdatasetmissing dataprovider本帖最后由 thumb0422 于 2013-01-12 23:29:55 编辑function G

datasnap clientdataset missing dataprovider
本帖最后由 thumb0422 于 2013-01-12 23:29:55 编辑


function GetDir(aSql:string;var cds:TClientDataSet):Boolean;
var aTempSqlDataSet:TSQLDataSet;
    aTempProvider:TDataSetProvider;
    aTempCds:TClientDataSet;
    aStream:TStream;
begin
  try
    aTempSqlDataSet:=TSQLDataSet.Create(nil);
    aTempProvider:=TProvider.Create(nil);
    aTempCds:=TClientDataSet.Create(nil);
    aTempSqlDataSet.SQLConnection:=DM.FBCON;
    aTempProvider.DataSet:=aTempSqlDataSet;
    aTempCds.Data:=aTempProvider.Data;//missing query....
    aTempSqlDataSet.Active:=False;
    aTempCds.Active:=False;
    aTempSqlDataSet.CommandText:=aSql;
    aTempSqlDataSet.Open;
    aTempCds.Open;
    aTempCds.SaveToStream(aStream);
    cds.LoadFromStream(aStream);
  finally
    FreeAndNil(aTempSqlDataSet);
    FreeAndNil(aTempProvider);
    FreeAndNil(aTempCds);
  end;


end;

即是 动态创建SQLDATASET,CLIENTDATASET 获取数据.
CLIENTDATASET 关联的DATASETPIOVIDER 怎么关联??
[解决办法]

function GetDir(aSql:string;var cds:TClientDataSet):Boolean;
var aTempSqlDataSet:TSQLDataSet;
    aTempProvider:TDataSetProvider;
    aTempCds:TClientDataSet;
begin
  try
    aTempSqlDataSet:=TSQLDataSet.Create(nil);
    aTempProvider:=TProvider.Create(nil);
    aTempCds:=TClientDataSet.Create(nil);
    aTempSqlDataSet.SQLConnection:=DM.FBCON;
    aTempProvider.DataSet:=aTempSqlDataSet;
    aTempProvider.Name:='aTempProvider';
    aTempCds.SetProvider(aTempProvider);
    aTempSqlDataSet.Active:=False;
    aTempCds.Active:=False;
    aTempSqlDataSet.CommandText:=aSql;
    aTempSqlDataSet.Open;
    aTempCds.Open;
    cds.CloneCursor(aTempCds,True,False);
  finally
    FreeAndNil(aTempSqlDataSet);
    FreeAndNil(aTempProvider);
    FreeAndNil(aTempCds);
  end;

热点排行