Stored procedures web2py中的存储过程

Stored procedures web2py中的存储过程,stored-procedures,web2py,Stored Procedures,Web2py,我正在考虑将一个应用程序从php/MySQL转换为web2py(以及MySQL或Postgres)。这个应用程序的php代码库中唯一的SQL代码是对存储过程的调用……php代码库中没有选择、没有插入等。php代码库中的所有SQL源代码的顺序为“callproc_Fubar(args…) 我如何告诉web2py,“这是我的INSERT存储过程;这是我的SELECT…”?我知道我可以执行SQL,但是从SELECT返回的行集呢……我希望返回的数据就像是来自表的web2py查询的结果一样 是的,我知道。

我正在考虑将一个应用程序从php/MySQL转换为web2py(以及MySQL或Postgres)。这个应用程序的php代码库中唯一的SQL代码是对存储过程的调用……php代码库中没有选择、没有插入等。php代码库中的所有SQL源代码的顺序为“callproc_Fubar(args…)

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


是的,我知道。我试图获得web2py所做的所有整洁的东西,而不必遵守我的约定(通过将我的SQL定义为web2py希望看到它)。

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

然后做:

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)
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)