【发布时间】:2014-06-30 13:40:39
【问题描述】:
Microsoft SQL Server 上存储了一个过程。过程可以返回一个值。 如何使用 ODB ORM 从 MS SQL Server 数据库执行存储过程并获取此过程返回的值?
【问题讨论】:
标签: c++ sql-server stored-procedures orm odb
Microsoft SQL Server 上存储了一个过程。过程可以返回一个值。 如何使用 ODB ORM 从 MS SQL Server 数据库执行存储过程并获取此过程返回的值?
【问题讨论】:
标签: c++ sql-server stored-procedures orm odb
您可以为此使用本机视图。有关详细信息,请参阅 ODB 手册中的第 10 章“视图”。
【讨论】:
s.compare (0, (n = 4), "EXEC") == 0 ||s.compare (0, (n = 4), "exec") == 0) 函数 check_prefix。有没有不修改ODB库源码就可以调用存储过程的解决方案?
调用存储过程的正确解决方案如下
#pragma db view query("exec MyStoredProc (?);")
struct StoredProc
{
int Result;
std::string Comment;
};
.
.
.
typedef odb::result<StoredProc> Result;
typedef odb::query<StoredProc> Query;
.
.
.
Result r( db.query<StoredProc>( Query::_val(param1) + ", "
+ Query::_val(param2) ) ) );
【讨论】: