使用kbmmw smarthttpservice 简单返回数据库结果
这个很简单,直接上码。
服务器端声明过程
[kbmMW_Rest('method:get, path:querytable')]
[kbmMW_Method]
function querytable(
[kbmMW_Rest('value: "$tname", required: true')] const tblname:string;
[kbmMW_Rest('value: "$id", required: true')] const id:string):Tkbmmemtable;
具体实现代码
function TkbmMWCustomHTTPSmartService1.querytable(const tblname,
id: string): Tkbmmemtable;
var
sqls:string; begin
if tblname='' then
begin
kbmMWRaiseHTTPError(,'result:{"ok":"error","value":"table not exist! "}');
end; sqls:='select * from '+tblname;
if id<>'' then
begin
sqls:=sqls+' where CustNo='+id; end; cx.sql.text:=sqls;
try
cx.open;
except
on e:exception do kbmMWRaiseHTTPError( ,e.Message); end; result:=Tkbmmemtable(cx); end;
运行结果

由于这个返回对象是 Tkbmmemtable.
因此出现错误后,服务器返回的是500, 没办法显示具体的错误。
其实对于这个问题,我们也可以解决。
首先我们增加一个 错误信息表

然后我们把错误信息写到这个表里面就可以了
function TkbmMWCustomHTTPSmartService1.querytable(const tblname,
id: string): Tkbmmemtable;
var
sqls:string; begin
result:=errtable;
errtable.Active:=True;
errtable.EmptyTable;
if tblname='' then
begin
errtable.Append;
errtable.FieldByName('ok').AsString:='error';
errtable.FieldByName('msg').AsString:='table not exist!';
errtable.Post; exit; end; sqls:='select * from '+tblname;
if id<>'' then
begin
sqls:=sqls+' where CustNo='+id; end; cx.sql.text:=sqls;
try
cx.open;
except
on e:exception do
begin
errtable.Append;
errtable.FieldByName('ok').AsString:='error';
errtable.FieldByName('msg').AsString:=e.Message;
errtable.Post;
exit; end; end; result:=Tkbmmemtable(cx); end;
我们访问一下试试


没问题了,一切消停了。
使用kbmmw smarthttpservice 简单返回数据库结果的更多相关文章
- kbmmw 中简单返回 extjs 数据JSON
以前,我们通过自己写json 来返回数据表的内容.在delphi 10.2.2中,官方自带了一个FDBatchMoveJSONWriter1 来直接处理数据库内容.把结果推送到浏览器客户端. 今天我们 ...
- NHibernate使用ICriteria分页并返回数据库记录总条数
最近在使用NHibernate,发现进行分页查询无法得到数据库记录的总条数,在网上找了很久没找到具体的实现方法,找到的资料都说得不是很清楚,研究了很久终于写出了这样一个方法. NHibernate下分 ...
- Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作
SQLite 是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org ...
- [置顶] Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作
SQLite 是一个轻量级的免费关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,可以在(http://www.sqlite.org ...
- Spring_boot简单操作数据库
Spring_boot搭配Spring Data JPA简单操作数据库 spring boot 配置文件可以使用yml文件,默认spring boot 会加载resources目录的下的applica ...
- Django_简单的数据库交互案例
https://www.jianshu.com/p/bd0af02e59ba 一.页面展示 做一个简单的数据库交换的练习案例 页面.png 二.创建mysql 表 (1)创建django (2)创 ...
- 【JMeter】JMeter进行简单的数据库(mysql)压力测试
JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于: \java\jre ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- PHP简单获取数据库查询结果并返回JSON
<?php header("Content-type:text/html;charset=utf-8"); //连接数据库 $con = mysql_connect(&quo ...
随机推荐
- 记一次Monolog的BufferHandler使用
laravel中可以设置自定义的日记channel(config/logging中设置),按照laravel-china的一篇文章,把log按一定格式并且以批量的方式写入日志文件: https://l ...
- 跳板机 jumpserver
http://docs.jumpserver.org/zh/docs/introduce.html 启动脚本 #!/bin/bash set -e export LANG=zh_CN.UTF- # 项 ...
- Spark-shell错误:Missing Python executable 'python', defaulting to ...
最近博主因为学习<云计算导论>一课,需要在Windows上搭建Saprk,故在网上找了相关教程搭建,步骤如下: 1. Scala 2.Spark 3.Handoop 但是不管博主怎么修正, ...
- 团队作业5——《Spring_Four》项目需求改进与系统设计
团队项目需求分析改进: 任务1: a.分析<基于Jsoup的大学生考试信息展示系统项目需求规格说明书>初稿的不足,特别是文档需求描述建模不完整的内容. 通过软件工程更深入的学习发现我们的需 ...
- 打开fiddler后无法访问网络问题
https://jingyan.baidu.com/article/f54ae2fc680be81e92b849ed.html 导入证书后,还有一步易遗漏操作: 再次运行fiddler,依次点击Too ...
- django 设置session过期时间
session的超时时间设置settings中SESSION_COOKIE_AGE=60*30 30分钟.SESSION_EXPIRE_AT_BROWSER_CLOSE False:会话cookie可 ...
- 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法
引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...
- form表单的三个属性 action 、mothod 、 enctype。
form_action: 表单数据提交到此页面 下面的表单拥有两个输入字段以及一个提交按钮,当提交表单时,表单数据会提交到名为 "form_action.asp" 的页面: < ...
- linux 安装 mysql
二进制安装mysql 1,下载安装包,使用国内站点速度会比较快,如清华站点https://mirrors.tuna.tsinghua.edu.cn 登陆linux系统后,使用wget 进行下载mysq ...
- ucos中需要注意的全局变量
首先聊一聊全局变量: 在慕课上学习浙大老师的C语言课程的时候,翁恺老师一直在强调在程序中我们要避免使用全局变量,C语言的程序员(尤其像我这样的野生程序员)为了方便,经常会不顾这个编码规范.全局变量有一 ...