PB 与 php 通过 http 开发报表查询程序可放互联网

永州东哥 2014-01-17 03:41:41
pb 开发三层结构最简单的方式就是webservice 方式,但是这种方式我总感觉到不太方便,

网上面有相应的代码是传 sql 不安全,

我就想了一个办法服务器用 php 来开发,显示报表用pb,这样就放心多了。

代码出下

服务端:



$yhbh = $this->input->post("yhbh"); //post用户编号

$sql = "select * from t_yhde yhbh=?"; //

$query = $this->db->query($sql,array($yhbh));

echo json_encode(array(
"result" =>true, //true查询成功
"item"=>$query->result(), //报表数据
"reptime"=>date("Y-m-d H:i:s",time()) //报表查询时间
));



PB 程序与服务端数据方式为 json


pb 代码:
string findstr

findstr = "yhbh=" + sle_yhbh.text
dw_xb.httpjson(findstr)

很简单吧。
...全文
1699 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京大丸子 2014-01-30
  • 打赏
  • 举报
回复
自己已经鼓捣出来,感谢楼主。继续开发https的
永州东哥 2014-01-30
  • 打赏
  • 举报
回复
可联系我QQ 2208502
北京大丸子 2014-01-27
  • 打赏
  • 举报
回复
求php 端的数据结构, 我按照lz的php模式,写了一个query,然后json_encode,发现pb得到的数据不对,所以非常想知道服务器端的数据结构
北京大丸子 2014-01-24
  • 打赏
  • 举报
回复
引用 11 楼 msgtogcr 的回复:
写错了: 如:of_retrieveJSON(dw_1, arg1, arg2, ..) 然后在 JSON 的接口对象中真正实现这个方法 如:of_httpjson(username, password, moduleName, arg1, arg2, ..) 如果考虑安全性,可以将各参数拼接并加密后再 postURL
这个模式能不能做成https的传输?这样更安全一些。版主好像说要用一些ole,我不太会用,求指导
永州东哥 2014-01-18
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/jhdalhero/6860501 我简单的搞了一个程序 pb11.5 的,可以下载看看。
做梦的猫 2014-01-18
  • 打赏
  • 举报
回复
运行看了,很不错!非常适合不同开发工具之间的数据集成,较使用 webService 的运行速度大大提高。。
北京大丸子 2014-01-18
  • 打赏
  • 举报
回复
引用 9 楼 jhdalhero 的回复:
我打算把这个东西按这个思路搞一下,智能一些,让pb只做为前台显示,后台可以用其它工具开发,pb搞一些表格实在是太方便了。
下载了,非常不错,楼主再努力做成一个能够加密支持https的控件就更好了。
做梦的猫 2014-01-18
  • 打赏
  • 举报
回复
写错了: 如:of_retrieveJSON(dw_1, arg1, arg2, ..) 然后在 JSON 的接口对象中真正实现这个方法 如:of_httpjson(username, password, moduleName, arg1, arg2, ..) 如果考虑安全性,可以将各参数拼接并加密后再 postURL
做梦的猫 2014-01-18
  • 打赏
  • 举报
回复
如果大量使用这种技术的话,就要放弃 PB 数据窗口对象显示层与数据层绑定的特定,而是分成两层设计了。 客户端一律使用外部数据源做为显示层;服务端固定一个地址做为接口,并用其它工具形成 JSON 字串做为数据层,保证两层的列顺序一致,即可实现通用的接口了。 基于我做 WS 方面的经验,调用方面我觉得可以尽量模拟 PB 本身的 RETRIEVE() 方法,这样便于改造老代码,也符合 PB 本身的编码习惯。例如,可以利用 dataobject 标识,做为服务端接口的传入参数,找到数据层对应的 SQL,检索并返回数据。 如:of_retrieveJSON(username, password, moduleName, arg1, arg2, ..) 同时做个 JSON 的客户端接口对象,用以重载不同参数的 of_retrieveJSON() 一点个人经验,供楼主参考
永州东哥 2014-01-18
  • 打赏
  • 举报
回复
我打算把这个东西按这个思路搞一下,智能一些,让pb只做为前台显示,后台可以用其它工具开发,pb搞一些表格实在是太方便了。
做梦的猫 2014-01-17
  • 打赏
  • 举报
回复
没有传 SQL,是传数据窗口对象的名称,反编译客户端也只能得到 dataObject 的名字,没有实体。 我把 PB 的三层定义为 C/S/S 架构,也就是富客户端,并且对敏感数据结合 WEBFORM 提高安全性,基本上可以说数据库的安全性并不亚于 B/S 架构。
永州东哥 2014-01-17
  • 打赏
  • 举报
回复
引用 4 楼 msgtogcr 的回复:
我是用 WEBSERVICE 实现的,考虑到数据安全,所有数据窗口对象发布到服务端,客户端通过数据窗口的 DATAOBJECT 属性来请求数据。 麻烦就是要做一个通用的 WS 的接口对象,分别放在服务端和客户端,好处就是完全不需要 PB 以外的知识就能实现。
通用的好就是好,就是安全性不够呀。是从客户端传sql,很容易破解。 我现在就是相当于b/s 构架的一个富客户端。
做梦的猫 2014-01-17
  • 打赏
  • 举报
回复
我是用 WEBSERVICE 实现的,考虑到数据安全,所有数据窗口对象发布到服务端,客户端通过数据窗口的 DATAOBJECT 属性来请求数据。 麻烦就是要做一个通用的 WS 的接口对象,分别放在服务端和客户端,好处就是完全不需要 PB 以外的知识就能实现。
WorldMobile 2014-01-17
  • 打赏
  • 举报
回复
应该是楼主自己写的函数,挺好的功能
北京大丸子 2014-01-17
  • 打赏
  • 举报
回复
有实例可以下载参考吗?这个功能太好了
北京大丸子 2014-01-17
  • 打赏
  • 举报
回复
引用 楼主 jhdalhero 的回复:
pb 开发三层结构最简单的方式就是webservice 方式,但是这种方式我总感觉到不太方便, 网上面有相应的代码是传 sql 不安全, 我就想了一个办法服务器用 php 来开发,显示报表用pb,这样就放心多了。 代码出下 服务端:

        
        $yhbh = $this->input->post("yhbh"); //post用户编号

        $sql = "select * from t_yhde yhbh=?"; //
        
        $query = $this->db->query($sql,array($yhbh));
                    
               echo json_encode(array(
                   "result" =>true, //true查询成功
                   "item"=>$query->result(), //报表数据
                   "reptime"=>date("Y-m-d H:i:s",time())  //报表查询时间
                       ));
PB 程序与服务端数据方式为 json pb 代码: string findstr findstr = "yhbh=" + sle_yhbh.text dw_xb.httpjson(findstr) 很简单吧。
楼主,httpjson是自己开发的吧?还是系统或者第三方可以免费用的?

663

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