zoukankan      html  css  js  c++  java
  • kbmmw 中简单返回 extjs 数据JSON

    以前,我们通过自己写json 来返回数据表的内容。在delphi 10.2.2中,官方自带了一个FDBatchMoveJSONWriter1

    来直接处理数据库内容。把结果推送到浏览器客户端。

    今天我们就利用kbmmw 自身的功能,做一个类似的东西。

    在主界面放上相关的数据库访问控件

    首先在服务上放两个东西

    一个查询,一个kbmmwjsonstreamformat.

    定义相关的函数

         [kbmMW_Rest('method:get, path:getdata')]
         [kbmMW_Method]
         function getdata([kbmMW_Rest('value: "$tname", required: true')] const tname:string):string;
      

    并完成对应的执行代码

    function TkbmMWCustomHTTPSmartService1.getdata(const tname: string): string;
    var
      ms:Tstringstream;
      sjson:TkbmMWJSONStreamer;
      alljson,outjson: TkbmMWJSONObject;
      datajson: TkbmMWJSONArray;
    begin
     if tname=''  then
       begin
          result:='{"result":"表名为空!"}';
          exit;
       end;
      cx.SQL.Clear;
      cx.SQL.Add('select * from '+tname);
      cx.Open;
      if  cx.IsEmpty then
        begin
            result:='{"result":"数据为空!"}';
            exit;
        end;
      ms:=Tstringstream.Create;
      sjson:=TkbmMWJSONStreamer.Create;
      outjson:=TkbmMWJSONObject.Create;
    
      try
         cx.SaveToStreamViaFormat(ms,kbmMWJSONStreamFormat1);
         ms.Position:=0;
         alljson:=TkbmMWJSONObject(sjson.LoadFromUTF8Stream(ms));
         datajson:=TkbmMWJSONArray(alljson.AsArray['data']);
         outjson.AsArray[tname]:=datajson;
         result:= sjson.SaveToUTF16String(outjson)
      finally
        ms.Free;
        sjson.Free;
        outjson.Free;
      end;
    
    end;

    由于kbmmw 的数据库存json , 包含了其它信息,我们就把不用的信息干掉。

    完成后,运行程序

    浏览器中输入对应的URL

    http://127.0.0.1/xalionrest/getdata?tname=emp

    就得到了输出结果

     其实也是很方便的。

  • 相关阅读:
    记一次GreenPlum性能调优
    PostgreSQL时间格式及相关函数实践
    OGG到OGGAdapter配置详情-从Oracle直接抽取成csv文件
    使yum保留下载的rpm包
    源码编译tmux
    抠图
    ps磨皮的方法
    谷歌学术网站镜像
    element菜单默认展开和选中
    git仓库如果是私密的,每台电脑上导下来都需要进行ssh授权,所以一个项目不知一个ssh权限
  • 原文地址:https://www.cnblogs.com/xalion/p/8149934.html
Copyright © 2011-2022 走看看