Skip to content

jackjet870/Sql-App

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLAPP

inspired by Oracle Application Express (Apex)

SQL to web application with inputs/ouputs.Easy to build ,integrate,customize your web application, just via SQL

企业APP开发者平台,仅用SQL语句即可发布数据操作WEB应用

主要技术栈

  1. .net WebForms/MVC/WEBAPI hybrids
  2. 数据库智能:引用对应数据库的动态SQL分析包. ORACLE为 DBMS_SQL包 MSSQL则用到了EXECUTE 和 SP_EXECUTESQL
  3. 主要算法: 参数依赖联动使用DAG “无回路有向图算法”.
  4. 前端组件: angularjs + ui-state + restangular

应用适宜范围

小型WEB应用:数据查阅,数据操控类应用,企业生产维护外挂等.
An inner website as http://10.36.111.213/easypump

[原创]极速开发!! 企业APP开发者平台,只用会写SQL语句可以发布数据操作类WEB应用,开发就这么简单! !

 只要你会SQL语句,你就可以生成规范大方,功能强大的web页面!!

你可以:

  1.能开发应用广泛的企业数据库"外挂"
  2.多种复杂度的外挂,比如向导型wizard,引导用户输入.....
  3.已有外挂的任意复杂度的集成,外挂嵌套外挂,模拟弹窗操作...
  4.管理自己的日常工作,把常见的操作做成web页面
  5.发布数据查询? 有人要数据清单?太简单了,发布一个SQL语句,自定义一些参数...简单!
  6.还是数据变更?提供工具,自定义参数,限定参数格式,得心应手!
  7.可拖曳的菜单,目录管理,轻松管理!
  8.丰富的扩展功能
.....更多的由你自由发挥...
 
 先来几个简单的例子:
----------------------
例子1.
```sql select * from table1 where rownum <= :xh ```
默认生成
 
例子2.
```sql update table2 set attr = :val where key=:key; ```
对上面的语句中参数val设置数据源为
 
或者
 
那么执行时,自动生成参数如下:
 
 
3.例子3.
```sql declare date1 date; date2 date; begin date1:= to_date(:dt1,'yyyy-mm-dd hh24:mi:ss'); date2:= to_date(:dt2,'yyyy-mm-dd hh24:mi:ss'); DBMS_OUTPUT.PUT_LINE('相差结果='|| wxhf_time_eclipse(date2,date1)); end; ```
自动生成的参数界面图
执行结果
 
   
 
 
下面就是码字...传说中的项目说明书啊 ,码字码的手酸背痛...
1.介绍
     背景.
     实际生产上,总会遇到很多问题,因为时间紧迫或者成本考虑,需要在原有系统功能之外解决,比如数据查询,数据操控等.
这就是外部辅助程序,就是传说中的外挂.
     外挂系统是系统的补充,所以必须建立在对原有系统的模型的理解基础之上,外挂存在的意义这里不做累述,只对其如何敏捷开发提出新的想法.
     开发外挂,有很多种方式,开发C/S,B/S各种程序,但是最终是一个程序解决一个功能单元,在实际生产中,大多数外挂类应用均基于数据库.可以这么说,程序的最终目的,是根据预期的参数,对目标数据进行增删查改,通过简单SQL语句,或者嵌套的存储过程.
      有没有可能开发一个外挂平台,可以跨平台,跨数据库,基于SQL语义,进行敏捷开发呢?
      下面将介绍由楼主开发的”敏捷外挂开发平台”,支持开发人员对目标程序的输入参数进行风格自定义,参数之间的联动关系即可自定义设置;这些设置无须编程,只需遵循向导,
      而对输出参数,也可以表格型输出,或者文本格式的输出(捕获数据库控制台输出),在高级应用中,表格型输出,亦可对特定的字段绑定自定义连接.
     说这么多,把大家绕晕了,来个感性认识,主界面之一
 
 
   Figure 1
    首先有一个支持拖曳,类似于微软的文件管理器那样的目录管理,用于管理多个应用,相对应的还有权限管理,但这些不是重点,不做累述.重点是如何把SQL语句变成web页面!!,以下就是过程..通过2个普通例子,一个高级设计的例子.
     
2.设计和发布
     现在说一个典型的开发过程.
     先新增一个外挂应用,此处称为处理器(下同.),
     以两个实例来讲解,示例二为DML类,示例二为Select类.
    为了方便起见, SQL层业务逻辑使用ORACLE的PL/SQL.另外MSSQL仅支持 Transact-SQL 2008+版本.其他数据库暂不支持.
  2.1示例一:DML 类型处理器
    2.1.1 新建DML处理器
SQL块可以是DML,也可以是匿名块,甚至是DDL(权限控制) 如图 figure2.1.1 -1
 
 
        Figure 2.1.1 - 1
      当保存处理器的时候,自动生成参数设计界面,如图2.1.1 -2
    
 
 Figure 2.1.1 - 2
     先预览以下执行时效果:
   
 
     2.1.2 参数定制
      假如你已经设置好主SQL语句,及参数.在生成的参数界面设计页面中,你可以对参数进行重定制,见图Figure 2.1.2 - 1
      编辑定制参数1.
 
 
   Figure 2.1.2 -1
参数类型可以是
  这五种能处理所有标量型参数值类型.
    
     您还可以在高级设置 中设置当前参数是否联动触发其他参数 ,点击高级设置,载入当前控件默认的事件,如图,
    
 &a mp;a mp;n bsp;   Figure 2.1.2 - 2
    设置参数关联触发事件,根据其控件类型,选择触发事件.就文本控件来说:有以下事件 "onchange","onkeyup"
    注意:联动设计,当一个参数设置为触发源 时,其他参数就可以引用它,下面的例子会讲到.
 
    针对单选项或多选项类型参数,可以设置三类数据源
