Skip to content
forked from WebSQL/sdk

The chain of tools to make work with SQL easier

License

Notifications You must be signed in to change notification settings

alternativehood/sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WSQL-SDK

https://travis-ci.org/WebSQL/sdk.svg?branch=master https://coveralls.io/repos/WebSQL/sdk/badge.png?branch=master

The chain of tools that make work with SQL procedures easier.

Syntax

  • #include "<filename>" - include the specified filename, the absolute and relative urls supported.
  • #define name <value> - specify the value, that can be used as $name
  • #define name(arg1, ..., argN) - the function, that can be used as $name(a1,...aN)
  • #undef name - undefine previously defined instruction
  • #if condition expression else alternative - conditional expressions
  • SELECT ... ; -- > array - hint, that informs about query returns more that one element
  • SELECT ... ; -- > object - hint, that informs about query returns exactly one element
  • COMMENT "returns union" - hint, to merge all objects from results sets to one
  • COMMENT "<table name> (<colum name column type>,...);" - hint, that allow to pass the list of arguments to procedure via temporary table

wsql-trans:

The extensions above native SQL.

supports:

  • macros
#define table_name "mytable"
select * from $table_name;
  • macro-functions
#define quote(a) "a"
select upper(quote(a));
  • conditions
#define a 1
#if a == 1
select * from t1;
#else
select * from t2;
#endif
  • includes
#include "common.sql"

wsql-codegen:

Generate the native code to work with SQL procedures. Now supports python3 native and aio. The C++ under development. Required WSQL.

Hints

  • SELECT ... ; -- > array - hint, that informs about query returns more that one element
  • SELECT ... ; -- > object - hint, that informs about query returns exactly one element
  • COMMENT "returns union" - hint, to merge all objects from results sets to one
  • COMMENT "<table name> (<colum name column type>,...);" - hint, that allow to pass the list of arguments to procedure via temporary table

SQL

CREATE PROCEDURE table1.insert (value VARCHAR(10))
BEGIN
    INSERT INTO table1 (value) VALUES(value);
    SELECT LAST_INSERT_ID() AS id;
END

Python3

@coroutine
def insert(connection, value=None):
    """
    insert, table1
    :param value: the value(VARCHAR(10), IN))
    :return (id,)
    """
    @coroutine
    def __query(__connection):
        __cursor = __connection.cursor()
        try:
            yield from __cursor.callproc(b"procedure4", (value,))
            return (yield from __cursor.fetchall())[0]
        finally:
            yield from __cursor.close()
    try:
        return (yield from connection.execute(__query))
    except Error as e:
        raise handle_error(exceptions, e)

About

The chain of tools to make work with SQL easier

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%