工具链,使使用sql更容易
wsql_sdk的Python项目详细描述
使使用sql过程更容易的工具链。
语法
- include“<;filename>;”-包括指定的文件名、支持的绝对和相对URL。
- 定义名称<;值>;-指定可以用作$name
- 定义名称(arg1,…,argn)-可以用作$name(a1,….an)
- 未定义名称-未定义以前定义的指令
- if条件表达式-条件表达式
- select…;–>;通知查询的数组-提示返回多个元素
- select…;–>;通知查询的object-提示只返回一个元素
- comment“返回union”-提示,将结果集中的所有对象合并为一个
- comment“<;表名>;(<;列名列类型>;,…);”-提示,允许通过临时表将参数列表传递给过程
wsql传输:
本地sql之上的扩展。
支架:
- 宏
#define table_name "mytable" select * from $table_name;
- 宏函数
#definequote(a)"a"selectupper(quote(a));
- 条件
#definea1#ifa==1select*fromt1;#elseselect*fromt2;#endif
- 包括
#include"common.sql"
wsql代码生成:
生成用于SQL过程的本机代码。 现在支持python3 native和aio。 正在开发中的C++。 必需的WSQL。
提示
- select…;–>;通知查询的数组-提示返回多个元素
- select…;–>;通知查询的object-提示只返回一个元素
- comment“返回union”-提示,将结果集中的所有对象合并为一个
- comment“<;表名>;(<;列名列类型>;,…);”-提示,允许通过临时表将参数列表传递给过程
sql
CREATEPROCEDUREtable1.insert(valueVARCHAR(10))BEGININSERTINTOtable1(value)VALUES(value);SELECTLAST_INSERT_ID()ASid;END
Python3
@coroutinedefinsert(connection,value=None):""" insert, table1 :param value: the value(VARCHAR(10), IN)) :return (id,) """@coroutinedef__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 fromconnection.execute(__query))exceptErrorase:raisehandle_error(exceptions,e)