Git Product home page Git Product logo

zahedbri / sql-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from princest/sql-app

0.0 1.0 0.0 69 KB

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应用

Home Page: http://10.36.111.213/easypump

License: MIT License

C# 100.00%

sql-app's Introduction

SQLAPP

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

inspired by Oracle Application Express (Apex)

主要技术栈

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

应用适宜范围

小型WEB应用:数据查阅,数据操控类应用,企业生产维护外挂等.

[原创]极速开发!! 企业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)
 
联动其他参数事件
  

附件:敏捷外挂发布平台

sql-app's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.