delphi DataSnap 2010流文件工作示例

时间:2010-06-28 14:28:23

标签: delphi delphi-2010 datasnap

我正在尝试使用DataSnap从服务器流式传输XML文件,在ldsandon的帮助下,我能够从embarcadero下载样本,但我的问题是我无法遵循它。

程序的伪应该以这种方式工作。

客户端将从服务器请求组合框中选定的xml文件。 服务器将客户端选定的xml文件加载回客户端。

我正在尝试使用delphi DataSnap来解决这个问题,如果不是,我会使用synapse或indy来传输文件,但我发现Datasnap很有趣。

任何人都可以帮助我,如果可能的话可以工作吗?

非常感谢。

请帮帮我,我非常需要你的帮助..谢谢,谢谢

我找到了link,但我无法弄清楚如何将其转换为TFileStream

1 个答案:

答案 0 :(得分:-1)

//服务器端

var PVNServices = angular.module('PVN.services', []);

PVNServices.factory('ItemService', ['$q', 'apiUrl', '$http', 'errorHandler', function($q, apiUrl, $http, errorHandler) {
    return {
        getAlert: function(alert_id, user_id, categorie_id) {
            return $http({  method: 'get',
                            url: apiUrl + 'getAlert/',
                            params : {
                'alert_id' : alert_id,
                'user_id' : user_id,
                'categorie_id' : categorie_id,
              }
            }).then(function(res){return res.result }, errorHandler);
        }
  }
}]);

var PVNControllers = angular.module('PVN.controllers', ['PVN.services']);

PVNControllers.controller('AppController', ['$scope', 'ItemService', function($scope, ItemService) {
  $scope.getAlert = function(alert_id, user_id, categorie_id){
     ItemService.getAlert(alert_id, user_id, categorie_id).then(function(alert){
         $scope.alert = alert;
     }
  }
}]);

var PVNDashboard = angular.module('PVN', ['ngSanitize','ngMaterial','PVN.controllers'], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<<');
    $interpolateProvider.endSymbol('>>');
});

PVNDashboard.run(function() {
    moment.locale('nl');
});

<body class="" ng-app="PVN">
</body>

//客户端

function TServerMethods1.GetCDSXML(SQL: String; var FileSize: Integer): TStream;
begin

  QryMisc.Close;
  QryMisc.SQL.Text := SQL;
  CDSMisc.Open;
  Result := TMemoryStream.Create;
  try
    CDSMisc.SaveToStream(Result, dfXML);
    FileSize := Result.Size; // not CDSMisc.DataSize;
    Result.Position := 0; // Seek not implemented in abstract class
  finally
    CDSMisc.Close;
  end;

end;