寻找了一个星期,但没有找到一些我可以用来执行存储过程的内容.
场景:
我已在探查器窗口中复制了在sql Server 2014管理上运行的代码.
我打开sql Studio和Heidisql并运行查询,它运行正常,并向我返回了预期的结果.
当我尝试粘贴和修改此内容以获得与在sql客户端上相同的结果时,它没有像在sql客户端中那样运行.
我该如何实现?
例如:在我的sql中,我必须声明要运行存储过程的128个变量,但为简单起见,我只记下一个变量,要记住sintaxe与一个或128个变量相同吗?
declare @var01 varchar(1000) set @var01='.$var01.'
EXEC
stored_procedure_y
@var01 output
SELECT
@var01 AS any_value
我尝试了许多方法来执行sql命令,但均未成功.
我尝试运行的一些示例:
>最后
$declare_vars = 'declare @var01 varchar(1000) set @var01='.$var01.';
$exec_sp = 'EXEC operacao_sitef @var01 output;
$select_retorno = 'SELECT @var01 AS any_value;
$queryDeclare = $this->db->query($declare_vars);
$queryExec = $this->db->query($exec_sp);
$queryRetorno = $this->db->query($select_retorno);
return $queryRetorno;
不工作.
>其他
$query = $this->db->query('
declare @var01 varchar(1000) set @var01='.$var01.'
EXEC
operacao_sitef
@var01 output
SELECT
@var01 AS any_value
');
return $query;
也没有用.
任何帮助,将不胜感激.我是SP的新手,不知道如何使用codeigniter调用此方法并收集结果以完成操作.
解决方法:
我这样解决了.
我正在使用PDO驱动程序.
simple_query方法返回PDOStatement对象和一个重要点SET NOCOUNT ON
class Pump_Model extends CI_Model
{
public function getPumpStatisticSpById($pumpId)
{
$result = $this->db->simple_query("SET NOCOUNT ON
DECLARE @return_value int
EXEC @return_value = [dbo].[spPumpStatistics]
@PumpID = $pumpId")->fetch(PDO::FETCH_OBJ);
return $result;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。