2014年5月27日星期二

用TFDMemTable代替TClientDataSet

测试了TFDMemTable,的确是比以前好吃非常快的TClientDataSet还要快,那么前面写的返回数据集的就可以修改一下了
function TSmSample.GetTblImage: TDataSet;
var
  Conn: TFDConnection;
  Query: TFDQuery;
begin
  //GetInvocationMetaData.CloseSession,n := True;
  Conn := dmConn.AcquireConnection;
  Query := TFDQuery.Create(nil);

  try
    Query.Connection := Conn;
    Query.SQL.Text := 'SELECT * FROM tbl_image';
    Query.Active := True;

    Result := TFDMemTable.Create(nil);
    TFDMemTable(Result).Data := Query.Data;
    //CopyQueryToClientDataSet(Query, Result);
  finally
    if Assigned(Query) then
      FreeAndNil(Query);
    dmConn.ReleaseConnection(Conn);
  end;
end;
这里直接指定Data就可以,不必先CopyDataSet(Query, [coStructure])拷贝结构后再设置Data

没有评论:

发表评论