关于datasnap服务器中一个内存错误的问题

刚学datasnap,环境是xe7和win8,用了unidac的插件连接oracle数据库和查询数据,按照创建datasnap的服务端的方法创建一个最基础的服务器端,在TServerMethods1里增加了一个QueryAll方法,代码如下:
unit MServerMethodsUnit;

interface

uses System.SysUtils, System.Classes, System.Json,
    Datasnap.DSServer, Datasnap.DSAuth, DataSnap.DSProviderDataModuleAdapter,
  Datasnap.Provider, Data.DB, MemDS, DBAccess, Uni, UniProvider,
  OracleUniProvider;

type
  TServerMethods1 = class(TDSServerModule)
    MOracleUniProvider: TOracleUniProvider;
    MUniConnection: TUniConnection;
    MUniQuery: TUniQuery;
    MDataSetProvider: TDataSetProvider;
  private
    { Private declarations }
  public
    { Public declarations }
    function EchoString(Value: string): string;
    function ReverseString(Value: string): string;
    function QueryAll: string;
  end;

implementation


{$R *.dfm}


uses System.StrUtils,JsonTools;

function TServerMethods1.EchoString(Value: string): string;
begin
  Result := Value;
end;

function TServerMethods1.ReverseString(Value: string): string;
begin
  Result := System.StrUtils.ReverseString(Value);
end;

function TServerMethods1.QueryAll: string;
begin
  MUniQuery.Active:=true;
  Result := TJsonTools.DataSetToJson(MUniQuery).ToString;
   //Result:=MUniQuery.Fields.FieldByName('aac001').AsString;
end;
end.

其中用到的JsonTools.pas代码如下,DataSetToJson这个方法没有任何处理:
unit JsonTools;

interface
  uses
 System.Json,Uni,DB;
  type
    TJsonTools = class(TObject)
  private
  public
     class function DataSetToJson(Prm_DataSet:TUniQuery):TJsonObject;
    end;
implementation
    class function TJsonTools.DataSetToJson(Prm_DataSet:TUniQuery):TJsonObject;
   var
    i:word;
   begin
   end;
end.

服务器运行后,在浏览器中输入http://localhost:8080/datasnap/rest/TServerMethods1/QueryAll/,总是提示"{"error":"Access violation at address 006EBB6B in module 'DTDSServer.exe'. Read of address 8DC30048"}",但如果运行的是红色字体的那一行就没问题,请问是啥原因?



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值