1. 格式化键值对,如下图
 
 
    Figure 2.1.2 -3
2. SQL语句,如下图
 
        Figure 2.1.2 -4
联动SQL语句.SQL里面可以嵌套其他参数,即当一个参数值变化时,能触发构造其他参数控件,如下例,
 
 
       Figure 2.1.2 -5
     (图中step_id参数引用prod_id参数和co_nbr参数,.当被引用参数均获值的时候,触发 step_id绑定的数据源异步执行查询获得选项.注意参数联动必须是有向图,而且无回路)
     
2.2示例二: 查询类处理器
  2.2.1新建查询类处理器
    查询类:新建查询处理器,如下图
   
 
 &n bsp;&nbs p; figure 2.2.1
   保存后生成
       ; 
  figure 2.2.2
  再设置参数
 
再设置参数

2.2.2 自定义参数
   此处同示例1的2.1.2节,请参照. 
 
3.高级设计
当您完成多个处理器设计之后,您还可以利用已有的处理器进行集成操作,类似于CS的弹窗设计,
3.1 自定义输出字段绑定的连接
   先给一个整体图,下图是一个已有的处理器. 
Figure 3.1.1
其输出语句为
 
Figure 3.1.2
点击设置连接其他处理器的列时,效果如下
 
 Figure 3.1.3
那如何做到这一点,分三步
注意:集成管理这块也是通过敏捷外挂自身完成的.
 
1)注册源处理器
 
2)输出字段绑定.
在FTTH助手这个例子中,在 输出字段 '订单号','申请单','点击','外部申请单','号码','动作','受理地址信息 ','受理地址ID','最新地址信息','最新地址ID','点击2','点击3','点击4','点击5'中绑定连接处理器
 
如图,绑定”订单号”字段,由哪个处理器引用作为参数,执行
 
3)源处理器”字段”外观效果及事件绑定
# 主要技术栈 1. .net WebForms/MVC/WEBAPI hybrids 2. 数据库智能:引用对应数据库的动态SQL分析包. ORACLE为 DBMS_SQL包 MSSQL则用到了EXECUTE 和 SP_EXECUTESQL 3. 主要算法: 参数异步联动用到 “无回路有向图算法”. 4. 前端组件: angularjs + ui-state + restangular
1.处理器模型AP_HANDLERS
Name
Type
Default/Expr.
Comments
HANDLER_ID
INTEGER
 
 主键
HANDLER_NAME
VARCHAR2(128)
 
 名称
CATEGORY_ID
INTEGER
 
 目录ID
DB_TYPE
VARCHAR2(12)
'Oracle'
数据库类型
DB_CONNECTION
VARCHAR2(128)
 
连接配置
SQL_BLOCK
VARCHAR2(4000)
 
SQL语言
HANDLER_DESC
VARCHAR2(1024)
 
 描述
CREATE_TIME
DATE
sysdate
 创建时间
SQL_CMD_TYPE
VARCHAR2(24)
'BLOCK'
语句类型,DML/DDL或者SQL
AUTHORIZED_USERS
VARCHAR2(1024)
'rptadmin'
授权用户
CREATEOR
VARCHAR2(24)
'rptadmin'
创建用户
STS
CHAR(1)
'A'
 状态
ABBR
VARCHAR2(400)
 
汉语拼音声母缩写
ABBRFULL
VARCHAR2(1024)
 
汉语拼音全拼
PREPARING_BLOCK
VARCHAR2(4000)
 
 额外执行语句(仅当有分步操作可用)
EXTENDS01
VARCHAR2(4000)
 
 扩展字段

2.处理器参数模型 AP_HANDLERS_PARAMS
Name
Type
Default/Expr.
Comments
HANDLER_PARAM_ID
INTEGER
 
主键
HANDLER_ID
INTEGER
 
处理器ID
PARAM_NAME
VARCHAR2(200)
 
参数名
PARAM_DTYPE
VARCHAR2(12)
 
参数类型
PARAM_NAME_C
VARCHAR2(400)
 
参数显示名
CONTROL_TYPE
VARCHAR2(400)
 
获值控件类型
CONTROL_DATASOURCE_TYPE
VARCHAR2(400)
 
参数获值控件数据源类型(有格式化键值对,SQL语句等)
CONTROL_DATASOURCE
VARCHAR2(1024)
 
数据源
CONTROL_DATASOURCE_KEY
VARCHAR2(400)
 
数据源显示列
CONTROL_DATASOURCE_VALUE
VARCHAR2(1024)
 
数据源值列
INVISIBLE_ROLES
VARCHAR2(1024)
 
不可见角色---弃用
IS_VISIBLE
CHAR(1)
 
参数是否可见
IS_REQUIRED
CHAR(1)
 
是否必填
VALID_REGULAR
VARCHAR2(1024)
 
验证正则表达式
FORMAT_DESC
VARCHAR2(1024)
 
格式描述
PARA_DATA_SIZE
VARCHAR2(10)
'20,1'
文本类控件的WIDTH,HEIGHT
ORDER_ID
INTEGER
 
排序ID
IS_INTERLINK
CHAR(1)
'N'
是否联动其他参数
INTERLINK_EVENT
VARCHAR2(20)
 
联动其他参数事件
  

附件:敏捷外挂发布平台

About

SQL to web application with inputs/ouputs.Easy to build ,integrate,customize your web application, just via SQL inspired by Oracle Application Express (Apex) -- 企业APP开发者平台,仅用SQL语句即可发布数据操作WEB应用 - An inner website as

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 99.1%
  • PLSQL 0.9%