stored-procedures - web2py 中的存储过程

标签 stored-procedures web2py

我正在考虑将应用程序从 php/MySQL 转换为 web2py(以及 MySQL 或 Postgres)。此应用程序的 php 代码库中唯一的 SQL 代码是对存储过程的调用...php 代码库中没有 SELECT、没有 INSERT 等。 php 代码库中的所有 SQL 源代码都是“CALL proc_Fubar(args...);”的顺序

我如何告诉 web2py,“这是我的 INSERT 存储过程;这是我的 SELECT...”?我知道我可以执行sql,但是从 SELECT 返回的行集怎么样...我希望返回该数据,就好像它是来自表的 web2py 查询的结果一样。

是的,我知道。我试图获得 web2py 所做的所有巧妙的事情,但又不遵守我的协议(protocol)(通过将我的 SQL 定义为 web2py 想要看到的)。

最佳答案

您可以尝试以下操作。首先,定义一个与存储过程返回的字段相匹配的模型(设置 migrate=False 以便 web2py 不会尝试在数据库中创建该表)。

db.define_table('myfaketable', ..., migrate=False)

然后执行:

raw_rows = db.executesql('[SQL code to execute stored procedure]')
rows = db._adapter.parse(raw_rows,
    fields=[field for field in db.myfaketable],
    colnames=db.myfaketable.fields)

关于stored-procedures - web2py 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194870/

相关文章:

mysql - 声明错误处理程序在 MySQL 中无效?

c# - 将空值发送到存储过程

python - 在 web2py 中,如何在图像映射中使用执行函数的回调参数?

python - 如何让 web2py 开发服务器跟踪文件更改并自动重启?

security - 如何在 web2py 中实现有效的 https

linux - 我的网络服务器的版本控制

SQL 数据工具 Visual Studio 语法错误但不在 Management Studio 中

c# - 如何使用 ThreadPool 并行化数据库查询?

view - 是否可以动态更改 web2py View ?

SQL Server - 异步查询执行